MODULE GeneralFizzBuzz; FROM Conversions IMPORT StrToInt; FROM FormatString IMPORT FormatString; FROM Terminal IMPORT Write,WriteString,WriteLn,ReadChar; TYPE Word = ARRAY[0..63] OF CHAR; PROCEDURE WriteInt(i : INTEGER); VAR buf : Word; BEGIN FormatString("%i", buf, i); WriteString(buf); END WriteInt; PROCEDURE ReadInt() : INTEGER; VAR buf : ARRAY[0..9] OF CHAR; c : CHAR; i : INTEGER; BEGIN i := 0; LOOP c := ReadChar(); IF (c=0C) OR (i>9) THEN BREAK ELSIF (c=012C) OR (c=015C) THEN WriteLn; buf[i] := 0C; BREAK ELSIF (c<'0') OR (c>'9') THEN Write(c); buf[i] := 0C; BREAK ELSE Write(c); buf[i] := c; INC(i) END END; StrToInt(buf, i); RETURN i END ReadInt; PROCEDURE ReadLine() : Word; VAR buf : Word; i : INTEGER; c : CHAR; BEGIN i := 0; WHILE i