Viem ze to v pripade 2 najvacsich prvkov vyberie prave tie prvky no ratam, ze prvky nebudu opakujuce sa. Ak len predsa tak staci pridat podmienku k druhemu IF (AND ....). Beriem to vsak tak, ze takto su to 2 najvacsie prvky a jeden z nich je vlastne druhy.
Kód: Vybrať všetko
program Druhy_prvok;
uses Crt;
const
pocet = 10; { pocet triedenych, generovanych prvkov }
var
pole: array[1..pocet] of Byte;
x: Integer;
max,prvy,druhy: Byte;
BEGIN
{ vymaz obrazovku }
ClrScr;
{ generovanie prvkov pola }
Randomize;
for x := 1 to pocet do begin
pole[x] := Random(255);
Write (pole[x],',');
end;
prvy := 1;
druhy := 1;
max := pocet;
{ algoritmus }
while max>1 do begin
if pole[max] > pole[prvy] then begin
druhy := prvy;
prvy := max;
end
{ porovnanie druheho prvku }
else
if pole[max] > pole[druhy] then
druhy := max;
dec (max);
end;
WriteLn;
WriteLn ('PRVY : ',pole[prvy]:3,'[',prvy,']');
WriteLn ('DRUHY: ',pole[druhy]:3,'[',druhy,']');
ReadLn;
END.