Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme: Language naturel

Posté par
kurtangle
01-05-11 à 13:22

Bonjour à tous.
Je suis bloqué sur deux exercices d'algorithme, qui me paraissent simple pourtant. Mais, n'ayant jamais étudié les algorithmes, j'ai un bloquage sur le traitement. Voici l'énoncé :

Elaborer un algorithme qui permette de saisir des notes, puis qui affiche le nombre de notes entrées, le total de ces notes, et la moyenne coresspondante.

Indications :

- On ne connait pas le nombre de notes à saisir
- Chaque note est suivie de la touche entrée
- Les notes sont des réels positifs (ou nuls)
- Pour signaler que la saisie est terminée, on rentre un nombre négatif.

Rédiger un algorithme qui permet d'effectuer cette tâche EN LANGUAGE NATUREL.

Ce qui me pose problème.
J'ai trouvé mes variables : T total des notes, X nombre de notes, M la moyenne , correspondant à T/X.

Mais je n'arrive pas à rédiger en language naturel.
Les seuls choses que je serais capable de marque, seraient:

Début
[...]
Calculer T/X et le placer dans la variable M
Afficher la valeur de M
Fin.


Quelqu'un peut m'aider à compléter? Merci!

Posté par
jtorresm
re : Algorithme: Language naturel 01-05-11 à 13:30

Salut, Kurt!

Il te faudra comme variables

T total des notes, X nombre de notes, M la moyenne , correspondant à T/X (bien!!!)

Mais en plus:

N = la note d'un individu car il faudra lire chaque note individuelle jusqu'à la fin de la liste de notes. Comme tu connais pas le nombre de notes en avance, le cycle de ton algorithme dependra de l'arrivée de la fin de données d'entrée.

Supposons que les notes sont soit dans un fichier à lire de façon sequentielle, soit tapées par un operateur.

Variables:

T total des notes, X nombre de notes, M la moyenne , correspondant à T/X, N note d'un individu

T = 0
X = 0
M = 0
N = 0

TANDIS QUE LA FIN DE NOTES N EST PAS ENCORE ARRIVEE FAIRE
   LIRE N
   AJOUTER 1 à X
   AJOUTER N à T
FIN DE CYCLE

M = T / X

Imprimer T, X, M

FIN

Johnny

Posté par
kurtangle
re : Algorithme: Language naturel 01-05-11 à 13:39

Bonjour, Jtorresm.
Tout d'abord, merci de ton aide.
J'ai une feuille d'instructions accompagné de l'exercice, qui me montre différents algorithmes.
Si j'ai bien compris, ma séquence correspond à : "Boucle tant que".
Donc, si j'ai bien compris ce que vous avez écrit, et en me servant de la feuille, voilà ce que j'ai mis :

Variables:


T total des notes, X nombre de notes, M la moyenne ,  N note d'un individu.

Début
Initialiser X à 0
Initialiser T à 0
Tant que N > ou = 0
Lire N
Ajouter 1 à X
Ajouter N à T
Fin du Tant que

M = T/X
Afficher M.


Est-ce juste?
Merci encore de votre aide.

Posté par
jtorresm
re : Algorithme: Language naturel 01-05-11 à 13:49

Il me semble tout à fait correcte!

Bravo!

Johnny

Posté par
kurtangle
re : Algorithme: Language naturel 01-05-11 à 13:58

Merci de ton aide.
Cependant, j'ai un léger problème sur la suite, que je pensais faire simplement.

Enonce: Modifier l'algorithme afin de faire afficher la plus mauvaise note puis la moyenne obtenue si cette note est retirée.

Voici ce que j'écris:

Variables:


T total des notes, X nombre de notes, M la moyenne ,  N note d'un individu, Y la plus mauvaise note.

Début
Initialiser X à 0
Initialiser T à 0
Tant que N > ou = 0
Lire N
Ajouter 1 à X
Ajouter N à T
Fin du Tant que
Mettre le plus petit N dans Y

Afficher Y
Enlever 1 à X
Enlever Y à T

M = T/X
Afficher M.


J'ai un doute sur la phrase en gras.. Ne faudrait t-il pas mettre "Mettre le N le plus proche de 0 dans Y"?
Et aussi, faut il initialiser X à 0, puis enlever 1, ou initialiser X à -1?

Ce seras tout pour cet exercice. Je peut vous contacter par mail si j'ai d'autres soucis pour les suivants?
Merci encore.

Posté par
jtorresm
re : Algorithme: Language naturel 01-05-11 à 14:12


Par rapport à ta question: rappelle toi qu'il faut dire à l'ordinateur tout ce qu'il faut faire.

Plusieurs remarques:

1. Dans l'algorithme que t'as écrit, théoriquement il faut que N soit aussi initialisé à 0 de façon que le boucle puisse commencer.

2. Pour Y, le cycle est se complique un peu:

La première note qui entre dans le boucle est, par définition, la plus petite (et la plus haute, aussi, car c'est la toute première).

A partir de la deuxième note, il faut comparer la note stockée en Y avec la note N qui vient d'entrer. Si Y < N, la nouvelle note N est plus grande, et Y reste la plus mauvaise. Par contre, si Y > N, cela veut dire que la nouvelle note N est plus basse, donc Y devrait prendre cette nouvelle valeur. Cette vérification doit être fait à l'interieur du boucle jusqu'à la fin. Le morceau à ajouter serait quelque chose comme celle-ci:

Si x=1 alors faire Y = N

Sinon
   si Y>N, faire Y=N
   Fin Si

Fin Si

A la sortie du cycle, tes calculs sont correctes!    

Bien sûr que tu peux me contacter par mail si t'as des doutes pour les suivants et dans l'avenir!

bon courage!

Johnny

Posté par
kurtangle
re : Algorithme: Language naturel 01-05-11 à 14:20

Donc il faut jsute ajouter une boucle si-sinon-alors.
Merci encore de ton aide. Je te contacte par e-mail si j'ai encore des problèmes.



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 1675 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 !