Accueil site Tableur Programmation Outils XML Tic en stock Téléchargement Informations



Algorithmique

Prolongement

Récursivité avec Logo 
 
Introduction
Initiation
  Généralités
  Première activité
  Calcul d'une racine carrée
  Exemple en géométrie
  Exemple avec Logo
Prolongement
  Symétrie centrale
  Parallélogramme
  Procédures avec Logo
  Récursivité avec Logo
Avec Algobox
  Fraction irréductible
  Fonction monotone
  Résolution d'équation 1
  Résolution d'équation 2
Avec Python
  Environnement
  Autres environnements
  L'essentiel
  Premier exemple
  Addition de fractions
  Cryptographie
  Statistiques / Probabilité
Avec Java
  Environnement
  L'essentiel
  Premier exemple
  Avec des classes
 
On veut obtenir la figure suivante :


On utilise la procédure FloconCentre (Voir la partie Initiation, Exemple avec Logo)
Cette procédure trace un flocon de côté donné et centré sur la position de la tortue juste avant l'appel de la procédure.
La longueur du côté est passée en paramètre de la procédure. Ainsi un flocon de côté 20 est obtenu en tapant :
FloconCentre :20 CT
Si on ne change pas la position de la souris, on peut emboiter des flocons en appelant dans un programme plusieurs fois la procédure FloconCentre.
Ainsi pour emboiter trois flocons de côtés respectifs 30, 20 et 10, il suffit de taper par exemple :
FloconCentre :30
FloconCentre :20
FloconCentre :10
CT
Récursivité
En informatique ou en logique, un processus (fonction, procédure ou plus généralement un algorithme) est récursif si le processus fait appel à lui-même.
La récursivité est la démarche qui utilise un processus récursif.
Figure récursive
Ici on va construire une procédure Logo qui s'appelle elle-même pour emboîter des flocons.
La procédure ne peut pas s'appeler indéfiniment, il faut une condition d'arrêt.
Avec MiniLogo, une instruction spécifique permet de sortir d'une procédure récursive, il s'agit de :

SORTIE SI NomParamètre Comparaison ValeurLimite

Dans cette instruction de sortie :
- NomParamètre est le nom du paramètre dont la valeur est à surveiller
- Comparaison est l'un des symboles suivants : =, >= et <=
- ValeurLimite est la valeur à tester à chaque itération.

Si on ne précise pas de valeur limite par cette instruction, le programme risque de finir par une erreur.
En réalité dans MiniLogo une limite supérieure et une limite inférieure existent par défaut dont les valeurs peuvent être précisées dans le menu Options.

On construit donc une procédure FloconPlein en se servant de la procédure FloconCentre (il est inutile de récrire le code de cette procédure), il suffit de préciser la condition de sortie et d'appeler de nouveau la procédure FloconPlein. Dans l'exemple, on trace tous les flocons imbriqués de côté variant de 30 à 0 par pas de 1.
On obtient ainsi la procédure :

POUR FLOCONPLEIN :long
SORTIE SI long=0
FLOCONCENTRE :long
FLOCONPLEIN :long-1
FIN POUR

On peut modifier le pas (0.5, 1, 2, ...) et ainsi modifier l'aspect de "remplissage".


On peut maintenant modifier la procédure FleurFlocon (voir Procédures avec Logo) en remplaçant l'appel de la procédure FloconCentre par l'appel de la procédure FloconPlein pour obtenir le remplissage des flocons :


© Matabu mars 2020 - Tous droits réservés. Limitation à l'usage non commercial, privé ou scolaire.