t_valconv.mod 657 B

1234567891011121314151617181920212223242526
  1. MODULE TValConv;
  2. (* VAL conversions across INTEGER / LONGINT / REAL. Exit 15. *)
  3. VAR ExitCode : INTEGER;
  4. VAR i : INTEGER;
  5. VAR l : LONGINT;
  6. VAR r : REAL;
  7. BEGIN
  8. ExitCode := 0;
  9. (* INTEGER -> LONGINT -> INTEGER (widen, then narrow) *)
  10. l := VAL(LONGINT, 1000);
  11. IF VAL(INTEGER, l) = 1000 THEN ExitCode := ExitCode + 1 END;
  12. (* INTEGER -> REAL *)
  13. r := VAL(REAL, 3);
  14. IF r = 3.0 THEN ExitCode := ExitCode + 2 END;
  15. (* REAL -> INTEGER (truncate toward zero) *)
  16. r := 3.9;
  17. IF VAL(INTEGER, r) = 3 THEN ExitCode := ExitCode + 4 END;
  18. (* LONGINT -> REAL *)
  19. l := 7;
  20. r := VAL(REAL, l);
  21. IF r = 7.0 THEN ExitCode := ExitCode + 8 END
  22. END TValConv.