Correction algo

Fermé
steeven - 4 janv. 2009 à 10:51
 steeven - 4 janv. 2009 à 13:18
Bonjour, voila je voulais savoire si il était possible que quelqu'un me corrige mon algo svp (regarder si il y a des fautes)

svp sa serais super sympas car je sais pas trop si c'est bon merci d'avance a ceux qui me répondrons

consigne

on veut traiter les notes des éléves d'une classe. le nombre d'éléves étant donné (donc la on fait un aff saisir)

chaque notes a le méme nombre de notes saisies (la sa doit étre un tant que inf)


écrire un algo qui donne

pour chaque éléves : sa moyenne sa notes max sa note min

la moy de tt les notes de la classe la note max la note min


début

afficher ("donnez nombre d'éléves")
saisir (nbre)
afficher ("donnez nombre de notes par éléves")
saisir (nbrnpe)

moyenneC = 0;
maxC=0;
minC=20
j = 1

tant que nbre >= nbre faire /*traitement général: éléves*/


tant que j <= nbrnpe faire /*traitement: notes éléves*/
moyenne <- 0
max <- 20
min <- 0
afficher ("saisire notes éléves")
saisir (notes)
moyenne = moyenne + n
si n > max alors max = n
sinon si n < min alors min = n

moyenne = moyenne/nbnotes

afficher("moyenne de l'élève e: moyenne" )
afficher("meilleure note de l'élève e: max" )
afficher("plus mauvaise note de l'élève e: min" )
fsi
fsi

moyenneClasse = moyenneCLasse + moyenne
si max > maxClasse alors maxClasse = max
sinon si min < minClasse alors minClasse = min
moyenneClasse = moyenneClasse/nbEleves
fsi
fsi

afficher("moyenne de la classe: moyenneClasse" );
afficher("meilleure note de la classe: maxClasse" );
afficher("plus mauvaise note de la classe: minClasse" );

fin

3 réponses

Bonjour

En première lecture :

Il y a des "tant que", je ne vois pas les "fin tant que" correspondants.
l'initialisation j=1 n'est pas au bon endroit
si les "fsi" sont des "fin si", évite de les semer au hasard...
"tant que nbre >= nbre faire " la condition est toujours vraie. nbre est TOUJOURS supérieur ou égal à nbre.
0
c'est mieux la ?? pour les si il sont pas indenter correctement



début

afficher ("donnez nombre d'éléves")
saisir (nbre)
afficher ("donnez nombre de notes par éléves")
saisir (nbrnpe)

moyenneC = 0;
maxC=0;
minC=20
k <- 1

tant que k >= nbre faire /*traitement général: éléves*/


tant que j <= nbrnpe faire /*traitement: notes éléves*/
j = 1
moyenne <- 0
max <- 20
min <- 0
afficher ("saisire notes éléves")
saisir (notes)
moyenne = moyenne + n
si n > max alors max = n
sinon si n < min alors min = n

moyenne = moyenne/nbnotes

afficher("moyenne de l'élève e: moyenne" )
afficher("meilleure note de l'élève e: max" )
afficher("plus mauvaise note de l'élève e: min" )
fsi
fsi
ftant

moyenneClasse = moyenneCLasse + moyenne
si max > maxClasse alors maxClasse = max
sinon si min < minClasse alors minClasse = min
moyenneClasse = moyenneClasse/nbEleves
fsi
fsi

afficher("moyenne de la classe: moyenneClasse" );
afficher("meilleure note de la classe: maxClasse" );
afficher("plus mauvaise note de la classe: minClasse" );

ftant
fin
0
Mets-toi à la place d'un ordinateur et exécute toi-même ton algorithme.
Ça ne demande aucune intelligence, il suffit de lire ce qui est écrit et le faire. Il faut être très obéissant et faire ne faire que ce qui est écrit, ni plus, ni moins.
Tu verras que par rapport à ta première version, tu n'as fait (presque) que déplacer les erreurs.
0
hey zut je vais réessayer mais a force de le regarder je ne sait même plus ce que je fait lol
0