1 PROGRAM INVESTIGATEREPRESENTATION(OUTPUT);
11 PROCEDURE ENQUIRY(VAR RADIX,DIGITS: INTEGER; VAR ROUNDS: BOOLEAN);
17 WHILE ((NUMBER+1) - NUMBER)=1 DO NUMBER := NUMBER*2;
19 WHILE (NUMBER+INCREMENT)=NUMBER DO INCREMENT := 2*INCREMENT;
20 RADIX := TRUNC((NUMBER+INCREMENT) - NUMBER);
21 ROUNDS := (NUMBER + (RADIX-1))<>NUMBER;
24 WHILE ((NUMBER+1) - NUMBER)=1 DO
25 BEGIN DIGITS := DIGITS +1;
26 NUMBER := NUMBER * RADIX
33 ENQUIRY(BASE,NUMBEROFDIGITS,ROUNDING);
34 WRITELN("BASE", BASE:5);
35 WRITELN("NUMBER OF DIGITS", NUMBEROFDIGITS:5);
37 THEN WRITELN("ROUNDED")
38 ELSE WRITELN("TRUNCATED");
40 FOR I := 1 TO NUMBEROFDIGITS DO EPSILON := EPSILON/BASE;
41 IF ROUNDING THEN EPSILON := EPSILON/2;
42 WRITELN("BEST AND WORST PRECISIONS ARE",
43 EPSILON, EPSILON*BASE)