Problème D'Algorithme. (2)

Fermé
chyrla Messages postés 179 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 29 janvier 2016 - 13 févr. 2012 à 20:00
ccm81 Messages postés 10895 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 3 octobre 2024 - 20 févr. 2012 à 22:05
Bonjour / bonsoir à tous.

Précédemment j'avais fait appel à vous pour m'aider à résoudre un problème, seulement, j'ai de nouveau un problème. Voici l'exercice :

On nous donne un algorithme, c'est un algorithme avec liste. Le voici :



VARIABLES
n EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
Val EST_DU_TYPE LISTE
Eff EST_DU_TYPE LISTE
Somme EST_DU_TYPE NOMBRE
EffTotal EST_DU_TYPE NOMBRE
Moy EST_DU_TYPE NOMBRE
k EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE n
POUR i ALLANT_DE 1 A n
DEBUT_POUR
AFFICHER "Le "
AFFICHER i
AFFICHER "ème couple est : ("
LIRE Val[i]
AFFICHER Val[i]
AFFICHER " ; "
LIRE Eff[i]
AFFICHER Eff[i]
AFFICHER* ")"
FIN_POUR
Somme PREND_LA_VALEUR 0
EffTotal PREND_LA_VALEUR 0
POUR k ALLANT_DE 1 A n
DEBUT_POUR
Somme PREND_LA_VALEUR Somme+Val[k]*Eff[k]
EffTotal PREND_LA_VALEUR EffTotal+Eff[k]
FIN_POUR
Moy PREND_LA_VALEUR Somme/EffTotal
AFFICHER Moy
FIN_ALGORITHME




Il donne la moyenne en fonction des données que vous avez renseignées.

n est le nombre de couple
val[i] est la valeur du premier couple (et des suivants)
Eff[i] est l'effectif du premier couple (et des suivants)

Le but de l'exercice est de modifier l'algorithme pour qu'il nous donne à la fin, en plus de la moyenne, La variance (ce que je n'arrive pas) et l'écart type (qu'on ne peut avoir sans la variance).

La valeur de la variance étant égale à :

(n1 * (x1 - X)² + n2 * (x2-X)² ... n15 * (x15-X)²) / N

La dedans, n1 n2 et n15 sont les effectifs, x1 x2 x15 sont les valeurs, X est la moyenne et N l'effectif total.

Ce qui donne littéralement : effectif * (valeur - moyenne)² / effectif total.
(varie selon le nombres de couples. 15 couples, jusqu'à n et 15, 48 couples, jusqu'à x et n 48 ...)

Pour ce qui est de l'écart type, c'est la Racine carré de la variance, tout bête.

Voici mon algorithme après modification, qui ne marche pas bien sûr, sinon je ne posterais pas.




VARIABLES
n EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
Val EST_DU_TYPE LISTE
Eff EST_DU_TYPE LISTE
Somme EST_DU_TYPE NOMBRE
EffTotal EST_DU_TYPE NOMBRE
Moy EST_DU_TYPE NOMBRE
k EST_DU_TYPE NOMBRE
Variance EST_DU_TYPE NOMBRE
Ecart EST_DU_TYPE NOMBRE
Variance_1 EST_DU_TYPE NOMBRE
Variance_2 EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE n
Variance_2 PREND_LA_VALEUR 0
Variance PREND_LA_VALEUR 0
Variance_1 PREND_LA_VALEUR 0
Ecart PREND_LA_VALEUR 0
POUR i ALLANT_DE 1 A n
DEBUT_POUR
AFFICHER "Le "
AFFICHER i
AFFICHER "ème couple est : ("
LIRE Val[i]
AFFICHER Val[i]
AFFICHER " ; "
LIRE Eff[i]
AFFICHER Eff[i]
AFFICHER* ")"
Variance_1 PREND_LA_VALEUR Eff[i]*(Val[i]*Val[i])
FIN_POUR
Somme PREND_LA_VALEUR 0
EffTotal PREND_LA_VALEUR 0
POUR k ALLANT_DE 1 A n
DEBUT_POUR
Somme PREND_LA_VALEUR Somme+Val[k]*Eff[k]
EffTotal PREND_LA_VALEUR EffTotal+Eff[k]
FIN_POUR
Variance_2 PREND_LA_VALEUR Variance_1-(Moy*Moy)
Variance PREND_LA_VALEUR Variance_2/EffTotal
Ecart PREND_LA_VALEUR sqrt(Variance_1)
Moy PREND_LA_VALEUR Somme/EffTotal
AFFICHER "La moyenne est égale à : "
AFFICHER* Moy
AFFICHER "La variance est égale à : "
AFFICHER* Variance
AFFICHER "L'écart type est égal à : "
AFFICHER* Ecart
FIN_ALGORITHME

Je pensais que comme cela ça marcherais, mais j'ai du changer quinze mille fois la chose, je ne trouve pas. Il me reste 10 jours, en comptant aujourd'hui, c'est à dire jusqu'au 23, pour rendre mon DM, plus 2 autres algorithme. (Le 24 étant les vacances en zone B).

Merci d'avance, je continue les recherches de mon côté.

Bonne Journée / Soirée à vous.
A voir également:

2 réponses

chyrla Messages postés 179 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 29 janvier 2016 6
20 févr. 2012 à 20:19
Up du sujet ... Help, plus que 3 jours !
0
ccm81 Messages postés 10895 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 3 octobre 2024 2 421
Modifié par ccm81 le 20/02/2012 à 22:07
bonsoir

RQ1. Variance_1 est un totalisateur, initialisé à 0 au début du programme et doit être mis à jour dans l'une des deux boucles POUR (la 2° est plus logique, la 1° étant consacrée à l'entrée des données) comme SOMME et EffTotal
RQ2. La variance étant fonction de la moyenne, elle doit donc se calculer après celui de la moyenne
RQ3. tu n'as pas besoin de 3 variables variance ...

DEBUT_POUR
Somme PREND_LA_VALEUR Somme+Val[k]*Eff[k]
EffTotal PREND_LA_VALEUR EffTotal+Eff[k]
FIN_POUR
devient
DEBUT_POUR
Somme PREND_LA_VALEUR Somme+Val[k]*Eff[k]
EffTotal PREND_LA_VALEUR EffTotal+Eff[k]
VARIANCE_1 PREND LA VALEUR VARIANCE_1+ ....
FIN_POUR

puis calcul de la moyenne
puis calcul de la variance
puis calcul de l'écart type

bon courage
0