Program BONNUS;
Type
    tab = Array[1..100] Of string;
    tab2 = Array[1..100] Of integer;
Var
    T: tab;
    C:Tab2;
    n,i: Integer;
//*********************************************
Function valide(ch:string): Boolean;
Var 
    i: Integer;
    b: Boolean;
Begin
    i:=1;
    Repeat 
        i:=i+1;
        if (ch[i] In['0'..'9']) then
            b:=true
        else
            b:=false;
    until not b or (i=length(ch));
    valide := b and (Length(ch)=8)And (ch[1]='6') and (ch[2] in ['5'..'6']);
End;
//*********************************************
function verif(x:string;n:Integer;T :tab): Boolean;
Var 
    i: Integer;
    b:boolean;
Begin
    i := 0;
    Repeat
        i:= i+1;
        if x=t[i] then
            b:=true
        else
            b:=false;
    Until (b) or (i=n);
    verif := b;
End;
//*********************************************
function somme(ch:string):integer;
var 
    i,S:integer;
begin
    S := 0;
    For i:=3 To Length(ch) Do
        S:=S+ord(ch[i])-48;
   somme:=S;
end;
//*********************************************
Procedure affiche (t:tab;c:tab2;n:Integer) ;
Var 
    moy: Real;
    i,nb: Integer;
Begin
    moy := 0;
    for i:=1 To n Do
        moy := moy+c[i]/n;
    writeln('le montant moyen des consommations est : ',moy:2:2);
    nb:=0;
    For i:=1 To n Do
        If c[i]>=moy then
        begin
            Writeln('le numéro ',t[i],' a gagné ',20*somme(T[i]),' DT');
            nb:=nb+1;
        end;
    If nb<>0 then
        Writeln('il n''y a pas de gagnant');
End;
//*********************************************
Begin
    Repeat
        Writeln('donner le nombre de clients');
        Readln(n);
    Until n In [10..100];
    Repeat
        Writeln('donner le numéro de téléphone du premier client' );
        Readln(t[1]) ;
    Until valide (t[1]);
    Repeat
        Writeln('donner le montant consommé par le premier client' );
        Readln(c[1]) ;
    Until (c[1]>=0);
    For i:=2 To n Do
    Begin
        Repeat
            writeln('donner le numéro de téléphone du client n°' ,i,':');
            readln(t[i]) ;
        Until valide (t[i]) And verif(t[i],i-1,t) ;
        repeat
            Writeln('donner le montant consommé par le client n°',i,':');
            Readln(c[i]);
        until (c[i]>=0);
    end;
    affiche(t,c,n);
End.
Inscription à :
Publier les commentaires (Atom)