| Knup | Nouveau membre | 5 messages postés |
| Posté le 05-10-2006 à 15:03:01
| 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
| 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; |
| |
|