Getallen
Telkens als u een getal opschrijft, zoals 9, -10 of 3,12, maakt XOScript daar achter de schermen een Getal-object van. U kunt dan berichten sturen naar het Getal-object of u kunt het getal toewijzen aan een variabele en daarna berichten sturen:
25 even?
>> geeltje := 25.
geeltje even?
Beide notaties zijn geldig. Het Getal-object reageert op berichten zoals: > , ≥ ,< , ≤ ,= , ≠ , + , – , * , / ,tussen:en:, oneven?, even?, optellen: ,’aftrekken:’, vermenigvuldigen met:,’delen door:’,’modulus:’, tot de macht:, positief?, negatief?, afgerond, afgerond naar beneden, afgerond naar boven, vierkantswortel, absoluut, tekst, ja of nee, ruw, kwalificering en kwalificering:. De meeste van deze berichten spreken voor zich, zo kunt u rekenkundige operaties uitvoeren met + , – , * , / en vergelijken met > , ≥ , < , ≤ , = , en ≠. Het verschil tussen tweevoudige rekenkundige berichten (+) en hun meervoudige varianten (optellen:) is dat u bij de eerste een nieuw getal terugkrijgt dat de uitkomst is van de operatie, terwijl bij de laatste het object zelf wordt aangepast. Het volgende voorbeeld illustreert dit:
a := 1. b := a + 3. a optellen: 2. Uit schrijf: a, stop. Uit schrijf: b, stop. 3 4
In bovenstaand voorbeeld is b = 4 en a = 3. Met optellen: 2 verhogen we de waarde van a met 2 terwijl we met + 3 een nieuw getal krijgen dat gelijk is aan a + 3. Hetzelfde verschil is van toepassing op andere rekenkundige bewerkingen zoals vermenigvuldigen, gebruikt u het keerteken dan krijgt u een nieuw object als antwoord, gebruikt u het bericht vermenigvuldig met: dan vermenigvuldigt u het getal zelf. Met het bericht tussen:en: als in: Getal tussen: X en: Y krijgt u een getal tussen X en Y. Op deze manier kunt u een willekeurig getal laten genereren:
>> a := Getal tussen: 1 en: 10.
Uit schrijf: a, stop.
Aan een getal kunt u een kwalificering hangen, bijvoorbeeld: 6 appels. Elk bericht dat een getal niet herkent, wordt beschouwd als een kwalificering. U kunt de kwalificering van een getal ophalen met het bericht kwalificering:
>> bedrag := 6 muntjes.
Uit schrijf: bedrag.
Uit schrijf: bedrag kwalificering.
6 muntjes
muntjes
Een kwalificering is dus eigenlijk een Tekst-object dat bewaard blijft bij het Getal-object. De kwalificering wordt ook afgedrukt achter het getal bij een schrijf:-opdracht. U kunt kwalificeringen gebruiken om bijvoorbeeld bedragen in verschillende valuta op te tellen. Bij de optelling van de bedragen vraagt u dan de kwalificering uit. In het volgende voorbeeldprogramma illustreren we dit principe aan de hand van een historische valutacalculator, het voordeel hiervan is dat de wisselkoers enigszins stabiel blijft ;-) .
Getal bij: ['+'] doen: { :aantal
(aantal kwalificering = ['dukaten']) ja: {
aantal vermenigvuldig-met: 5.
}.
zelf optellen: aantal.
}.
Uit schrijf: (7 florijnen + 3 dukaten), stop.
22 florijnen
In het bovenstaande codefragment passen we het +-bericht aan zodat rekening wordt gehouden met de munteenheid, in ons voorbeeld is 1 dukaat evenveel waard als 5 florijnen. Het zelf-pictogram duidt het object zelf aan: zelf hiermee kunnen we een bericht aan het object zelf sturen.
U kunt een kwalificering trouwens ook expliciet instellen met het bericht kwalificering::
>> x := 7 kwalificering: ['dukaten'].