1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| program k_ppe;
uses wincrt;
const n=6;
var
t:array[1..n] of integer;
t2:array[1..n] of integer;
i,e,f:integer; {e : valeur enregistrée pour le tri croissant du tableau}
r,s,k,x,y:integer;
begin
for i:=1 to n do
begin
write('valeur numero ', i,' du tableau : ');
read(t[i]);
end;
for i:=1 to n do {ici on affiche le tableau avec les valeurs choisies du l'utilisateur}
begin
write(T[i]:6);
T2[i] :=T[i]; {initialisation du 2e tableau, consacré au tri}
end;
{ici commence le tri croissant du tableau}
for i:=2 to n do
begin
for f:=n downto i do
begin {condition de changement de deux cases}
if T2[f-1]>T2[f] then
begin {changer T[8] et T[9] de places si T[8] >T[9]}
e:=T2[f];
T2[f]:=T2[f-1];
T2[f-1]:=e;
end;
end;
end;
writeln(chr(13),'tableau trié : ');
for i:=1 to n do
write(T2[i]:6);
writeln(chr(13),' k? ' );
readln(k);
s:=k;
for r:=1 to s do
begin
if T2[r] = T2[r+1] then
S:=S+1;
end;
x:=T2[s];
y:=0;
repeat
y:=y+1
until
T[y]=x;
if s<=n then
begin
writeln('Le ',k,'ième plus petit élément est ',X, ' et l''indice de sa première apparition est ',y,'.');
end
else
writeln('pas de ',k,'ième plus petit élément');
end. |
Partager