Program S8;
Type
tab = array[1..20] Of integer;
Var
T : tab;
n : integer;
//*************************************
Procedure saisie(Var T:tab; Var n:integer);
Var
i : integer;
Begin
Repeat
writeln ('Donner un entier ;');
readln (n) ;
Until n In [5..20] ;
For i:=1 To n Do
Begin
write('Donner l"élément n° ',i,': ');
readln(T[i]);
End;
End ;
//*************************************
Function nombre(T:tab;n,x:integer) : integer;
Var
i,s : integer;
Begin
s := 0;
For i:=1 To n Do
If x>=T[i] Then
s := s+1;
nombre := s;
End;
//*************************************
Procedure segmenter(Var T:tab;n:integer);
Var
i,j,temp,p,nb : integer;
Begin
p := nombre(T,n,T[1]);
i := 2;
nb := 0;
Repeat
If T[i]>T[1] Then
Begin
temp := T[i];
For j:=i To n-1 Do
T[j] := T[j+1];
T[n] := temp;
nb := nb+1;
End
Else
i := i+1;
Until (i=n-nb+1);
temp := T[1];
For i:=1 To p-1 Do
T[i] := T[i+1];
T[p] := temp;
End;
//*************************************
Procedure affichage(t:tab;n:integer);
Var
i : integer;
Begin
For i:=1 To n Do
writeln('T[',i,']=', T[i]);
End;
//*************************************
Begin
saisie(t,n);
segmenter(t,n);
affichage(t,n);
End.
Inscription à :
Publier les commentaires (Atom)