Program triinsertion ; uses wincrt ; type tab=array[1..20] of integer ; var n,x,i : integer ; t: tab ; procedure saisie (var n : integer ;var t:tab); var i : integer ; Begin repeat writeln('saisir la taille du tableau :'); readln(n); until n in [5..20] ; For i:= 1 to n do begin repeat writeln('Saisir l''element ',i); readln(t[i]); until t[i] > 0 ; end; End; function position (t:tab ; i : integer ): integer ; var j : integer ; Begin j:=0 ; repeat j:=j+1 ; until t[j] >= t[i] ; position:=j ; End; procedure tri(var t : tab ; n:integer ); var int,i,j,p : integer ; Begin for i:=2 to n do begin p:=position(t,i); if p <> i then begin int:=t[i] ; for j :=i-1 downto p do begin t[j+1]:=t[j] ; end; t[p]:=int ; end; end; End; procedure affiche (var t :tab ; n : integer ); var i:integer ; begin for i:= 1 to n-1 do begin write(t[i]); write('|'); end; write(t[n]); end; begin saisie(n,t); x:=position(t,i); tri(t,n); affiche(t,n); end.