DEFINITION MODULE RealInOut; (* Terminal input/output of REAL values From the book 'Programming in Modula-2' by Prof. N. Wirth. *) EXPORT QUALIFIED ReadReal, WriteReal, WriteRealOct, Done; VAR Done: BOOLEAN; PROCEDURE ReadReal(VAR x: REAL); (*- Read a REAL from the terminal. out: x the number read. The syntax accepted is: ["+"|"-"] digit {digit} ["." digit {digit}] ["E"["+"|"-"] digit [digit]] If a number is found, Done is set to TRUE (otherwise FALSE). At most 7 digits are significant, leading zeros not counting. Maximum exponent is 38. Input terminates with a blank or any control character. DEL may be used for backspacing. *) PROCEDURE WriteReal(x: REAL; n: CARDINAL); (*- Write a REAL to the terminal, right-justified. in: x number to write, n minimum field width. If fewer than n characters are needed to represent x, leading blanks are output. *) PROCEDURE WriteRealOct(x: REAL); (*- Write a REAL to terminal, in octal form with exponent and mantissa. *) END RealInOut.