30 lines
666 B
Modula-2
30 lines
666 B
Modula-2
|
MODULE Characters;
|
||
|
|
||
|
(* From: MODULA-2, An Introduction, by Daniel Thalmann, Springer-Verlag,
|
||
|
New York, 1985
|
||
|
Figure 8.8
|
||
|
Changed a little, to have an ELSE part in the CASE statement
|
||
|
*)
|
||
|
|
||
|
FROM InOut IMPORT WriteLn, WriteString, Write;
|
||
|
|
||
|
CONST
|
||
|
StrByLine = 4;
|
||
|
|
||
|
VAR
|
||
|
c : CHAR;
|
||
|
|
||
|
BEGIN
|
||
|
FOR c := 0C TO 177C DO
|
||
|
IF ORD(c) MOD StrByLine = 0 THEN WriteLn; END;
|
||
|
CASE c OF
|
||
|
0C..37C, 177C : WriteString("Control character ") |
|
||
|
"0".."9": WriteString("Digit ") |
|
||
|
"a".."z": WriteString("Lower case letter ") |
|
||
|
"A"..'Z': WriteString("Upper case LETTER ")
|
||
|
ELSE WriteString("Special character ")
|
||
|
END;
|
||
|
END;
|
||
|
END Characters.
|
||
|
|