Program triselection ; uses wincrt ; type tab=array [1..20] of integer ; var n,x,p : 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''élément',i) ; readln(t[i]) ; until (t[i] > 0) end; end; function pos_max(n : integer ;t :tab; p :integer):integer ; var max,i : integer ; Begin max:=p ; for i:= p to n do begin if t[i]>t[max] then max:=i ; end; pos_max:=max ; End; procedure trie (n : integer ; var t :tab ) ; var i,max,p : integer ; Begin for i:= 1 to n-1 do begin p:=pos_max(n,t,i); x:=t[i]; t[i]:=t[p]; t[p]:=x ; end; End; procedure affiche (n : integer ; t :tab) ; 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); trie(n,t); affiche(n,t); End.