Bonjour ! J'ai un algorithme à faire sur algobox pour lundi mais le problème c'est que je n'arrive pas à le faire. Donc voila l'algo en question en langage naturel :
Variables : n, S, i, M
Entrée : Demander un entier non nul n
Traitement
S prend la valeur 0.
Pour i allant de 1 à n
Demander une valeur a
S prend la valeur S + a
FinPour
Calculer M = S /n
Sortir : Afficher M
Merci beaucoup
Il faut évidemment être familier avec Algobox...
Le reste est immédiat.
VARIABLES
S EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
a EST_DU_TYPE NOMBRE
M EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
S PREND_LA_VALEUR 0
LIRE n
POUR i ALLANT_DE 1 A n
DEBUT_POUR
LIRE a
S PREND_LA_VALEUR (S+a)
FIN_POUR
M PREND_LA_VALEUR S/n
AFFICHER "M = "
AFFICHER M
FIN_ALGORITHME
Bonjour ! merci de votre réponse
J'ai fait ce que vous avez dit, mais quand je teste l'algo, il est interrompu a cause de la ligne 15 où ils me disent qu'il y a une erreur de calcul à M PREND_LA_VALEUR S/n
C'est que tu as mal copié.
Cet algo se déroule sans problème.
-----
Tu peux d'ailleurs faire un "copier" de l'algo que j'ai écrit et le "coller" dans algobox ...
Si tu l'as recopié, il est probable que tu as oublié une ligne ou bien que tu l'as mal écrite.
Ppeut-être la ligne : M EST_DU_TYPE NOMBRE
Si tu l'as oubliée ou écrite avec un "m" au lieu de "M" par exemple, alors cela foire.
Par contre j'ai une autre question, je ne comprends pas ce que représente et à quoi sert la variable i. Pareil pour S, pourquoi on fait S prend la valeur S+a ? je sais que n représente le nombre de notes (effectif) et que a représente les notes, mais je n'en ai aucune idée pour i et S.
C'est sûr que si tu n'as rien compris de ce que faisait l'algorithme dont le rôle des variables, tu es mal barré pour comprendre la richesse des réponses de J-P
Je sais que l'algorithme calcule une moyenne, n est le nombre de notes et à représente une note, s'il y a n=5 alors il y a 5 boucles. Pourriez vous m'expliquer les variables i et S svp ?
POUR i ALLANT_DE 1 A n
DEBUT_POUR
LIRE a
S PREND_LA_VALEUR (S+a)
FIN_POUR
Cela signifie que les instructions se situant entre le "DEBUT_POUR" et le "FIN_POUR" vont être effectuées n fois.
Donc si on entre dans le "POUR i ALLANT_DE 1 A n " avec par exemple la variable n valant 3 ...
Cela signifie que les instructions:
LIRE a
S PREND_LA_VALEUR (S+a)
vont être effectuées 3 fois.
La variable i prend la valeur 1 (POUR i ALLANT_DE 1 A n) en entrant dans la boucle FOR
La boucle va se répéter n fois (POUR i ALLANT_DE 1 A n)
Et à chacune de ces répétitions, la variable i augmente automatiquement de 1
Donc au 1er passage, i vaut 1
au 2eme passage, i vaut 2
au 3eme passage i vaut 3
Et si on a entré n = 3, alors on sort de la boucle (avec i valant 3) et le programme exécute alors les instructions qui suivent le "FIN_POUR"
Remarque :
Dans ce programme on ne l'a pas fait, mais si on voulait on pourrait utiliser la variable i dans les instructions de la boucle (en tenant compte que cette valeur augmente de 1 à chacune des n boucles qui s'effectuent)
POUR i ALLANT_DE 1 A n
DEBUT_POUR
LIRE a
S PREND_LA_VALEUR (S+a)
FIN_POUR
La variable a entrée lors du 1er passage dans la boucle FOR représente la première cote. (supposons qu'on entre a = 6)
Comme S valait 0 avant d'entrer la 1ere fois dans la boucle, l'opération S PREND_LA_VALEUR (S+a) fera prendre à S la valeur 0 + 6 = 6
A la 2eme boucle, on entre dans la variable a, la 2eme cote (par exemple 8)
Comme S valait 6 en débutant cette 2eme boucle, l'opération S PREND_LA_VALEUR (S+a) fera prendre à S la valeur 6 + 8 = 14
A la 3eme boucle, on entre dans la variable a, la 3eme cote (par exemple 5)
Comme S valait 14 en débutant cette 3eme boucle, l'opération S PREND_LA_VALEUR (S+a) fera prendre à S la valeur 14 + 5 = 19
On voit donc que S représente la somme de toutes les cotes entrées lors des boucles.
Si par exemple n valait 3 (dont on voulait entrer n=3 cotes), alors dans l'exemple ci-dessus, on sort de la boucle (après 3 tours dans la boucle) avec S = 19 (qui est la somme des 3 cotes entrées 6+8+5)
------
L'instruction M PREND_LA_VALEUR S/n donne à M la valeur de la moyenne des cotes, dans l'exemple ci-dessus, on aurait donc M = S/n = 19/3 = 6.3333333
C'est bien la valeur moyenne des 3 cotes entrées.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :