program ex;
uses wincrt;
type
tab=array [1..100] of integer;
var t:tab;
n,i,temp,p,deb,fin:integer;
procedure saisie(var n:integer);
begin
repeat
writeln('donner n');
readln(n)
until (n in [1..100]);
end;
procedure remplir(var t:tab;n:integer);
begin
for i:=1 to n do
begin
writeln('donner l"élement des tableau');
readln(t[i]);
end;
end;
procedure decaler(var t:tab; deb:integer;var fin:integer);
begin
fin:=deb;
while(fin>=1) and (t[fin]>temp) do
begin
t[fin+1]:=t[fin];
fin:=fin-1;
end;
end;
procedure tri_insertion(var t:tab;n,i:integer);
begin
if i<= n then
begin
if t[i-1]>t[i] then
begin
temp:=t[i] ;
decaler(t,i-1,p);
t[p+1]:=temp;
end;
tri_insertion(t,n,i+1);
end;
end;
procedure affiche(var t:tab;n:integer);
begin
for i:=1 to n do
writeln('les contenu des tableau: ',t[i]);
end;
begin
saisie(n);
remplir(t,n);
decaler(t,deb,fin);
tri_insertion(t,n,2);
affiche(t,n);
end.
uses wincrt;
type
tab=array [1..100] of integer;
var t:tab;
n,i,temp,p,deb,fin:integer;
procedure saisie(var n:integer);
begin
repeat
writeln('donner n');
readln(n)
until (n in [1..100]);
end;
procedure remplir(var t:tab;n:integer);
begin
for i:=1 to n do
begin
writeln('donner l"élement des tableau');
readln(t[i]);
end;
end;
procedure decaler(var t:tab; deb:integer;var fin:integer);
begin
fin:=deb;
while(fin>=1) and (t[fin]>temp) do
begin
t[fin+1]:=t[fin];
fin:=fin-1;
end;
end;
procedure tri_insertion(var t:tab;n,i:integer);
begin
if i<= n then
begin
if t[i-1]>t[i] then
begin
temp:=t[i] ;
decaler(t,i-1,p);
t[p+1]:=temp;
end;
tri_insertion(t,n,i+1);
end;
end;
procedure affiche(var t:tab;n:integer);
begin
for i:=1 to n do
writeln('les contenu des tableau: ',t[i]);
end;
begin
saisie(n);
remplir(t,n);
decaler(t,deb,fin);
tri_insertion(t,n,2);
affiche(t,n);
end.