Február 2007


=== Základy .{color:green}===

Pole je premenná, ktorán sa skladá z viacerých premenných rovnekého typu, ale má jedno meno. Vizuálne sa pole piatich prvkov dá predstaviť nasledovne:
/—code pascal
1 hodnota 1
2 hodnota 2
3 hodnota 3
4 hodnota 4
5 hodnota 5
\—
Polia sa deklarujú takmer rovnako, ako ostatné premenné, je treba navbiac zadať počet prvkov, ktoré dané pole má.

/—code pascal
program Polia;

var
a: array[1..5] of Integer;

begin
end.
\—

Ku konkrétnemu prvku pola sa pristupuje “cez hranaté zátvorky”.

/—code pascal
program Polia;

var
a: array[1..5] of Integer;

begin
a[1] := 12;
a[2] := 23;
a[3] := 34;
a[4] := 45;
a[5] := 56;
end.
\—

Je oveľa jednoduchšie potom v cykloch pristupovať k premenným v poli. Napríklad nasledujúci príklad ukazuje, ako načítať 5 hodnôt do pola:

/—code pascal
program Polia;

var
a: array[1..5] of Integer;
i: Integer;

begin
for i := 1 to 5 do
Readln(a[i]);
end.
\—

V poliach sa často vyhľadáva, prípadne sa polia triedia. Na vyhľadávanie sa dá použiť napríklad lineárne vyhľadávanie – postupne sa prechádza pole, kým sa daný prvok nenájde, prípadne v utriedených poliach sa dá použiť efektívnejšie binárne vyhľadávanie – pozriem sa do polovice – je číslo menšie, alebo väčšie a podľa toho postupujem ďalej v tej polovici, kde môže byť. Na triedenie pola existuje viacero postupov, napríklad bubble sort, command and conquer. “Popis triedenia na referaty.sk.”:http://referaty.atlas.sk/ostatne/informatika/1934/pascal—algoritmy-na-triedenie-pola.

=== Triedenie polí .{color:green}===

Niekedy je potrebné utriediť prvky v poli. Dá sa to urobiť napríklad systémom buble-sort. Na triedenie existuje viacero systémov, nie len buble sort. Buble sort presúva veľké čísla na koniec pola.

Nutné su dva cykly, jeden na prechod cez každé číslo v poli, druhý na jeho porovnanie s ostatnými. Ak je číslo vačšie, ako nasledujúce, tak sa vymenia. Je teda potrebná jedna pomocná premenná na túto výmenu.

/—code pascal
program BubleSort;

var
a: array[1..5] of Integer;
i, j, tmp: Integer;

begin
a[1] := 23;
a[2] := 45;
a[3] := 12;
a[4] := 56;
a[5] := 34;
for i := 1 to 4 do
for j := 1 to 4 do
if a[j] > a[j + 1] then begin
tmp := a[j];
a[j] := a[j + 1];
a[j + 1] := tmp;
end;
for i := 1 to 5 do
writeln(a[i]);

readln;
end.
\—

=== Dvojrozmerné polia .{color:green}===

Polia môžu mať aj dva rozmery, nie len jeden. V podstate ide o tabulku a nie len o riadok.
/—code pascal
X 1 2 3
1 1 2 3
2 4 5 6
3 7 8 9
\—

2D polia sa deklarujú nasledovne:

/—code pascal
program Polia2D;

var
a: array [1..3,1..3] of Integer;

begin
end.
\—

Na prístup k prvkom 2D pola sa používajú dve čísla v hranatých zátvorkach. 2D polia samozrejme aj potrebujú dva cykly miesto jedného, napríklad na ich čítanie

/—code pascal
program Polia2D;

var
r, c: Integer;
a: array [1..3,1..3] of Integer;

begin
for r := 1 to 3 do
for c := 1 to 3 do
Readln(a[r,c]);
end.
\—

“Použitý zdroj o Pascale”:http://www.learn-programming.za.net/programming_pascal_learn04.html