MODULE TrabbPardoKnuth; FROM STextIO IMPORT SkipLine, WriteString, WriteLn; FROM SRealIO IMPORT ReadReal, WriteFixed; FROM SWholeIO IMPORT WriteInt; FROM RealMath IMPORT sqrt; CONST Size = 11; TYPE TSequence = ARRAY [1 .. Size] OF REAL; VAR S: TSequence; I: CARDINAL; Result: REAL; PROCEDURE ReverseSequence(VAR S: TSequence); VAR I: CARDINAL; Temp: REAL; BEGIN FOR I := 1 TO Size DIV 2 DO Temp := S[I]; S[I] := S[Size - I + 1]; S[Size - I + 1] := Temp; END; END ReverseSequence; PROCEDURE DoOperation(Item: REAL): REAL; BEGIN RETURN sqrt(ABS(Item)) + 5.0 * Item * Item * Item; END DoOperation; BEGIN WriteString("Enter 11 numbers."); WriteLn; FOR I := 1 TO Size DO WriteInt(I, 2); WriteString(": "); ReadReal(S[I]); SkipLine END; ReverseSequence(S); WriteLn; FOR I := 1 TO Size DO Result := DoOperation(S[I]); WriteString("f("); WriteFixed(S[I], 3, 8); WriteString(") = "); IF Result > 400.0 THEN WriteString("overflow"); ELSE WriteFixed(Result, 3, 8) END; WriteLn; END; END TrabbPardoKnuth.