bonjour,
je dois faire un algo qui fait rentrer a l'utilisateur n nombres et rentrer 0 fini la saisie des nombres. ensuite l'algo dois calculer la somme des n nombres et le nombre de nombres saisie.
j'ai choisie de faire un
repeter
afficher "rentrez un nombreentier ou 0 pour finir
jusqu'a n=0
mais arriver la il y a un truc qui me bloque
comment afficher le nombre de nombres qu'on a saisie?
est ce lus facile avec un tant que ?
merci
"Répéter tant que..." est utile quand on doit d'abort executer une instruction, pis tester un resultat, tandis que "tant que..." est utile lorsque l'on doit d'abort tester une condition avant de continuer. Parfois, les 2 sont acceptable, parfoit non...
A mon avis l'instruction tant que serait la plus recommandée pour ton cas.
Tu dis qu'il doit entrer 0 pour arreter la saisie, avec un For... ce ne serait pas possible parce que là tu définira deja le nombre de repetition de l'action.
Pour avoir le nombre n de nombre saisis, il te faudra juste afficher le compteur de reptition de ta boucle tant .. que.
__________________________
A partir du 14 Mars à 08h43, je passe en mode Flex ....
Le code..............
Ya rien de mieux Ke le kod............
Aucun dit : comment afficher le nombre de nombres qu'on a saisie?
Il faut que tu utilises une variable qui te sert uniquement de compteur. En suivant ton exemple ça ferait un truc genre :
DEBUT
Nombre compteur=0;
Nombre n=1;
Tant que n != 0
"Rentrer un nombre" -> n;
Si n!= 0
compteur+1->compteur;
Fin de la boucle Tant que
Afficher "Il y a eu "+compteur+" nombres d'entrés";
FIN
ciao et n'hésite pas à poser des questions ;)
__________________________
............ Curtis: RTS 3D .............. ......
........... TeamMoteurProg...........
avec la boucle Répéter... Jusqu'à : {---la solution la plus optimale---}
*Début calcul
*Initialisations [s <-- 0]
[i <-- 0]
*Répéter
écrire("introduire un entier : "), lire(n)
s<--s+n
i<--i+1
Jusqu'à n=0
*écrire("la somme des entiers est : ", s)
*écrire("le nombre de termes introduits est : ", i-1)
////// i-1 et NON i car le dernier entier saisie est 0 et lors de l'exécution de la boucle "Répéter..Jusqu'à" i va être incrémenté de 1 mais nous ne voulions pas que 0 entre dans le nombre des termes saisies donc on décremente i de 1 sinon pour la somme 0 est un élément neutre dans l'addition donc il ne nous gêne pas ^_^ /////
*Fin calcul.
================================= avec la boucle tant que .... faire :
*écrire("entrer un entier :") , lire(n)
*Initialisations [s <-- 0]
[i <-- 0]
*Tant que n <> 0 faire
s<--s+n
i<--i+1
écrire("entrer un entier :") , lire(n)
Fin Tant que
*écrire("la somme des entiers est : ", s)
*écrire("le nombre de termes introduits est : ", i)
*Fin calcul.
je n'ai pas aimé cette solution car j'ai eu recours à deux fois à l'instruction lire(n) donc ce n'est PAS la solution optimale. (temps d'exécution)
=======================================
sinon tu peux ajouter à la fin, dans l'affichage du résultat, une structure conditionnelle ou cas où le premier terme saisie est 0 afin d'éviter le message : "la somme des entiers est 0"; "le nombre de terme est 0",.... et d'afficher "il n'y a aucun entiers" ;)