46 lines
927 B
Plaintext
46 lines
927 B
Plaintext
MODULE Nth;
|
|
|
|
FROM STextIO IMPORT
|
|
WriteString, WriteLn;
|
|
FROM WholeStr IMPORT
|
|
IntToStr;
|
|
|
|
PROCEDURE Suffix(N: CARDINAL; VAR OUT Destination: ARRAY OF CHAR);
|
|
VAR
|
|
NMod10, NMod100: CARDINAL;
|
|
BEGIN
|
|
NMod10 := N MOD 10;
|
|
NMod100 := N MOD 100;
|
|
IF (NMod10 = 1) AND (NMod100 <> 11) THEN
|
|
Destination := "st";
|
|
ELSIF (NMod10 = 2) AND (NMod100 <> 12) THEN
|
|
Destination := "nd";
|
|
ELSIF (NMod10 = 3) AND (NMod100 <> 13) THEN
|
|
Destination := "rd";
|
|
ELSE
|
|
Destination := "th";
|
|
END;
|
|
END Suffix;
|
|
|
|
PROCEDURE PrintImages(LoLim, HiLim: CARDINAL);
|
|
VAR
|
|
I: CARDINAL;
|
|
IString: ARRAY [0 .. 15] OF CHAR;
|
|
ISuff: ARRAY [0 .. 1] OF CHAR;
|
|
BEGIN
|
|
FOR I := LoLim TO HiLim DO
|
|
IntToStr(I, IString);
|
|
Suffix(I, ISuff);
|
|
WriteString(IString);
|
|
WriteString(ISuff);
|
|
WriteString(" ");
|
|
END;
|
|
WriteLn;
|
|
END PrintImages;
|
|
|
|
BEGIN
|
|
PrintImages( 0, 25);
|
|
PrintImages( 250, 265);
|
|
PrintImages(1000, 1025);
|
|
END Nth.
|