Récursivité

Résolu/Fermé
Anna - 21 févr. 2016 à 19:38
 Anna - 21 févr. 2016 à 22:55
Bonjour,

je suis en train de préparer l'algorithmique pour passer l'examen de demain
il y a quelque chose que je n'ai pas compris dans la correction de cet exercice:

""Écrire un programme modulaire, utilisant des sous-programmes récursifs, permettant de dessiner une pyramide d’étoiles selon un entier N impair donné."""

Correction :""

Algorithme Pyramide
Variable N : Entier
Fonction Saisie() : Entier
Procédure Espace( i : Entier)
Procédure Etoile( j : Entier)
Procédure Dessiner( k, m : Entier)
Début
N  Saisie()
Dessiner (1, N)
Fin
Fonction Saisie() : Entier
Variable N : Entier
Début
Écrire (‘Donnez un Entier impair : ’)
Lire(N)
Si (N Mod 2 = 0) Alors
retourner(N)
Sinon
retourner(Saisie())
Fin Si
Fin
Procédure Espace( i : Entier)
Début
Si (i ≥ 1) Alors
Écrire (‘ ’)
Espace(i-1)
Fin Si
Fin
Procédure Etoile( j : Entier)
Début
Si (j ≥ 1) Alors
Écrire (‘*’)
Etoile(j-1)
Fin Si
Fin
Procédure Dessiner( k, m : Entier)
Début
Tant que (k ≤ m) Faire
Espace (m-k)
Etoile(k)
Etoile(k-1)
Écrire(‘\n’)
k  k + 1
Fin Faire
Fin

j'aime bien comprendre que représente les variables : i, j, k, m ? et pourquoi à chaque fois on décrémente dans les deux fonctions espace et etoile ?

SVP j'attend votre réponse .

1 réponse

Utilisateur anonyme
21 févr. 2016 à 22:00
Salut,

i est un paramètre représentant le nombre d'espace que tu souhaites écrire.
j est un paramètre représentant le nombre d'étoile que tu souhaites écrire.
m est un paramètre représentant la longueur prévue (en caractères) de la pyramide.
k est un paramètre indiquant la taille (en caractère) initiale de la plus petite base de la pyramide.

Dans les fonctions espace et etoile on "décrémente" parce que c'est le principe de la récursivité.
Il s'agit de dire que pour dessiner 3 étoiles, tu en dessine 1 puis 2.
Pour dessiner 2 étoiles, tu en dessine 1 puis 1.
Enfin pour dessiner 1 étoile bah, c'est évident ...
0
Merci beaucoup Help-Jason :)
0