RosettaCodeData/Task/Nth/XBasic/nth.basic

36 lines
762 B
Plaintext

PROGRAM "nth"
VERSION "0.0002"
DECLARE FUNCTION Entry()
INTERNAL FUNCTION Suffix$(n&&)
INTERNAL FUNCTION PrintImages (loLim&&, hiLim&&)
FUNCTION Entry()
PrintImages( 0, 25)
PrintImages( 250, 265)
PrintImages(1000, 1025)
END FUNCTION
FUNCTION Suffix$(n&&)
nMod10@@ = n&& MOD 10
nMod100@@ = n&& MOD 100
SELECT CASE TRUE
CASE (nMod10@@ = 1) AND (nMod100@@ <> 11):
RETURN ("st")
CASE (nMod10@@ = 2) AND (nMod100@@ <> 12):
RETURN ("nd")
CASE (nMod10@@ = 3) AND (nMod100@@ <> 13):
RETURN ("rd")
CASE ELSE:
RETURN ("th")
END SELECT
END FUNCTION
FUNCTION PrintImages(loLim&&, hiLim&&)
FOR i&& = loLim&& TO hiLim&&
PRINT TRIM$(STRING$(i&&)); Suffix$(i&&); " ";
NEXT
PRINT
END FUNCTION
END PROGRAM