Programmeren in REXX/Voorbeeldprogramma's: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
sjabloon 'code'
sleutelwoorden als hoofdletters
Regel 3:
{{Code| | Taal= REXX | Titel= echo.rex | Code= <pre>
/* echo.rex */
parsePARSE pullPULL tekst
doDO whileWHILE tekst \== "" /* '\==' betekent 'niet gelijk aan' */
saySAY tekst
parsePARSE pullPULL tekst
END
end
</pre> }}
 
Regel 13:
{{Code| | Taal= REXX | Titel= omwisseling.rex | Code= <pre>
/* omwisseling.rex */
saySAY "Geef me twee getallen"
pullPULL A
pullPULL B
X = A
A = B
B = X
saySAY "Omgewisseld:" A B
</pre> }}
 
Regel 26:
{{Code| | Taal= REXX | Titel= maximum_van_twee.rex | Code= <pre>
/* maximum_van_twee.rex */
saySAY "Geef me twee getallen"
pullPULL getal1
pullPULL getal2
ifIF (getal1 > getal2)
THEN
then
saySAY getal1 "is het grootste"
ELSE
else
saySAY getal2 "is het grootste"
</pre> }}
 
Regel 44:
opvulling='�'
 
saySAY "Geef weer te geven titel"
parsePARSE pullPULL titel
 
ifIF lengthLENGTH(titel) > breedte-rand
THEN
then
saySAY "Uw titel is te lang en kan daarom niet weergegeven worden"
elseELSE doDO
saySAY copiesCOPIES(symbool, breedte)
saySAY symbool copiesCOPIES(opvulling, breedte-rand) symbool
saySAY symbool centerCENTER(titel, breedte-rand) symbool
saySAY symbool copiesCOPIES(opvulling, breedte-rand) symbool
saySAY copiesCOPIES(symbool, breedte)
endEND
</pre> }}
 
Regel 62:
{{Code| | Taal= REXX | Titel= omzetting.rex | Code= <pre>
/* omzetting.rex */
saySAY "Geef om te zetten waarde."
pullPULL n
/* Indien 1 teken: omzetting ervan uitgaande dat het ASCII is */
ifIF LengthLENGTH(n) = 1
thenTHEN doDO
saySAY '['n'] ASCII -> Decimaal = ' c2d(n)
saySAY '['n'] ASCII -> Hexadecimaal = ' c2x(n)
endEND
/* Indien decimaal getal */
ifIF datatypeDATATYPE(n,'N')
thenTHEN doDO
saySAY '['n'] Decimaal -> ASCII = ' d2C(n)
saySAY '['n'] Decimaal -> Hexadecimaal = ' d2x(n)
endEND
/* indien zestiendeligzestiENDelig getal*/
ifIF datatypeDATATYPE(n,'X')
thenTHEN doDO
saySAY '['n'] Hexadecimaal -> ASCII = ' x2C(n)
saySAY '['n'] Hexadecimaal -> Decimaal = ' x2d(n)
endEND
</pre> }}
 
Regel 88:
{{Code| | Taal= REXX | Titel= koffievraag.rex | Code= <pre>
/* Koffievraag.rex */
doDO whileWHILE \(koffie="J" | koffie="N")
saySAY "Wil je koffie?"
pullPULL koffie
END
end
</pre> }}
 
Regel 97:
{{Code| | Taal= REXX | Titel= herhaling.rex | Code= <pre>
/* herhaling.rex */
doDO 3
saySAY x
END
end
 
doDO i = 1 to 10
saySAY i
END
end
 
doDO j = 1 to 2
doDO k = 1 to 3
saySAY "j=" j "k=" k
endEND /*k*/
endEND /*j*/
saySAY "j=" j "k=" k
</pre> }}
 
Regel 116:
{{Code| | Taal= REXX | Titel= weekdagen.rex | Code= <pre>
/* Weekdagen.rex */
saySAY "Geef me volgnummer van de dag"
pullPULL D
select
whenWHEN D = 1 thenTHEN saySAY "maandag"
whenWHEN D = 2 thenTHEN saySAY "dinsdag"
whenWHEN D = 3 thenTHEN saySAY "woensdag"
whenWHEN D = 4 thenTHEN saySAY "donderdagDOnderdag"
whenWHEN D = 5 thenTHEN saySAY "vrijdag"
otherwiseOTHERWISE saySAY "weekeinde"
END
end
</pre> }}
 
==Subroutines==
{{Code| | Taal= REXX | Titel= oppervlakte_donutoppervlakte_DOnut.rex | Code= <pre>
/* Oppervlakte_donutOppervlakte_DOnut.rex */
saySAY "Grootte van de grote straal?"
pullPULL r1
saySAY "Grootte van de kleine straal?"
pullPULL r2
opp = area(r1) - area(r2)
saySAY opp
 
EXIT
exit
 
area:
Regel 149:
{{Code| | Taal= REXX | Titel= lijnen.rex | Code= <pre>
/* lijnen.rex */
callCALL lijn 5
callCALL lijn 1
callCALL lijn 33
EXIT
exit
 
lijn:
arg lengte
saySAY copiesCOPIES('-',lengte)
return
</pre> }}
Regel 163:
{{Code| | Taal= REXX | Titel= product.rex | Code= <pre>
/* product.rex */
callCALL product 3, 4
saySAY "=" result /* het resultaat staat in de speciale variabele 'RESULT'*/
 
saySAY product(4,5)
 
EXIT
exit
 
product:
Regel 178:
{{Code| | Taal= REXX | Titel= stad.rex | Code= <pre>
/* stad.rex */
stad. = "onbekendonbekEND"
stad.1000="Brussel"
stad.2000="Antwerpen"
Regel 185:
stad.9000="Gent"
 
saySAY "Geef uw postcode"
saySAY "(4 cijfers)"
pullPULL postcode
ifIF stad.postcode <> stad.
THEN
then
saySAY "U woont dus in" stad.postcode "!"
ELSE
else
saySAY "De postcode is" stad.
</pre> }}
Dit werkt ook omgekeerd:
{{Code| | Taal= REXX | Titel= postcode.rex | Code= <pre>
/* postcode.rex */
postcode. = "onbekendonbekEND"
postcode.Brussel=1000
postcode.Antwerpen=2000
Regel 204:
postcode.Gent=9000
 
saySAY "In welke stad woont u?"
pullPULL stad
ifIF postcode.stad <> postcode.
THEN
then
saySAY "De postcode van" stad "is" postcode.stad "!"
ELSE
else
saySAY "De postcode is" postcode.
</pre> }}
 
Regel 225:
 
T1 = 6
doDO whileWHILE (1<T1)
T2 = 1
doDO whileWHILE (T2<T1)
ifIF (A.T1 > A.T2)
thenTHEN
doDO
temp = A.T1
A.T1 = A.T2
A.T2 = temp
endEND
T2 = T2 + 1
endEND
T1 = T1 - 1
END
end
 
T=1
doDO whileWHILE (T <= 6)
saySAY A.T
T = T + 1
END
end
</pre> }}
 
Regel 254:
teller = 1
output = ""
saySAY "Geef eerste getal (stoppen kan met een negatief getal)"
pullPULL getal
ifIF (getal >= 0)
THEN
then
doDO
doDO whileWHILE (getal >= 0)
ifIF (getal > max)
thenTHEN max = getal
A.teller = getal
saySAY "Geef nog een getal (stoppen kan met een negatief getal)"
pullPULL getal
teller = teller + 1
endEND
saySAY "maximum van de reeks"
lengte = teller
teller = 1
doDO whileWHILE (teller < lengte)
saySAY A.teller
output = output A.teller
teller = teller + 1
endEND
saySAY "is" max "van" output
endEND
ELSE
else
saySAY "De reeks werd onmiddellijk afgebroken met een negatief getal"
</pre> }}
 
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.