program Prihradkove_Trideni; const N = 10; {pocet zaznamu} D = 1; {dolni mez klice} H = 999; {horni mez klice} type Pole = array[1..N] of record klic: integer; {cosi dalsiho ...} end; var i:integer; A:Pole; procedure PrihradkoveTrideni(var A: Pole); var B: Pole; {setridene zaznamy} C: array[D..H] of integer; {hranice prihradek} I, K: integer; begin {Velikosti prihradek:} for I:= D to H do C[I]:= 0; for I:= 1 to N do begin K := A[I].klic; C[K] := C[K] + 1 end; {Konce prihradek:} for I:= D+1 to H do C[I] := C[I] + C[I-1]; {Zarazeni zaznamu do prihradek:} for I:= N downto 1 do begin K:= A[I].klic; B[C[K]]:= A[I]; C[K]:= C[K]-1 end; A := B {Predani setrideneho pole ven:} end; {konec procedury PrihradkoveTrideni} begin writeln('Zadej ',N,' tridenych cisel z rozmezi od ',D,' do ',H,' :'); for i:=1 to N do read(A[i].klic); PrihradkoveTrideni(A); writeln('Setrideno:'); for i:=1 to N do write(A[i].klic:5); writeln end.