Program S4;
Type
tab = array[1..100] Of char;
Var
t : tab;
n,D,M,deb,fin,bloc : integer;
//************************************
Procedure saisie(Var n,D,M:integer);
Begin
write('Veuillez saisir le nombre d''élement du tableau: ');
readln(n);
write('Veuillez saisir l''entier D: ');
readln(D);
M := n Div D;
writeln('M:=' ,M);
End;
//************************************
Procedure remplire(Var tab;Var n,D,M:integer);
Var
i : integer;
Begin
Repeat
saisie(n,D,M);
Until (n In [6..100]) And (n Mod D =0) And (D>1) ;
For i:=1 To n Do
Begin
Repeat
write('donner l''element n°',i,': ');
readln(t[i]);
Until (t[i] In ['a'..'z']);
End;
End;
//************************************
Procedure affichage(t:tab;n:integer);
Var
i : integer;
Begin
For i:=1 To n Do
writeln('t[',i,']= ',t[i]);
End;
//************************************
Procedure permuter(Var x,y:char);
Var
aux : char;
Begin
aux := x;
x := y;
y := aux;
End;
//************************************
Procedure trie(Var v:tab;deb,fin:integer);
Var
pos,j,i,min,bloc : integer;
Begin
For i:=deb To fin-1 Do
Begin
min := ord(v[i]);
For j:=i+1 To fin Do
Begin
If (ord(v[j])<min) Then
Begin
min := ord(v[j]);
permuter(v[j],v[i]);
End;
End;
End;
End;
//************************************
Begin
remplire(t,n,D,M);
affichage(t,n);
bloc := 1;
While bloc<=M Do
Begin
deb := (bloc-1)*D+1;
fin := D*bloc;
trie(t,deb,fin);
bloc := bloc+1;
End;
affichage(t,n);
End.
Inscription à :
Publier les commentaires (Atom)