Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme Algobox

Posté par
JUHYGTFR
17-02-16 à 13:32

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

Posté par
J-P Posteur d'énigmes
re : Algorithme Algobox 17-02-16 à 13:45

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

Posté par
JUHYGTFR
re : Algorithme Algobox 17-02-16 à 15:22

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

Posté par
J-P Posteur d'énigmes
re : Algorithme Algobox 17-02-16 à 16:59

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.

Posté par
Glapion Moderateur
re : Algorithme Algobox 17-02-16 à 17:03

Pense aussi que tu peux directement coller le programme de J-P dans proglab (algobox en ligne) :

(et il marche parfaitement)

Posté par
JUHYGTFR
re : Algorithme Algobox 17-02-16 à 17:31

J'AI REUSSI !!! merci beaucoup il suffisait juste de mettre des ( ) à S/m ! merci merci merci

Posté par
JUHYGTFR
re : Algorithme Algobox 17-02-16 à 17:37

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.

Posté par
Glapion Moderateur
re : Algorithme Algobox 17-02-16 à 22:39

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

Posté par
JUHYGTFR
re : Algorithme Algobox 18-02-16 à 12:10

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 ?

Posté par
J-P Posteur d'énigmes
re : Algorithme Algobox 19-02-16 à 08:42

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)

Posté par
J-P Posteur d'énigmes
re : Algorithme Algobox 19-02-16 à 09:02

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 :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1730 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !