Forum Info
Administrateurs : Knup
 
 Forum Info  Index  Cours 

 Ada TP02

Nouveau sujet   Répondre
 
Bas de pagePages : 1  
Knup
Nouveau membre
5 messages postés
   Posté le 05-10-2006 à 15:03:01   Voir le profil de Knup (Offline)   Répondre à ce message   Envoyer un message privé à Knup   

Compet 4 :

with P_Esiut; use P_Esiut;

procedure Compet4 is -- saisie des temps de 3 juges et affichage du minimum

------------------------------------------------------------------------------------------

subtype T_Temps is Float range 0.00..20.00; -- un T_temps est un réel compris entre 0 et 20

------------------------------------------------------------------------------------------

function Min (X,Y : in T_Temps) return T_Temps is
-- spécif {} => {résultat = minimum de X et Y }
begin
if X<Y then
return(X);
else
return(Y);
end if;
end Min;

------------------------------------------------------------------------------------------------

function Max (X,Y : in T_Temps) return T_Temps is

-- spécif {} => {résultat = maximum de X et Y }
begin
if X>Y then
return(X);
else
return(Y);
end if;
end Max;

------------------------------------------------------------------------------------------

function Saisie ( Nojuge : in Integer) return T_Temps is
-- spécif { Nojuge contient un numéro de juge valide } =>
-- {un message a été affiché pour demander à l'utilisateur de taper le temps du juge numéro NoJuge,
-- Temps contient le temps qui a été tapé au clavier }
Temps: float;
begin
Ecrire("Entrez le temps du juge numero"&Integer'image(Nojuge)&" :");
Lire(Temps);
while Temps<T_Temps'First or Temps>T_Temps'Last loop
Ecrire("Le temps doit etre entre 0.00 et 2 "&Integer'image(Nojuge)&" :");
Lire(Temps);
end loop;
Temps:=T_Temps(Temps);
return Temps;
end Saisie;

------------------------------------------------------------------------------------------

Juge : Positive;
T,TempsMin,TempsMax : T_Temps;
i,X : integer;
Moy : float;


begin
TempsMin:=20.00;
TempsMax:=0.00;
Moy:=0.00;
Ecrire("Entrez le nombre de juges: ");
Lire(Juge);a_la_ligne;

while Juge<3 loop
Ecrire("Il doit y avoir minimum 3 juges ");
Lire(Juge);a_la_ligne;
end loop;
i:=1;
X:=0;

while Juge>=i loop
T:=Saisie(i);
if T>16.00 then
X:=X+1;
end if
TempsMin:=Min(TempsMin,T); -- calcul du minimum
TempsMax:=Max(TempsMax,T); -- calcul du maximum
Moy:=Moy+T;
i:=i+1;
if X>1 then
i:=juge+1;
end if;
end loop;

Moy:=Moy-TempsMin-TempsMax;
Moy:=Moy/float(Juge-2);
if X>1 then
ecrire("Vous etes éliminé!!!!");
else
Ecrire("Le temps minimum est : "); Ecrire(TempsMin); A_La_Ligne;
Ecrire("Le temps maximum est : "); Ecrire(TempsMax); A_La_Ligne;
Ecrire("Le temps moyen avec ablation des extremums : "); Ecrire(Moy); A_La_Ligne;
end if;
end Compet4;

Message édité le 05-10-2006 à 15:12:11 par Knup
Knup
Nouveau membre
5 messages postés
   Posté le 05-10-2006 à 15:11:38   Voir le profil de Knup (Offline)   Répondre à ce message   Envoyer un message privé à Knup   

Compet5 (Optionel, Compet4 avec exceptions) :



with P_Esiut; use P_Esiut;

procedure Compet4 is -- saisie des temps de 3 juges et affichage du minimum

------------------------------------------------------------------------------------------

subtype T_Temps is Float range 0.00..20.00; -- un T_temps est un réel compris entre 0 et 20

------------------------------------------------------------------------------------------

function Min (X,Y : in T_Temps) return T_Temps is
-- spécif {} => {résultat = minimum de X et Y }
begin
if X<Y then
return(X);
else
return(Y);
end if;
end Min;

------------------------------------------------------------------------------------------------

function Max (X,Y : in T_Temps) return T_Temps is

-- spécif {} => {résultat = maximum de X et Y }
begin
if X>Y then
return(X);
else
return(Y);
end if;
end Max;

------------------------------------------------------------------------------------------

function Saisie ( Nojuge : in Integer) return T_Temps is
-- spécif { Nojuge contient un numéro de juge valide } =>
-- {un message a été affiché pour demander à l'utilisateur de taper le temps du juge numéro NoJuge,
-- Temps contient le temps qui a été tapé au clavier }
Temps: T_temps;
Ok: boolean := false;
begin
while not Ok loop
Ecrire("Entrez le temps du juge numero"&Integer'image(Nojuge)&" :");
begin
Lire(Temps);
Ok:=true;
exception
when Constraint_error => Ecrire_Ligne("Le temps doit etre entre 0.00 et 20.00");
end;
end loop;

return Temps;
end Saisie;

------------------------------------------------------------------------------------------

Juge : Positive;
T,TempsMin,TempsMax : T_Temps;
i,X : integer;
Moy : float;


begin
TempsMin:=20.00;
TempsMax:=0.00;
Moy:=0.00;
Ecrire("Entrez le nombre de juges: ");
Lire(Juge);a_la_ligne;

while Juge<3 loop
Ecrire("Il doit y avoir minimum 3 juges ");
Lire(Juge);a_la_ligne;
end loop;
i:=1;
X:=0;

while Juge>=i loop
T:=Saisie(i);
if T>16.00 then
X:=X+1;
end if;
TempsMin:=Min(TempsMin,T); -- calcul du minimum
TempsMax:=Max(TempsMax,T); -- calcul du maximum
Moy:=Moy+T;
i:=i+1;
if X>1 then
i:=juge+1;
end if;
end loop;

Moy:=Moy-TempsMin-TempsMax;
Moy:=Moy/float(Juge-2);
if X>1 then
ecrire("Vous etes éliminé!!!!");
else
Ecrire("Le temps minimum est : "); Ecrire(TempsMin); A_La_Ligne;
Ecrire("Le temps maximum est : "); Ecrire(TempsMax); A_La_Ligne;
Ecrire("Le temps moyen avec ablation des extremums : "); Ecrire(Moy); A_La_Ligne;
end if;


end Compet4;
Haut de pagePages : 1  
 
 Forum Info  Index  Cours  Ada TP02Nouveau sujet   Répondre
 
Identification rapide :         
 
Divers
Imprimer ce sujet
Aller à :   
 
créer forum