program Hledani_duplicit_v_dvourozmernem_poli; uses crt; const max = 10; type pole = array[1..max,1..max]of integer; var p: pole; i, j : integer; procedure Vstup; begin randomize; writeln('Jednotlive hodnoty pole budou vygenerovany nahodne v rozmezi 0 - 30'); for i := 1 to max do for j := 1 to max do p[i,j] := random(31); writeln; writeln('Takto vypada vygenerovane pole : '); writeln; for i := 1 to max do begin write(' '); for j := 1 to max do write(p[i,j]:5); writeln; end; end; procedure Trideni; const max2 = max*max; var pom : array[1..max2] of integer; k : integer; poc, minimum : integer; begin poc := 0; for i := 1 to max do for j := 1 to max do begin inc(poc); pom[poc] := p[i,j]; end; for i := 1 to max2-1 do begin minimum := pom[i]; k := i; for j := i+1 to max2 do if (minimum > pom[j]) then begin minimum := pom[j]; k := j; end; pom[k] := pom[i]; pom[i] := minimum; end; poc := 0; for i := 1 to max do for j := 1 to max do begin inc(poc); p[i,j] := pom[poc]; end; writeln('Takto vypada setridene pole : '); writeln; for i := 1 to max do begin write(' '); for j := 1 to max do write(p[i,j]:5); writeln; end; end; procedure Duplicity; var k, l, poc : integer; begin i := 0; repeat Inc(i); k := i; j := 0; repeat Inc(j); l := j + 1; repeat if l > max then begin Inc(k); l := 1; end; if p[i,j] = p[k,l] then begin p[k,l] := 9999; Inc(l); end; until p[i,j]<> p[k,l]; i := k; j := l - 1; until (j >= max) or (i > max); until i >= max; writeln('Cislem 9999 jsou oznaceny duplicitni prvky : '); for i := 1 to max do begin write(' '); for j := 1 to max do write(p[i,j]:5); writeln; end; end; BEGIN clrscr; gotoxy(11,2); writeln('Program hledani duplicitnich prvku v dvourozmernem poli.'); writeln; Vstup; writeln('Stiskni ENTER ...'); readln; Trideni; writeln('Stiskni ENTER ...'); readln; Duplicity; writeln('Stiskni ENTER ...'); readln; clrscr; END.