10 // General sample program
20 //
50 PRINT a;
" ";verbaal$
(a
) 60 ENDWHILE
70 //
80 DATA 1, 12, 34, 112, 1009, 1234567890 90 //
100 FUNC verbaal$(getal#) CLOSED
110 //
120 // ************************************
130 // ** FUNC Verbaal$
( Integer ) ** 140 // ************************************
150 //
160 // Geschreven door Jos Visser, 25-06-1987
170 // Aangepast voor PDCOMAL, 10-9-92
180 //
190 //
200 // Functie :
210 // Deze functie neemt als parameter een
integer getal
, 220 // positief danwel negatief
, en geeft een
string terug
230 // die weergeeft hoe dat getal op zijn Nederlands
240 // geschreven kan worden.
250 //
260 // Parameters in :
280 //
290 // Parameters uit :
300 // String, maximaal
132 karakters lang
310 //
320 // Packages ed. :
330 // Geen
340 //
350 PROC skipspaces(REF a$) CLOSED
390 ENDPROC
400 //
410 FUNC cijfer$(nr#) CLOSED
430 a$:="nul een twee drie vier vijf zes zevenacht negentien "(1+nr#*5:5+nr#*5)
440 skipspaces(a$)
460 ENDFUNC
470 //
480 FUNC t'11'19$(nr#) CLOSED
500 a$:="tien elf twaalf dertien veertien vijftien zestien zeventienachtien negentien"(1+(nr#-10)*9:9+(nr#-10)*9)
510 skipspaces(a$)
530 ENDFUNC
540 //
550 FUNC tiental$(nr#) CLOSED
570 nr#:=nr# DIV 10
580 a$:="twintig dertig veertig vijftig zestig zeventigtachtig negentig"(1+(nr#-2)*8:8+(nr#-2)*8)
590 skipspaces(a$)
610 ENDFUNC
620 //
630 FUNC duizend$(nr#) CLOSED
640 honderd#:=nr# DIV 100
670 result$:=cijfer$(honderd#)+"honderd"
680 ELIF honderd#=1
690 result$:="honderd"
710 result$:=""
740 IF rest#
<>0 OR honderd#
=0 THEN result$:
+cijfer$
(rest#
) 750 ELIF rest#<20
760 result$:+t'11'19$(rest#)
780 IF rest#
MOD 10<>0 THEN result$:
=result$
+cijfer$
(rest#
MOD 10)+"en" 790 IF rest# DIV
10>0 THEN result$:
+tiental$
(rest#
) 820 ENDFUNC
830 //
840 DIM result$ OF
132, subresult$ OF
40 850 result$:=""
870 negatief#:=TRUE
880 getal#:=-getal#
900 result$:=""
910 negatief#:=FALSE
940 subgetal#:=getal# DIV 10^macht#
950 getal#:
=getal#
MOD 10^macht#
970 subresult$:=duizend$(subgetal#)
990 result$:=result$+", "+subresult$
1010 IF result$
="" THEN result$:
=" " 1040 WHEN 9
1050 result$:+" miljard "
1060 WHEN 6
1070 result$:+" miljoen "
1080 WHEN 3
1090 result$:+"duizend "
1100 OTHERWISE
1110 NULL
1120 ENDCASE
1140 skipspaces(result$)
1150 ENDFOR
1160 result$:=result$(3:)
1170 IF negatief#
THEN result$:
="min "+result$
1190 ENDFUNC
1200 //