Jednorozmerné polia

Jednorozmerné pole je rad rovnakých vlastností, ktoré sú popísané jedným identifikátorom (názvom poľa) a niekedy sú nazývané aj vektory. Predtým, než začneme pracovať s poľom, musíme kompilátoru oznámiť používanie poľa. Máme na výber dva spôsoby deklarovania poľa:

  1. Pri deklarovaní premennej, ktorá bude pole využívať
  2. Definovaním nového typu

Pri deklarovaní premennej uvedieme údaje o poli ihneď za menom premennej a dvojbodkou. Nasleduje slovo Array, ktoré označuje použitie poľa, typ indexu v hranatých zátvorkách, slovo of a údajový typ použitý v danom poli.

var

Pole1 : Array [1..10] of Integer;

Pole2 : Array [1..20] of String;


Definovanie nového typu používame, ak s rovnakým typom poľa budeme pracovať v rámci jedného programu viackrát. Pri definovaní nového typu začneme slovom type, pokračujeme názvom poľa (štandardne sa používa na začiatku názvu poľa písmeno T, ktoré označuje použitie typu), nasleduje znamienko rovná sa, slovo Array, typ indexu v hranatých zátvorkách, slovo of a údajový typ použitý v danom poli. Následne musíme deklarovať premennú, ktorá bude dané pole využívať.

type

TPole = Array [1..10] of Integer;

var

Pole1, Pole2 : TPole;


Keď si pole zadeklarujeme, je prázdne a neobsahuje žiadne prvky. Tie musíme do poľa doplniť pomocou príkazu priradenia. Vieme, že na priraďovanie hodnoty nejakej premennej využívame priraďovacie znamienko :=. Ak chceme napríklad celočíselnej premennej a prideliť hodnotu 20, použijeme príkaz a:=20;. Rovnako budeme postupovať aj pri napĺňaní poľa.

Každý prvok poľa predstavuje samostatnú premennú, do ktorej je možné priraďovať alebo z nej čítať hodnoty príslušného typu.[2] Prístup k jednotlivým prvkom poľa nám zabezpečuje práve index. Podobne to bolo aj pri údajovom type String. Predpokladajme, že sme si vytvorili pole, ktoré sme nazvali pole. Ak teda budeme chcieť priradiť desiatemu prvku nášho poľa hodnotu 20, urobíme to podobne ako pri prideľovaní hodnoty premennej, ale doplníme hodnotu indexu do hranatých zátvoriek za názov poľa, teda príkaz bude nasledovný:

Pole1 [10] := 20;


Teraz si na konkrétnych príkladoch predvedieme fungovanie poľa. Zadefinujeme si pole s desiatimi prvkami. Priradiť hodnoty prvkom môžeme dvomi spôsobmi:

1. Priradenie hodnoty prvkom v tele procedúry

Každý z prvkov si zadeklarujeme v tele procedúry s použitím indexu.

2. Priradenie hodnoty prvkom pri deklarovaní premennej

Každý z prvkov si zadeklarujeme pri deklarovaní premennej, kde si jednotlivé prvky vypíšeme do zátvorky v takom poradí, v akom majú byť priradené k jednotlivým indexom.

Prvky poľa si môžeme vypísať na grafickú plochu pomocou príkazu TextOut. Keďže máme pole celočíselných prvkov, nesmieme zabudnúť na konvertovanie prvkov z celočíselného typu na znakový.Bez ohľadu na to, ktorú metódu definovania prvkov poľa použijeme, výsledok bude rovnaký. 

Takto sme si zadeklarovali hodnotu prvkov manuálne. Jednotlivé prvky poľa si však môžeme zadeklarovať aj generovaním náhodných hodnôt použitím funkcie Random. Opäť si zadefinujeme pole s desiatimi tentokrát náhodnými prvkami, ktoré si následne vypíšeme na grafickú plochu.  

Teraz si ukážeme čo všetko sa dá robiť s poľom a jeho prvkami. Trochu si upravíme procedúru, ktorú sme použili na predchádzajúci príklad. Ako prvé si chceme načítať pole s 10náhodnýmičíselnými hodnotami z intervalu <1, 20> a vypísať ich na grafickú plochu. Potom chceme medzi nimi nájsť najvyššiu hodnotu.

Vieme, že funkcia Random generuje náhodné čísla z intervalu <0, n>, kde n je číslo zadané v zátvorke, teda Random(50) bude generovať čísla z intervalu <0, 49>. Ak chceme, aby funkcia vynechala číslo nula a zaradila do generovania aj číslo 50, k funkcií jednoducho pripočítame číslo jeden. To znamená, že akékoľvek vygenerované číslo sa zvýši práve o jeden.

Princípom hľadania maxima v poli bude porovnávanie jeho jednotlivých hodnôt. Na začiatok si musíme nejaké maximum nastaviť. To môže byť prvý prvok poľa. S ním sa budú postupne porovnávať všetky prvky poľa. V prípade, že bude porovnávaný prvok vyšší než zadané maximum, nahradíme ho práve týmto prvkom. Takto cyklus prejde všetky prvky a nakoniec vypíše nájdené maximum.  

Ako môžeme vidieť na obrázku, cyklus začne porovnávanie až od druhého prvku, pretože je zbytočné porovnávať prvý prvok so zadaným maximom (so sebou samým).

Teraz si ukážeme ako sa dá zistiť súčet prvkov poľa. Tentokrát si cez editovací riadok určíme počet prvkov poľa, ktoré si opäť náhodne vygenerujeme, napríklad z intervalu <5, 60> a vypíšeme ich na grafickú plochu. Vypočítanie súčtu prvkov poľa je jednoduché. Aktuálnu hodnotu prvku poľa pripočítame k súčtu hodnôt predchádzajúcich prvkov poľa vďaka premennej sucet. Tento proces musíme opakovať od prvého po posledný prvok poľa, aby sa spočítali všetky prvky poľa, teda využijeme cyklus For s n počtom opakovaní.  

Pozor! Zadaná hodnota v Editovacom riadku nesmie byť vyššia než horná hranica rozsahu poľa.

Vďaka známemu súčtu prvkov poľa vieme jednoducho vypočítať aritmetický priemer. Stačí ak aktuálny súčet vydelíme počtom prvkov poľa. V tomto prípade však potrebujeme ako výsledok reálne číslo v desatinnom formáte. Preto nevyužijeme delenie pomocou funkcií div ani mod, ale delenie pomocou lomkou /. Vieme, že číslo v desatinnom formáte je reálneho typu, preto premenná priemer musí byť typu Real a pre vypísanie na grafickú plochu ho konvertujeme príkazom FloatToStr.  

Vytvorte si webové stránky zdarma! Táto stránka bola vytvorená pomocou služby Webnode. Vytvorte si vlastný web zdarma ešte dnes! Vytvoriť stránky