conv_prog.mod 980 B

12345678910111213141516171819202122232425262728
  1. MODULE ConvProg;
  2. (* Conversions: Int/Card/Real <-> string round-trips. Exit 127. *)
  3. IMPORT Conversions;
  4. VAR ExitCode : INTEGER;
  5. VAR s : ARRAY [0 .. 31] OF CHAR;
  6. VAR n : INTEGER;
  7. VAR c : CARDINAL;
  8. VAR x : REAL;
  9. BEGIN
  10. Conversions.IntToStr(-1234, s);
  11. IF s[0] = "-" THEN ExitCode := ExitCode + 1 ELSE ExitCode := 100 END;
  12. IF s[1] = "1" THEN ExitCode := ExitCode + 2 ELSE ExitCode := 100 END;
  13. IF Conversions.StrToInt("42", n) THEN
  14. IF n = 42 THEN ExitCode := ExitCode + 4 END
  15. ELSE ExitCode := 100 END;
  16. IF Conversions.StrToInt("-7", n) THEN
  17. IF n = -7 THEN ExitCode := ExitCode + 8 END
  18. ELSE ExitCode := 100 END;
  19. IF NOT Conversions.StrToInt("4x", n) THEN
  20. ExitCode := ExitCode + 16
  21. ELSE ExitCode := 100 END;
  22. IF Conversions.StrToCard("99", c) THEN
  23. IF c = 99 THEN ExitCode := ExitCode + 32 END
  24. ELSE ExitCode := 100 END;
  25. IF Conversions.StrToReal("3.5", x) THEN
  26. IF x = 3.5 THEN ExitCode := ExitCode + 64 END
  27. ELSE ExitCode := 100 END
  28. END ConvProg.