0. DUP → n S k
«
NEXT S "S" →TAG » »
Tapez le programme et enregistrez-le dans une variable appelée @@@S1@@@.
Voici une brève explication du fonctionnement de ce programme :
1. Ce programme doit disposer d'un nombre entier en entrée. Par conséquent,
avant de l'exécuter, ce nombre (n) se trouve au niveau 1 de la pile. Le
programme est alors exécuté.
2.
On entre un zéro, ce qui déplace n au niveau 2 de la pile.
3.
La commande DUP, qui peut être tapée comme ~~dup~, copie
le contenu du niveau 1 de la pile, déplace tous les niveaux de la pile vers
le haut et place la copie qui vient d'être effectuée au niveau 1 de la pile.
Par conséquent, après l'exécution de DUP, n se trouve au niveau 3 de la
pile tandis que des zéros remplissent les niveaux 1 et 2 de la pile.
4.
L'élément de code → n S k stocke les valeurs de n, 0 et 0 respectivement
dans les variables locales n, S, k. On dit alors que les variables n, S, et k
ont été initialisées (S et k à zéro, n à la valeur choisie par l'utilisateur).
5.
L'élément de code 0. n START identifie une boucle START dont l'index
prendra les valeurs 0, 1, 2, ..., n
6.
La somme S est incrémentée de k
+
7.
L'index k est incrémenté de 1 dans l'élément de code rédigé : 1. k +
8.
A ce stade, les valeurs mises à jour de S et k sont disponibles
respectivement aux niveaux 2 et 1 de la pile. L'élément de code 'k' STO
stocke la valeur du niveau 1 de la pile dans la variable locale k. La valeur
mise à jour de S occupe maintenant le niveau 1 de la pile.
0. n START k SQ S + 1. 'k' STO+ 'S' STO
«
2
dans l'élément de code rédigé : k SQ S
Page. 21-59