Programmeren in REXX/Fundamenten: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
GuyDC (overleg | bijdragen)
Geen bewerkingssamenvatting
GuyDC (overleg | bijdragen)
Geen bewerkingssamenvatting
Regel 1:
 
{{Programmeren in REXX}}
==Fundamenten van REXX==
 
Fundamenteel aan REXX is dat alle woorden binnen het programma intern als karakterreeks worden opgeslagen.
Regel 15:
* functies
 
==Bouwstenen==
===Commentaren===
Commentaren worden in REXX begrensd door een beginnende <span style="color:red">/*</span> en een eindigende <span style="color:red">*/</span>.
Regel 122 ⟶ 123:
* '''| &&''' logische of (OR) en exclusieve of (XOR)
Bij de strikte vergelijkingen worden de twee leden strikt genomen zoals ze zijn, in de andere gevallen wordt de korste karakterreeks tot dezelfde lengte als de langste gebracht door er blanco karakters aan toe te voegen.
 
==Speciale variabelen==
Er zijn 3 gereserveerde variabelen in REXX:
# '''RC''', bevat de returncode van het laatst uitgevoerde ''host-command'', een commando dat door het besturingssyteem is uitgevoerd.
# '''RESULT''', bevat het resultaat van de laatst uitgevoerde functie.
# '''SIGL''', bevat het lijnnummer vanwaar men is gekomen met een '''signal''' instructie.
Deze variabelen zullen ten gepaste tijde meer uitleg krijgen.
 
==Stems (arrays)==
In REXX is het ook mogelijk te werken met arrays (vectoren of matrices). Ze worden '''stems''' genoemd.
 
Een stem bestaat uit een geldig symbool (token), gevolgd door een punt. Zo zijn '''jan.''' en '''p.''' geldige namen van stems.
Zoals voor andere variabelen zijn de basiswaarde van een stem zijn eigen naam in hoofdletters, dus ''JAN.'' en ''P.'' in voorbeeld.
Op deze manier is enkel een impliciete definitie gemaakt van een array. Er zullen pas elementen in voorkomen indien we waarden toekennen aan '''samengestelde variabelen'''.
 
Een '''samengestelde variabele''' is opgebouwd uit de naam van een stem en een symbool.
Zo zijn '''jan.7''', '''jan.hello''', '''jan.i''' en '''jan.i.j''' geldige elementen van de stem '''jan.'''.
 
jan.7 = 25
jan.hello = "Gisteren"
i=5
jan.i = 17
j=7
jan.i.j=12
Tijdens de uitvoering zal REXX het token (de tokens) na het punt interpreteren. Hebben we een constante, zoals in jan.7 dan is ''JAN.7'' de naam van het element van de stem ''JAN.''. Dit element heeft in ons voorbeeld de waarde 27 gekregen.
<br>In het geval van ''jan.hello'' komen we terug tot de fundamenten van REXX. ''hello'' is een variabele, die als waarde ''HELLO'' heeft (haar eigen naam in hoofdletters) gezien we er vooraf geen waarde aan hebben toegekend.
''JAN.HELLO'' is dus een element van de stem ''JAN.'' en zal de waarde ''Gisteren'' bevatten.
<br>In het geval van ''jan.i'' zal REXX zien dat ''i'' de waarde 5 bevat, zodat het element nu ''JAN.5'' zal noemen en de waarde 17 zal bevatten.
<br>In het geval ''jan.i.j'' tenslotte hebben beide i en j een waarde gekregen en creëren we op die manier het element ''JAN.5.7'' met als waarde 12. Op deze manier kan men een matrix met 2 (of meer) dimensies simuleren, doch voor REXX zijn het allemaal elementen van de stem.
 
De dimensie van de stem wordt conventioneel in het element 0 gezet, dus in '''jan.0''' in ons voorbeeld.
 
Noteer dat we met een eenvoudige assignatie zoals
piet. = 'Onbekend'
alle elementen van de stem waaraan niet ''expliciet'' een waarde is toegekend deze ''standaardwaarde'' (default waarde) zullen hebben. Dus zowel ''PIET.7'' als ''PIET.Morgen'' zullen de waarde "Onbekend" hebben.
 
Merk tenslotte op dat de samengestelde variabele er zeer complex kan uitzien:
a="Dit is een hele volzin"
jan.a=17
zal dus het element ''<u>JAN.Dit is een hele volzin</u>'' de waarde 17 toekennen. Dit geeft interessante mogelijkheden waar we later nog zullen op terugkomen.
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.