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)