Spirale de Pythagore : une solution.

1- Une solution sans les petits carrés

Ci-dessus : un script possible.

Remarque

On remarquera que la variable futur sommet de l'angle droit, qui contenait au départ le point B, a subi ensuite 15 affectations successives : son contenu a été remplacé successivement par une série d'autres points, positions particulières de la tortue lors de son cheminement.

Fondamental

La question des affectations successives d'une variable n'est pas toujours facile à enseigner.

  • En JavaScript comme dans certains autres langages une affectation se traduit par le signe = ; ce qui est une source supplémentaire de difficultés. D'autres langages proposent <-- ; avec l'avantage de suggérer la lecture de droite à gauche.

  • Ainsi en JavaScript b=a+4 signifie : on récupère le contenu de a, on lui ajoute 4, et ce résultat deviendra le nouveau contenu de b.

  • Une suggestion pour expliquer ceci aux élèves : leur montrer la similitude avec le "enregistrer sous" qu'ils connaissent bien : on ouvre le fichier intitulé a, on le modifie, puis on l'enregistre sous b. Avec une différence de taille : quand il s'agit de fichiers on a immédiatement l'avertissement "le fichier b existe déjà, voulez-vous le remplacer ?" ... avertissement qui n'apparaît pas quand on affecte une variable informatique.

En Blockly également il est conseillé de lire de droite à gauche. On peut interpréter ainsi le bloc ci-contre : la position de la tortue (en fait le tableau de ses deux coordonnées) est "enregistré sous" la variable intitulée futur sommet de l'angle droit.

2- Une solution avec les petits carrés

Méthode

Pour tracer le petit carré de taille n dfonctionPythagoreu premier triangle, puis de tous les autres, voici une démanche possible (partie du code isolée dans l'image ci-contre).

Dans l'écriture d'un programme il arrive souvent qu'on veuille isoler certaines parties du code dans un sous-programme en utilisant une fonction ; ceci dans le but de rendre le code plus lisible.

Le tracé du petit carré peut par exemple être transformé en fonction, comme l'explique la vidéo ci-dessous.

Fondamental

La fonction ici utilisée ne permet pas les "sorties", c'est à dire ne renvoie rien une fois qu'elle a été appelée. Ces fonctions sans sortie s'appellent parfois des "procédures", par opposition aux fonctions avec retour de valeur. Mais dans de nombreux langages actuels, comme le JavaScript, il n'y a pas lieu de faire la distinction entre les deux : on parle de fonction dans tous les cas.

En informatique, avec l'utilisation de fonctions, on parle de factorisation de code.