RosettaCodeData/Task/Nth/Action-/nth.action

40 lines
543 B
Plaintext

PROC Nth(CARD val,CHAR ARRAY s)
CHAR ARRAY sfx
BYTE d
StrC(val,s)
s(0)=s(0)+1
s(s(0))=''
d=val MOD 100
IF d>10 AND d<14 THEN
sfx="th"
ELSE
d=val MOD 10
IF d=1 THEN sfx="st"
ELSEIF d=2 THEN sfx="nd"
ELSEIF d=3 THEN sfx="rd"
ELSE sfx="th"
FI
FI
s(0)=s(0)+2
SAssign(s,sfx,s(0)-1,s(0)+1)
RETURN
PROC Main()
CARD ARRAY n=[0 250 1000]
CHAR ARRAY s(10)
CARD i,j
FOR i=0 TO 2
DO
FOR j=n(i) TO n(i)+25
DO
Nth(j,s)
PrintF("%S ",s)
OD
PutE() PutE()
OD
RETURN