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 60 61 62 63 64 65
|
program KPPE;
uses wincrt;
type tab=array[1..100] of integer;
procedure remptab(table:tab;n:integer);
var i:integer;
begin
for i:=1 to n do
begin
write('valeur numéro ', i,' du tableau : ');
read(table[i]);
end;
for i:=1 to n do write(table[i]:6);
end;
function maximum(table :tab; n:integer):integer;
var max,m,i:integer;
begin
m:=table[1];
for i:=1 to n do if table[i]>m then m:=table[i];
max:=m;
end;
function minimum(table:tab; n:integer):integer;
var i,c:integer;
begin
c:=table[1];
for i:=1 to n do if table[i]<c then c:=table[i];
minimum:=c;
end;
function DF(table:tab; n:integer):integer;
var CF:boolean; i,j,c,f:integer;
begin
CF:=true;
f:=1;
for i:=1 to n do
begin
CF:=true;
for j:=1 to i-1 do if table[j]=table[i] then CF:=false;
if CF then for c:=(i+1) to n do if table[i]=table[c] then f:=f+1;
end;
DF:=n-f;
end;
var
t:tab; i,k,y,a,n:integer;
begin
repeat
write('quelle est la longueur du tableau (n)? ');
read(n);
until n in [2..20];
remptab(T,n);
writeln(chr(13),' k? ' );
readln(k);
if not k in [1..DF(T,n)] then writeln('Pas de ',k,'ième plus petit élément!')
else
begin
y:=minimum(T,n)-1;
for i:=1 to k do mppm(T,n,y);
repeat a:=a+1 until T[a]=y;
writeln('Le ',k,'ième plus petit élément est ',y, ' et l''indice de sa première apparition est ',a,'.');
end
end. |
Partager