stdlib2_prog.mod 993 B

12345678910111213141516171819202122
  1. MODULE Stdlib2Prog;
  2. (* Broadened stdlib: Math (sqrt/power/arcsin/arccos), Strings
  3. (Assign/Equal/Pos), CharClass. Prints a line and exits 42. *)
  4. IMPORT SysIO, Math, Strings, CharClass;
  5. VAR ExitCode : INTEGER;
  6. VAR s : ARRAY [0..31] OF CHAR;
  7. VAR n : INTEGER;
  8. BEGIN
  9. n := 0;
  10. IF Math.sqrt(144.0) > 11.9 THEN n := n + 10 END; (* 12 -> 10 *)
  11. IF Math.power(2.0, 10.0) > 1023.9 THEN n := n + 10 END;(* 1024 -> 20 *)
  12. IF Math.arcsin(0.0) = 0.0 THEN n := n + 2 END; (* -> 22 *)
  13. IF Math.arccos(1.0) = 0.0 THEN n := n + 2 END; (* -> 24 *)
  14. Strings.Assign("abc", s);
  15. IF Strings.Equal("abc", s) THEN n := n + 6 END; (* -> 30 *)
  16. IF Strings.Pos("bc", s) = 2 THEN n := n + 6 END; (* 1-based -> 36 *)
  17. IF CharClass.IsDigit('7') AND CharClass.IsAlpha('Q') THEN
  18. n := n + 6 (* -> 42 *)
  19. END;
  20. SysIO.Write("stdlib2 n="); SysIO.WriteInt(n); SysIO.WriteLn;
  21. ExitCode := n
  22. END Stdlib2Prog.