Program S15 ;
Type 
    tab = Array[1..26] Of string;
Var 
    TN,TC,TG : tab;
    n : Integer;
//********************************
Procedure afficher(TN,TC:tab;n:integer);
Var 
    i : integer;
Begin
    For i:=1 To n Do
        writeln(TN[i],'   ',TC[i]);
End;
Function Verif(ch:String;L:integer) : boolean;
Var 
    i : integer;
    b : boolean;
Begin
    i := 0;
    Repeat
        i := i+1;
        b := ch[i] In ['A'..'Z','a'..'z'] ;
    Until (Not b) Or (i=length(ch));
    verif := b And (length(ch)<=L);
End;
//********************************
Procedure saisies(Var TN,TG:tab;Var n:integer);
Var 
    i : integer;
Begin
    Repeat
        write('Donner le nombre de participants :');
        readln(N);
    Until (N In [5..26]);
    For i:=1 To n Do
        Begin
            Repeat
                write('Donner le nom du participant :');
                readln(TN[i]);
            Until (Verif ( TN[i], 15));
            Repeat
                write('Donner le nom du gouvernorat :');
                readln(TG[i]);
            Until ( Verif ( TG[i], 10));
        End;
End;
//********************************
Function nb_occ(T:Tab;n:integer) : integer;
Var 
    i,nb : integer;
Begin
    nb := 0;
    For i:=1 To n Do
        If T[n]=T[i] Then
            nb := nb+1;
    nb_occ := nb;
End;
//********************************
Procedure Generer (TG:Tab;Var TC:Tab; N:integer);
Var 
    nb,i : integer;
    x : string;
Begin
    For i:=1 To n Do
        Begin
            nb := nb_occ(TG,i);
            str(nb,x);
            If length(x)<>2 Then
                x := '0'+x;
            TC[i] := copy(TG[i],1,3)+x;
        End;
End;
//********************************
Begin
    saisies(TN,TG,N);
    Generer(TG,TC,N);
    afficher(TN,TC,N);
End.
Inscription à :
Publier les commentaires (Atom)