Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
Discussion fermée
#1 18-02-2016 14:48:01
- sabrine
- Invité
structures répétitives ( les boucles ) !
Bonjour , bref je n'arrive toujours pas a comprendre les Boucles ( pour , tant que ) , et surtout les exercices dont il y'a les étoiles ( en pyramide ..)
SVP j'ai besoin d'un site ou quelqu'un pour m'expliquer cette structure , je n'ai vraiment besoin mercii d'avance !
#2 18-02-2016 15:30:45
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 948
Re : structures répétitives ( les boucles ) !
Bonjour,
D'abord la notion de boucle...
Une boucle est uns structure qui doit être employée pour effectuer un travail répétitif, (presque toujours le même).
Par exemple compter de 15 en 15 à partir d'un nombre donné (par ex. 15)
On part d'une variable nb (par ex) qu'on initialise à 17 (par ex)
Sans boucle, tu écrirais.
nb = 17
Ajouter 15 à nb
Ajouter 15 à nb
Ajouter 15 à nb
...........
Ajouter 15 à nbre.
Si tu le fais 50 fois, tu vas te fatiguer d'écrire 50 fois :
nb PREND LA VALEUR nb+15...
Donc, la boucle va faire ce travail à ta place 50 fois de suite si tu le lui demandes gentiment :
S'il te plaît,
Ajoute-moi 50 fois de suite 15 au nombre 17...
Ça va plus vite, hein...
Là on connaît le nombre de fois (on dit d'itérations), il faut donc utiliser une boucle POUR :
POUR i POUR ligne ALLANT_DE 1 A 50
DEBUT_POUR
nombre PREND_LA_VALEUR nombre + 15
FIN_POUR
Que fait la boucle ? Grâce à un compteur intégré que j'ai appelé i, elle compte le nombre de fois, qu'elle va parcourir le cycle:
DEBUT_POUR --> nombre PREND_LA_VALEUR nombre + 15 --> FIN_POUR _|
^ |
|<--------------------------------------------------------------------|
Quand i atteint la valeur 51, la boucle s'arrête...
La valeur de nombre est alors ; 17+15*50 = 767.
Voilà le programme
1 VARIABLES
2 i EST_DU_TYPE NOMBRE
3 nb EST_DU_TYPE NOMBRE
4 DEBUT_ALGORITHME
5 nb PREND_LA_VALEUR 17
6 POUR i ALLANT_DE 1 A 50
7 DEBUT_POUR
8 nb PREND_LA_VALEUR nb+15
9 FIN_POUR
10 AFFICHER "Valeur de nb : "
11 AFFICHER nb
12 AFFICHER "Valeur de i :"
13 AFFICHER i
14 FIN_ALGORITHME
***Algorithme lancé***
Valeur de nb : 767
Valeur de i :51
***Algorithme terminé***
Mais tu peux aussi utiliser une boucle TANT_QUE + condition :
1 VARIABLES
2 i EST_DU_TYPE NOMBRE
3 nb EST_DU_TYPE NOMBRE
4 DEBUT_ALGORITHME
5 nb PREND_LA_VALEUR 17
6 TANT_QUE (i<50)
7 DEBUT_TANT_QUE
8 nb PREND_LA_VALEUR nb+15
9 i REND_LA_VALEUR i+1
10 FIN_TANT_QUE
11 AFFICHER "Valeur de nb : "
12 AFFICHER nb
13 AFFICHER "Valeur de i :"
14 AFFICHER i
15 FIN_ALGORITHME
C'est de l'imitation du précédent.
***Algorithme lancé***
Valeur de nb : 767
Valeur de i :50
***Algorithme terminé***
Un "détail" : lorsque après i PREND_LA_VALEUR i+1, i a pris la valeur 49, la boucle TANT_QUE exécute une 50e fois le programme...
Après i PREND_LA_VALEUR i+1, i a pris la valeur 50, le cycle recommence, mais i n'étant plus < 50, on sort de cette boucle, avant que le compteur i n'augmente de 1... C'est pourquoi, là, la valeur affichée de i est de 50 et non 51...
La boucle POUR est à utiliser si on connaît le nombre d'itérations à faire : on n'a pas besoin de gérer soi-même le compteur...
Les scripts d'affichage des étoiles en pyramide.
VARIABLES
etoile EST_DU_TYPE NOMBRE
ligne EST_DU_TYPE NOMBRE
nb EST_DU_TYPE NOMBRE
espace EST_DU_TYPE NOMBRE
nb_fin EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
AFFICHER "Nombre de lignes de la Pyramide ?"
LIRE nb
POUR ligne ALLANT_DE 1 A nb
DEBUT_POUR
nb_fin PREND_LA_VALEUR nb-ligne
POUR espace ALLANT_DE 1 A nb_fin
DEBUT_POUR
AFFICHER " "
FIN_POUR
POUR etoile ALLANT_DE 1 A 2*ligne-1
DEBUT_POUR
AFFICHER "*"
FIN_POUR
AFFICHER " "
FIN_POUR
FIN_ALGORITHME
AFFICHER "Nombre de lignes de la Pyramide ?"
LIRE nb
POUR ligne ALLANT_DE 1 A nb
Pourquoi ?
nb est le nombre de lignes de la boucle : je peux en vouloir 3, 5, 10, 28...
Je demande cette valeur (LIRE nb), puis ma boucle va traiter une ligne à chaque itération...
Tu vas devoir afficher sur les lignes successives 1 étoile, 3 étoiles, 5, 7, 9, 11, 13 si tu choisis 7 pour nb...
Sur la 7e ligne aucun espace...
sur la 6e, un espace avant les étoiles et un après avec cocher retour à la ligne (après, aucune importance. Tu vois pourquoi ?)
sur la 5e, deux espaces avant les étoiles,
sur la 4e, trois espaces avant les étoiles,
...............
sur la 1ere, six espaces avant les étoiles
Ligne 1, 6 (= 7-1) espaces
Ligne 2, 5 (= 7-2) espaces
..........
Ligne 7, (0 (=7-7) espaces
le nombre d'espaces à tracer est donné par la valeur nb-ligne, je le stocke dans nb_fin
Une fois le nombre d'espaces placés, je n'ai plus qu'à placer les étoiles à la suite, en nombre impair.
avec ligne= 1, 2*ligne-1=1
avec ligne= 2, 2*ligne-2=3
avec ligne= 3, 2*ligne-2=5...
etc.
Je repasse commenter les autres variantes du code si nécessaire, d'ici 3 heures...
@+
Arx Tarpeia Capitoli proxima...
En ligne
#3 18-02-2016 19:54:21
- sabrine
- Invité
Re : structures répétitives ( les boucles ) !
merci beaucoup !! j'ai besoin du pratique je pense !
#4 18-02-2016 19:56:17
- sabrine
- Invité
Re : structures répétitives ( les boucles ) !
ah oui merci beaucoup , c'est plus clair maintenant , j'ai besoin plus de pratique
Pages : 1
Discussion fermée