Program achat;
Type
Tab = array[1..100] Of string;
Var
n,Nbp,i,j : Integer;
Nomp : String;
T : tab;
//***********************************************
Function verif(ch:String) : Boolean;
Var
i : Integer;
b : Boolean;
Begin
i := 1;
Repeat
i := i+1;
If (ch[i] In['a'..'z','A'..'Z','0'..'9',' ']) Then
b := true
Else
b := false;
Until Not b Or (i=length(ch));
verif := b;
End ;
//***********************************************
Function Existe(T:tab;n:integer;x:String) : 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);
Existe := B;
End ;
//***********************************************
Function nb_distinct(T:Tab;Nbp:integer) : integer;
Var
nb,i : integer;
Begin
nb := 1;
For i:=2 To Nbp Do
If Not Existe(T,i-1,T[i]) Then
nb := nb+1;
nb_distinct := nb;
End;
//***********************************************
Procedure Remplir(Var T:tab;N:Integer; Var Nbp:integer);
Var
i : integer;
ch : string;
Begin
Nbp := 0;
For i:= 1 To n Do
Begin
Repeat
write('Donner le nom du produit :');
Readln(Nomp);
Until (verif(Nomp))And (length(Nomp)<=20);
If (Pos('ECOLO',Nomp)<> 0) Then
Begin
Nbp := Nbp+1;
T[Nbp] := nomp;
End;
End;
End;
//***********************************************
Begin
Repeat
Write('Donner le nombre des produits achets :');
Readln(N);
Until n In [5..100];
Remplir(T,N,Nbp);
If Nbp=0 Then
writeln('Pour plus d''économie, achetez les produits de la marque ECOLO')
Else
Begin
writeln('Merci pour l"achat de ',Nbp,' produit(s) de la marque ECOLO');
If nb_distinct(T,Nbp)>5 Then
writeln('Vous etes un client fidèle pour la marque ECOLO! '
+'Aimerez-vous devenir ambassadeur de la marque?');
End;
End.
Inscription à :
Publier les commentaires (Atom)