tbs0218.pp 1011 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. Program Wrong_Output;
  2. {}
  3. Var r,rr,error:Extended;
  4. s:String;
  5. code : word;
  6. {}
  7. Begin
  8. Writeln('Size of Extended type (r)=',SizeOf(r),' bytes');
  9. r:=0.000058184639;
  10. Writeln('r=',r);
  11. Writeln('r=',r:16:13);
  12. Writeln('r=',r:15:12);
  13. Writeln('r=',r:14:11);
  14. Writeln('r=',r:13:10);
  15. Writeln('r=',r:12:9);
  16. Writeln('r=',r:11:8);
  17. Writeln('r=',r:10:7);
  18. Writeln('r=',r:9:6);
  19. Writeln('r=',r:8:5);
  20. Writeln('r=',r:7:4);
  21. Str(r,s);
  22. Writeln('r=',s,' (as string)');
  23. str(r,s);
  24. val(s,rr,code);
  25. { calculate maximum possible precision }
  26. if sizeof(extended) = 10 then
  27. error := exp(17*ln(10))
  28. else if sizeof(extended) = 8 then
  29. error := exp(14*ln(10))
  30. else if sizeof(extended) = 4 then
  31. { the net may have to be 9 instead of 8, not sure }
  32. error := exp(8*ln(10))
  33. else
  34. begin
  35. Writeln('unknown extended type size!');
  36. halt(1)
  37. end;
  38. if abs(r-rr) > error then
  39. begin
  40. Writeln('r=',r);
  41. Writeln('is different from rr=',rr);
  42. halt(1);
  43. end;
  44. End.