Stránky neboli dlhú dobu aktualizované. Môžu obsahovať nepresné alebo neaktuálne informácie.
Hľadanie
Rozšírené vyhľadávanie
TOP 7 - stránky
Napaľovacie programy - 108 657x
Free Pascal - Úvod - 66 165x
Lazarus - Kreslenie - 47 678x
Free Pascal - Začiatky - 44 985x
Free Pascal - Podmienky - 37 301x
Free Pascal - Cykly - 36 543x
Internetové prehliadače - 36 476x
Nové v diskusii
Free Pascal - Cykly - štvrtok 31.3.
Lazarus - Začíname - piatok 25.3.
Anketa - streda 2.3.
Navigácia: Programovanie > Free Pascal - Polia

Free Pascal - Polia

Reč nebude o traktoroch a poľnohospodárskych plodinách, ale o dôležitom type premennej. Pole v Pascale je súbor premenných rovnakého typu, ktoré majú svoje číselné indexy.

Využitie

Ak napríklad potrebujeme zaznamenať 1000 čísel, určite ich nezačneme ukladať do tisícich ručne vytvorených premenných nazvaných prem000, prem001, prem002,... Využijeme pole a jediným riadkom ich deklarujeme. Prístup k prvkom je tiež veľmi jednoduchý. Tak ideme na to.

Deklarácia poľa

Tu je schéma:

var
 názov_poľa: array[začiatok..koniec]
  of typ_premenných;

Slovo začiatok predstavuje číslo prvého prvku a koniec - posledného. Takto vytvoríme pole celých čísel s prvkami od 1 do 10:

var
 pole: array[1..10] of integer;

Toto je pole obsahujúce reťazce, ktoré majú indexy od 5 do 123:

var
 pole: array[5..123] of string;

Práca s prvkami

K prvkom v poli pristupujeme pomocou názvu poľa, za ktorým nasleduje v hranatých zátvorkách index prvku.

ovocie[0] := 'jablko';
ovocie[1] := 'banan';
writeln(ovocie[0],' ', ovocie[1]);

Príklad vypíše:

jablko banan

Nasledujúci príklad ukazuje, ako najprv získame od užívateľa 5 čísel a potom ich vypíšeme v opačnom poradí.

program polia;
var
 c: integer;
 pole: array[1..5] of integer;
begin
 { ziskavanie }
 for c := 1 to 5 do begin
  writeln('Zadajte ', c, '. cislo.');
  readln(pole[c]);
 end;
 { vypis cez cyklus for..downto }
 writeln('Opacny vypis:');
 for c := 5 downto 1 do
  write(pole[c],' ');
end.

Špeciality

Indexy môžu byť i záporné.

a: array[-10..-5] of string;

Miesto celočíselných indexov existujú aj znakové. Nasledujúca deklarácia je teda tiež správna:

b: array['a'..'n'] of integer;

Príklad

Od užívateľa získame osem slov. Skúsime ich uložiť do poľa, potom zoradiť podľa abecedy a vypísať.

V jazyku Pascal môžeme reťazce porovnávať podobne ako čísla (znamienkami <, >, =) - ak je jeden reťazec menší ako druhý, nachádza sa v abecedne zoradenom zozname skôr. Musím však poznamenať, že toto porovnávanie nerozpoznáva znaky s mäkčeňmi a dĺžňami (porovnáva sa podľa tabuľky ASCII).

Použijeme metódu „Bubble Sort“, ktorá síce nie je rýchla, ale dá sa pomerne ľahko pochopiť. Budeme prechádzať poľom a vždy pritom navzájom vymeníme dva prvky (nachádzajúce sa vedľa seba), ak sú zle zoradené. To všetko budeme opakovať dovtedy, kým nebude potrebné nič vymeniť, teda prvky sú už zoradené.

Ak ste program dokázali napísať sami, gratulujem. Ak nie, tu je riešenie: bubble.pas

Hodnotenie
1 2 3 4 5 (ako v škole)
Priemerná známka: 2,65
Diskusia k tejto stránke Nie je to chyba. Indexy môžu byť napr. znakové, al...
Prejsť do diskusie»
2005-2012, Matúš Sulír, matus.sulir (zav) gmail bodka com. Gen.: 0,0534 s. Valid XHTML, CSS.