Programmez le \l;robot\u object\bottr; pour qu'il suive le chemin en forme de spirale. Il faut avancer deux fois de 25 mètres, puis deux fois de 20 mètres. etc., jusqu'à l'arrêt.
On constate que le mouvement est composé de "L" imbriqués. Le premier, en bleu foncé, avance deux fois de 25 mètres. Le deuxième, en bleu clair, avance de 5 mètres de moins, etc. On peut donc commencer par réaliser la \l;fonction\u cbot\function; qui déplace le robot le long d'un "L" dont on donne la longueur:
Il ne reste plus qu'à écrire la fonction principale, qui fera appel à \c;Part\n;. La variable \c;rest\n; est initialisée au départ à 25 mètres. La boucle \c;while\n; est ensuite répétée tant que \c;rest\n; est plus grand que zéro. A l'intérieur de la boucle, on appelle la fonction \c;Part\n; définie plus haut, puis on enlève 5 mètres à la longueur à parcourir.
Le dernier appel de \c;Part\n; a lieu avec la valeur \c;5\n;. Ensuite, l'expression \c;rest-5\n; met la valeur zéro dans la variable \c;rest\n;. La boucle \c;while\n; est donc stoppée.
\b;Remarque
Vous aurez peut-être remarqué que dans l'exercice précédent, la fonction principale était au début, alors qu'ici elle vient après la fonction secondaire \c;Part\n;. En fait, les deux façons de faire sont possibles et rigoureusement identiques.