Program TirArc1;
Type
Tab = Array [1..20] Of String;
Tabscore = Array [1..30] Of Integer;
Var
N : integer;
A : Tab;
//***************************************
Function Alpha (CH : String) : Boolean;
Var
i : integer;
b : boolean;
Begin
i := 0;
Repeat
i := i + 1;
b := Upcase(CH[i]) In ['A'..'Z',' '];
Until Not ( b=false ) Or (i=Length(CH));
Alpha := (b=true) And (Length(CH)<=30);
End;
//***************************************
Procedure Remplir (Var A : Tab ; N : integer);
Var
i : integer;
Begin
For i:=1 To N Do
Repeat
Write('Donner le nom du joueur N° ',i,':');
readln(A[i]);
Until Alpha(A[i]);
End;
//***************************************
Procedure Tri_a_bulle (Var A : Tab ; Var TS : Tabscore ; N : integer);
Var
i , Aux1 : integer;
Aux2 : String;
Echange : Boolean;
Begin
Repeat
Echange := False;
For i:=1 To N-1 Do
If TS[i] < TS[i+1] Then
Begin
Echange := True;
Aux1 := TS[i];
TS[i] := TS[i+1];
TS[i+1] := Aux1;
Aux2 := A[i];
A[i] := A[i+1];
A[i+1] := Aux2;
End;
Until Echange=False;
End;
//***************************************
Procedure Score (A : Tab ; N: integer);
Var
i , j , essai : integer;
TS : Tabscore;
Begin
For i:=1 To N Do
Begin
TS[i] := 0;
For j:=1 To 3 Do
Repeat
Write('Donner le résultat de l''essai N° ',j,' du joueur N° ',i,' : ');
readln(essai);
Until essai In [1..10];
TS[i] := TS[i] + essai;
End;
Tri_a_bulle(A,TS,N);
For i:=1 To N Do
writeln(A[i],' avec un score de ',TS[i]);
End;
//***************************************
Begin
Repeat
Write ('Donner le nombre de joueurs : ');
readln (N);
Until N In [2..20];
Remplir (A,N);
Score (A,N);
End.
Inscription à :
Publier les commentaires (Atom)