« 0. DUP → n S k « 0. n START k SQ S + 1. 'k' STO+ 'S' STO
NEXT S "S" TAG » »
Voer het programma in en sla het op in een variabele met de naam @@@S1@@@.
Hier volgt een korte uitleg over hoe het programma werkt:
1. Dit programma heeft een heel getal nodig als invoer, daarom bevindt dit
getal (n) zich voor de uitvoering van het programma op niveau 1 van het
stapelgeheugen. Daarna wordt het programma uitgevoerd.
2. Er wordt een nul ingevoerd, wat in verplaatst naar niveau 2 van het
stapelgeheugen.
3. Het commando DUP, dat kan worden ingevoerd als ~~dup~,
kopieert de inhoud van niveau 1 van het stapelgeheugen, verplaatst alle
niveaus van dat stapelgeheugen naar boven en plaatst de kopie die het
zojuist heeft gemaakt op niveau 1 van het stapelgeheugen. Dus bevindt n
zich, nadat DUP is uitgevoerd, op niveau 3 van het stapelgeheugen en
bevatten de niveaus 1 en 2 een nul.
4. Het codefragment → n S k slaat de waarden van respectievelijk n, 0 en
0 op in de locale variabelen n, S en k. We zeggen dat de variabelen n, S
en k werden geïnitialiseerd (S en k naar nul, n naar een waarde die de
gebruiker kiest).
5. Het codefragment 0. n START identificeert START lus waarvan de index
de waarden 0, 1, 2, ..., n zal aannemen.
6. De som S wordt verhoogd met k
7. De index k wordt verhoogt met 1 in het codefragment: 1. k +
8. Op dit moment zijn de bijgewerkte waarden van S en k beschikbaar op
respectievelijk niveaus 2 en 1 van het stapelgeheugen. Het codefragment
'k' STO slaat de waarde van niveau 1 van het stapelgeheugen op in de
locale variabele k. De bijgewerkte waarde van S staat nu op niveau 1 van
het stapelgeheugen.
9. Het codefragment 'S' STO slaat de waarde van niveau 1 van het
stapelgeheugen op in de locale variabele k. Het stapelgeheugen is nu
leeg.
2
in het codefragment : k SQ S +
Blz. 21-59