Algorithme

publicité
Algorithme
Problème
On veut afficher un triangle isocèle avec des étoiles, dont la hauteur nous sera donné par l’utilisateur (le nombre
de ligne et dont la dernière ligne du triangle viendra s’afficher sur le bord gauche de l’écran.
*
***
*****
Principe
Placer tout d’abord le sommet (la 1ere étoile). Ensuite créer une boucle dont le but va être, à chaque fois qu’elle
s’exécute, de faire sauter une ligne au curseur et de le décaler d’une colonne vers la gauche jusqu'à ce que le
curseur arrive à la colonne 1. Et à l’intérieur de cette boucle en créer une autre qui va afficher les étoiles à
chaque fois que le curseur va à la ligne (en se décalant vers la gauche). Mais cette boucle doit à chaque tour
afficher 2 étoiles de plus que la fois précédentes (d’abord 1 puis 3 puis 5 …n+2).
Environnement
Variable
Rôle
Co
donné/résultat, valeur numérique entière, hauteur du triangle voulu par
l’utilisateur(équivalent à la colonne d’origine de la 1ere étoile).
donné, caractère, variable à laquelle on va attribuer le caractère « * » afin de l’afficher
A différents endroits suivant la valeur de co.
donné/résultat, valeur numérique entière, nombre permettant de compter le nombre
d’étoiles affichées.
donné/résultat, valeur numérique entière, nombre permettant d’afficher à chaque
changement de ligne 2 étoiles de plus que la fois précédente
donné, caractère, permet de faire une boucle de réexecution du programme
A
X
Y
R
Algorithme
Début
Tant que R = n ou R = N
Faire
Afficher « Combien de ligne ? »
Lire Co
Si Co = 0 Alors Afficher « Avec 0 ligne on ne peut pas afficher d’étoile »
Finsi
Si Co = 1 Alors Afficher « Avec une seule ligne on ne peut pas afficher de triangle »
Finsi
Si Co > 1
Y←3
X←1
A ← ‘*’
Afficher A à la colonne Co et sauter une ligne
Tant que Co ≠ 1
Faire
Décrémenter Co
Afficher A à la colonne Co
Tant que X ≠ Y
Faire
Afficher A
Incrémenter X
Finfaire
Afficher sauter une ligne
Incrémenter 2 fois Y
X←1
Finfaire
Afficher « Voulez vous quittez le programme ? O)ui ou N)on »
Lire R
Finfaire
Fin
Téléchargement