| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- MODULE Library1;
- // Exercises the newly added standard-library modules: ConvTypes,
- // WholeStr, RealStr, LongStr, LongMath, StrIO, InOut, STextIO,
- // SWholeIO, SRealIO, SIOResult, IOConsts, TERMINATION, StdIO.
- // Exit 42.
- IMPORT ConvTypes, WholeStr, RealStr, LongStr, LongMath,
- StrIO, InOut, STextIO, SWholeIO, SRealIO, SIOResult, IOConsts,
- TERMINATION, StdIO, IOChan, LongIO;
- FROM ConvTypes IMPORT ConvResults, strAllRight;
- FROM IOConsts IMPORT ReadResults, notKnown;
- VAR ExitCode : INTEGER;
- VAR n : INTEGER;
- VAR c : CARDINAL;
- VAR x, y : REAL;
- VAR res : ConvResults;
- VAR s : ARRAY [0..63] OF CHAR;
- PROCEDURE Sink (ch : CHAR);
- BEGIN
- (* a pushable output procedure *)
- END Sink;
- BEGIN
- WholeStr.StrToInt("40", n, res);
- IF res # strAllRight THEN ExitCode := 1 END;
- WholeStr.StrToCard("2", c, res);
- WholeStr.IntToStr(n, s);
- ExitCode := n + VAL(INTEGER, c); (* 42 *)
- RealStr.RealToFixed(3.14159, 2, s); (* "3.14" *)
- RealStr.RealToFloat(312.5, 4, s);
- x := LongMath.sqrt(4.0); (* 2.0 *)
- y := LongMath.power(2.0, 3.0); (* 8.0 *)
- ExitCode := ExitCode + LongMath.round(x + y) - 10; (* 42 *)
- STextIO.WriteString("lib ");
- SWholeIO.WriteCard(c, 1);
- STextIO.WriteLn;
- SRealIO.WriteFixed(2.5, 1, 0);
- STextIO.WriteLn;
- LongIO.WriteReal(IOChan.StdOutChan(), 3.5, 0);
- STextIO.WriteLn;
- StrIO.WriteString("strio");
- StrIO.WriteLn;
- InOut.WriteString("oct ");
- InOut.WriteOct(42, 1);
- InOut.WriteString(" hex ");
- InOut.WriteHex(255, 4);
- InOut.WriteLn;
- StdIO.PushOutput(Sink);
- StdIO.Write("Z");
- StdIO.PopOutput;
- StdIO.Write("D");
- STextIO.WriteLn;
- IF SIOResult.ReadResult() = notKnown THEN END;
- IF TERMINATION.HasHalted() THEN ExitCode := 2 END
- END Library1.
|