Program S6;
Type
tab = array[1..12] Of string;
Var
t : tab;
p : integer;
//**************************************
Function verif(ch:String) : boolean;
Var
ok : boolean;
i : integer;
Begin
ok := true;
i := 1;
While (ok) And(i<=length(ch)) Do
If (ch[i] In ['A'..'Z']) Then
i := i+1
Else
ok := false;
verif := ok;
End;
//**************************************
Procedure affiche(t:tab);
Var
i : integer;
Begin
For i:=1 To 12 Do
Begin
write(t[i]:7);
If (i Mod 3=0) Then
writeln;
End;
End;
//**************************************
Procedure tri(Var t:tab; p:integer);
Var
i,j : integer;
x : string;
Begin
For i:=1 To 11 Do
For j:=(i+1) To 12 Do
If ( T[j][p]<t[i][p]) Then
Begin
x := t[i];
t[i] := t[j];
t[j] := x;
End
Else
If ( T[j][p]=t[i][p]) Then
If (t[j]<t[i]) Then
Begin
x := t[i];
t[i] := t[j];
t[j] := x;
End;
End;
//**************************************
Procedure saisie(Var t:tab);
Var
i,j : integer;
Begin
For i:= 1 To 12 Do
Repeat
write('T[',i,']: ');
readln(t[i]);
For j:=1 To length(t[i]) Do
t[i][j] := upcase(t[i][j]);
Until (length(t[i])>=3)And(verif(t[i]));
End;
//**************************************
Begin
saisie(t);
p := random(3)+1;
writeln('-------------p = ',p);
writeln;
writeln('----------- AVANT TRI -------------');
writeln;
affiche(t);
tri(t,p);
writeln;
writeln('----------- APRES TRI -------------');
writeln;
affiche(t);
End.
Inscription à :
Publier les commentaires (Atom)