Yossep
VIP   
Messages: 10
Inscrit(e) le: 31/05/2020
Déconnecté(e)
|
Publié le 04/06/2020 à 22:42 |
RE : Exo 8: Moyenne et Variance
Bonjour a tous Ada Programmeurs. J'espère que je ne suis pas seul sur cette planète.
Exercice sur le calcul de la moyenne et la variance d'un tableau dont les éléments sont initialisés aléatoirement.
Code:
Economies.ads
quote:
With Ada.Text_IO, Ada.Integer_Text_IO, Ada.Numerics.Discrete_Random;
package Economies is
type Mes_Entiers is new integer range 1..10;
type Tableau is array(1..50) of Mes_Entiers;
package ES_Mes_Entiers is new Ada.Text_IO.Integer_IO(Mes_Entiers);
package Random_Mes_Entiers is new Ada.Numerics.Discrete_Random(Mes_Entiers);
Use ES_Mes_Entiers, Random_Mes_Entiers;
procedure MoyenneEtVariance;
end Economies;
|
Economies.adb
quote:
With Ada.Text_IO, Ada.Float_Text_IO;
Use Ada.Text_IO,Ada.Float_Text_IO;
package body Economies is
procedure MoyenneEtVariance is
Mon_Tab : Tableau;
G : Generator;
Moy, Variance : Float := 0.0;
begin
--initialisation de Mon_tab
New_Line(3);
for Short1 in 1..Mon_Tab'Length loop
Reset(G);
Mon_Tab(Short1) := Random(G);
Put(Mon_Tab(Short1), 1);New_Line;
end loop;
--Calcul de la Moyenne et la variance
for Short2 in 1..Mon_Tab'Length loop
Moy := Moy + Float(Mon_Tab(Short2));
Variance := Variance + ( (Float(Mon_Tab(Short2)) - Moy) * ((Float(Mon_Tab(Short2)) - Moy)) );
end loop;
Moy := Moy / Float(Mon_Tab'Length);
Variance := Variance / Float(Mon_Tab'Length - 1);
New_Line;
Put("Moyenne =" ;Put(Moy, Exp => 0, Fore => 3, Aft => 3);New_Line(2);
Put("Variance = " ;Put(Variance, Exp => 0, Fore => 3, Aft => 3);New_Line(2);
end MoyenneEtVariance;
|
Programme principal
main.adb
quote:
With Economies;
Use Economies;
procedure Main is
begin
MoyenneEtVariance;
end Main;
|
 |
ftbass
|
Publié le 09/03/2004 à 22:01 |
Exo 8: Moyenne et Variance
Si je me suis pas trompé sur la formule de la variance...
code: with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Ada.float_Text_IO; use Ada.float_Text_IO;
procedure MoyenneEtVariance is
Long1 : constant := 3;
Tab1 : array(1 .. Long1) of integer := (1, 2, 3);
Moyenne, Variance : float := 0.0;
begin
for i in 1..long1 loop
moyenne := moyenne + float(tab1(i));
Variance := variance + ((float(tab1(i))-moyenne) * ((float(tab1(i))-moyenne)));
end loop;
moyenne := moyenne / float(long1);
Variance := variance / float(long1 - 1);
put("Moyenne = ");
put(moyenne);
new_line;
put("Variance = ");
put(variance);
end MoyenneEtVariance; |
[Edité le 16/03/2004 à 09:57 par ftbass] |
|