Dit hoofdstuk behandelt een verzameling hulpmiddelen waarmee de mogelijkheden van wiris gevoelig toenemen. We raden de meeste gebruikers aan om dit hoofdstuk te bestuderen om zichzelf of de leerlingen in te werken in de wereld van het programmeren. Dit hoofdstuk veronderstelt een voorafgaande kennis van programmeren. Zo kan de taal die we hier gebruiken een beetje technischer klinken dan in de vorige hoofdstukken.
De onderdelen van dit hoofdstuk zijn de volgende:
Informatie over booleaanse uitdrukkingen en logische operatoren , die een belangrijke functie hebben binnen het programmeren, vind je verderop.
als...: Icoontje of
, vonnis als
B
dan
A
einde als
B
dan
A
anders
A2
einde als
B
dan
A
anders_indien
B2
dan
A2
anders
A3
einde
Voert de instructies uit van
A
indien voldaan wordt aan voorwaarde
B
. In het geval niet voldaan werd aan de voorwaarde en er een instructie andersbestaat, dan voert het commando de instructies uit van
A2
. Er bestaat ook de mogelijkheid van meervoudige voorwaarden en meerdere groepen instructies, door gebruik te maken van voorwaarden van het type anders_indien , via het menu van het tabblad programmeren.
|
voor...: Icoontje
, vonnis voor
R
doe
A
einde
Herhaalt de instructies van
A
volgens het bereik van
R
.
|
herhaal...: Icoontje
, vonnis herhaal
A
tot
B
Herhaalt de instructies van
A
tot voldaan wordt aan voorwaarde
B
.
|
We vervolledigen de beschrijving van datastructuren uit het hoofdstuk Wiskundige objecten.
bereiken: Dit zijn objecten van de vorm a..b of a..b..d , waarbij a, b en d reële getallen zijn ( a..b is gelijk aan a..b..1). Indien d verschillend is van 0 stelt het bereik
a..b..d de lijst voor met de elementen van de rekenkundige reeks a, a+d, a+2d, ... , steeds binnen b. Indien d nul is, stelt het bereik de lege lijst voor. Bijvoorbeeld, 1..6 betekent
{1,2,3,4,5,6}, 1..6..2 betekent {1,3,5} en 6..1..-3 betekent {6,3}.
De functie lijst toegepast op een bereik, geeft de lijst weer die ze voorstelt.
|
booleaanse uitdrukkingen: Dit zijn de logische constanten waar of vals die respectievelijk overeenstemmen met de waarden waar en onwaar. Deze worden hoofdzakelijk bekomen met de operator ? toegepast op vergelijkingen en ongelijkheden.
De logische operatoren, die elementair zijn om de besturingsvoorwaarden te definiëren, zijn de volgende:
Logische operator |
Symbool |
en |
|
of |
|
niet |
niet |
We bekijken enkele toepassingen van deze functies:
|
domeinen: De wiskundige objecten van wiris kunnen geclassificeerd worden in wiskundige verzamelingen. Deze verzamelingen noemen we domeinen. Enkele voorbeelden van domeinen zijn Geheel, Rationaal, Irrationaal, Reëel en Veelterm. Met het commando is?, kunnen we te weten komen of een object tot een bepaald domein behoort.
Om te werken met domeinen, beschikt wiris over de operatoren (equivalent aan de logische) &
,
| ,
niet, die dezelfde functies hebben als de operatoren doorsnede, unie en complement bij verzamelingen. Zo beschikken we dus over de volgende relatie tussen operatoren, waarmee we op gelijkaardige wijze kunnen werken in verschillende wiskundige structuren.
Logische operator |
Operator voor verzamelingen |
Symbool |
en:
|
intersectie:
|
& |
of:
|
unie:
|
| |
niet |
complement |
niet |
We moeten ten slotte vermelden dat de functie imply? toelaat te achterhalen of een domein al dan niet deel uitmaakt van een andere domein, en dat get_domain ons toelaat het domein te bepalen waartoe een element behoort.
Het is in het bijzonder interessant domeinen te gebruiken om functies te definiëren. Dit laat ons toe functies in stukjes te definiëren (afhankelijk van het domein) evenals de waarden te beperken waarvoor een functie gedefinieerd is.
|
hoofdregels en substitutie: Vanuit syntactisch oogpunt is een regel een lijst van objecten van het type x=>y of x:=>y. We noemen x variabele of patroon, afhankelijk van het feit of het een variabele is of niet, we noemen y afbeelding en we we zeggen koppel voor x=>y of x:=>y. Een substitutie is een hoofdregel die enkel gedefinieerd wordt door variabelen. Indien we => kiezen, gebruiken we de waarde van y om de regel te definiëren, maar als we :=>kiezen, beschouwen we y als variabele bij het definiëren van de regel.
De symbolen => en :=> kunnen we creëren met de icoontjes
en .
Door een hoofdregel toe te passen op een uitdrukking, worden alle patronen (of variabelen) die opduiken in die uitdrukking vervangen door het beeld van hun patroon (of variabele). De termen die niet overeenkomen met het patroon (of variabele), worden niet gewijzigd. Meer informatie in commando Regel of Substitutie.
|
delers: Vanuit syntactisch oogpunt is een deler een vector met objecten van het type x->y. We zeggen dat x een index is, y de geassocieerde waarde en x->y een koppel van de deler. Om de geassocieerde waarde van een index te bepalen, wordt de deler toegepast op het object; indien de index geen geassocieerde waarde heeft, is het resultaat 0. Het symbool -> kan worden gecreëerd met het icoontje .
De delers hebben een bijzonder belang in verschillende toepassingen. Bijvoorbeeld, de structuur die de functie factor weergeeft, is een Deler met als indexen de primaire delers van het in factoren te ontbinden object (zoals bijvoorbeeld een geheel getal of een veelterm) en als waarden de exponenten van deze primaire delers.
Een ander belangrijk aspect van de delers is dat ze kunnen worden opgeteld en dat deze som zo gedefinieerd is dat de waarden van eenzelfde index opgeteld zijn. De factorisatie van een product, bijvoorbeeld, is de som van de delers verkregen door de factorisatie van de factoren.
Meer informatie in Deler.
|
relaties: Vanuit syntactisch oogpunt is een relatie een lijst van objecten van het type x->y. We zeggen dat x een index is, y de geassocieerde waarde en x->y een koppel van de relatie. Het belangrijkste aspect van relaties is dat ze het ons mogelijk maken de waarde terug te vinden (of de rij van waarden) die geassocieerd is met de index; dit gebeurt door het object toe te passen op het element. Indien een object geen geassocieerde index heeft in een relatie en men het toepast op de relatie, krijgt men als resultaat nihil. Het symbool -> kan worden gecreëerd met het icoontje .
Meer informatie in Relatie.
|
|