MATH_Moyennes    [Statistiques]

Par Antoine Galmiche (Math4D v1)
Nouvelle recherche
Si (Faux)
   ` MATH_Moyennes [Antoine Galmiche 07/2002 et Teddy LINET 10/2002]
   ` ---------------------------------------------
   ` Rappels mathématiques :
   ` si n est le nombre d'éléments :
   ` Moyenne arithmétique : somme des éléments divisée par n
   ` mA = (1/n);Somme(x)
   ` Moyenne géométrique : produit des éléments à la racine nième
   ` mG = (Produit(x))exp(1/n)
   ` Moyenne harmonique : inverse de la somme des inverses des éléments
   ` somme elle-même divisée par n
   ` 1/mH = (1/n);Somme(1/x)
   ` On vérifie toujours : mA >= mG >= mH
   ` ---------------------------------------------
   ` MATH_Moyennes (->TableauValeurs; ->MoyArithm; ->MoyGéo; ->MoyHarm)
   ` TableauValeurs (Pointeur) Pointeur tableau réel des valeurs à analyser
   ` MoyArithm (Pointeur) Pointeur variable réelle MOYENNE ARITHMETIQUE
   ` MoyGéo (Pointeur) Pointeur variable réelle MOYENNE GEOMETRIQUE
   ` MoyHarm (Pointeur) Pointeur variable réelle MOYENNE HARMONIQUE
   ` ---------------------------------------------
   ` MATHERROR
   ` 0 -> Pas d'erreur
   ` -1 -> Tableau de taille nulle
   ` ---------------------------------------------
   ` EXEMPLES
   ` MATH_Moyennes (->tab;->mA;->mG;->mH)
   ` si tab contient : 2, 3, 4, 5
   ` mA = 3,5 ; mG = 3,309;;; ; mH = 3,11688;;;
   ` 
Fin de si 

C_ENTIER LONG(MATHERROR)
C_REEL($0)
$0:=0
MATHERROR:=0

C_POINTEUR($1;$2;$3;$4)
C_ENTIER LONG($i;$k)
C_REEL($mA;$mG;$mH)
$k:=Taille tableau($1->)
Si ($k>0)
 $mA:=0
 $mG:=1
 $mH:=0
 
 Boucle ($i;1;$k)
  $mA:=$mA+$1->{$i}
  $mG:=$mG*$1->{$i}
  $mH:=$mH+(1/$1->{$i})
 Fin de boucle 
 
 $2->:=$mA/$k
 $3->:=$mG^(1/$k)
 $4->:=$k/$mH
Sinon 
 MATHERROR:=-1
Fin de si