Tömb feltöltése véletlen számokkal és az elemek elrendezése terítő rendezéssel, eljárások használatával (Terito.pas) program Terito; uses crt; var i,j,n,m:integer; a:array [1..50] of integer; gyak:array [1..90] of integer; procedure feltolt; var i:integer; begin for i:=1 to n do begin a[i]:=trunc(90*random)+1; end; end; procedure kiir; var i:integer; begin for i:=1 to n do begin writeln(a[i]); end; end; BEGIN clrscr; randomize; n:=10; feltolt; writeln('A szamok rendezes elott:'); kiir; for j:=1 to 90 do begin Tömb rendezése terítő eljárással, úgy, hogy létrehozunk egy tömböt, mely elemeit kinullázzuk. Figyeljük meg, hogy a gyak tömb elemeinek száma megegyezik az a tömbben előforduló elemek maximális étrékével, azaz 90-el. A gyak tömbben az elemek gyakoriságát tároljuk el. gyak[j]:=0; end; for i:=1 to n do begin A ciklus segítségével feljegyezzük a gyak tömbbe az a tömbben előforduló értékeket, úgy, hogy a gyak tömb indexét beállítjuk az a tömb elemének értékére és a gyak tömb aktuális elemének értékét megnöveljük. inc(gyak[a[i]]); end; i:=1; for j:=1 to 90 do begin Visszaadjuk az a tömbbe az értékeket. while (gyak[j]>0) do begin Végigmegyünk a gyak tömbbön és megvizsgáljuk, hogy az aktuális indexű elem értéke mennyi, mivel ez az előfordulás száma. Amekkora értékű, annyiszor helyezzük el az indexét az a tömbben. A ciklusban ezt az értéket csökkentjük, az a tömb indexét növeljük, így egymás után kerülnek az elemek tárolásra. a[i]:=j; inc(i); dec(gyak[j]); end; end; writeln(''); writeln('A szamok rendezes utan:'); kiir; readkey; END.