Pascal – #7 Pole

Dnes si vysvětlíme problematiku polí, v programovacím jazyce Pascal. Pole se používají v každém jazyce a je to další z nezbytných součástí programování. Řekněme si tedy co to je. Jedná se o setříděnou množinu prvků stejného datového typu. Teď tedy co si pod touto definicí představit. Do pole můžeme přehledně ukládat data o stejném datovém typu. A proč přehledně? Protože každá informace uložená v poli má svůj index. Index chápej jako určitou ordinální hodnotu většinou celé číslo pod, kterým k datům přistupujeme

Index Hodnoty
1 28
2 59
3 7
4 88
5 22

 

Takhle si lze představit dvojrozměrné pole. Jako tabulku, kde první sloupec jsou indexy a v druhém jsou uložená libovolná data.

Techniku polí využijeme například v příkladu, kdy bychom chtěli uložit 10 čísel. Až do dnešní lekce bychom museli deklarovat deset proměnných a čísla ukládat jednotlivě. Teď však můžeme uložit 10 čísel do jednoho pole s velikosti 10. Z toho vyplývá, že i Indexů bude 10. Úplně laicky řečeno, pole v sobě  ukrývá 10 proměnných.

Obecná syntaxe: deklarace pole

Var pole_cisel : array [1..10] of byte;

Vysvětlení kodu. Tady se jedná o deklaraci, jak naznačuje příkaz Var, za ním následuje název, to zatím není nic nového za dvojtečkou, však uvádíme, že se jedná o pole (klíčové slovo array) hned za tímto musíme uvést velikost, chcete-li počet indexu, který je uveden intervalem. Většinou se udává od 1 do námi požadované velikosti, jako poslední dáme programu vědět, jaká data bude do pole ukládat, v tomto případě of byte.

Obecná syntaxe: uložení

Pole_cisel[1]:=28;
Pole_cisel[2]:=59;

Je třeba si uvědomit, že jakmile chceme pracovat s polem, musíme vždy uvést index. Asi lépe si to představíme, pokud budeme uvažovat pole jako deset proměnných v jedné a ve chvíli kdy chceme cokoliv ukládat nebo číst musíme si „vytáhnout“ tu jednu proměnnou, se kterou chceme pracovat, pomoci indexu. Zde vidíme ukázku uložení čísla do pole. Indexy se píšou v hranatých závorkách. Jakmile uvedeme index, stává se z pole svým způsobem samostatná proměnná, se kterou pracujeme tak, jak jsme již zvyklí.

Obecná syntaxe: vypsání prvku

Writeln(pole_cisel[1]);

Pojďme si ukázat praktický příklad zápisu do pole pomocí cyklu. Příklad bude znít: Zapište do pole 10 čísel, program se následně zeptá, poté uživatel zadá index od 1-10 a vypíše se příslušné číslo, které je pod tímto indexem uložené v poli.

program pole1;
uses crt;
var pole_cisel : array [1..10] of byte;
var i : byte;
var pozice: byte;
begin
      clrscr;
      writeln('zadej 10 čísel');
      for i:=1 to 10 do
      begin
            readln(pole_cisel[i]);
      end;
      writeln('zadej index který chces z pole vypsat');
      readln(pozice);
      writeln(pole_cisel[pozice]);
      repeat until keypressed;
end.

Vysvětlení kódu

zde je třeba si uvědomit, že index pole muže být reprezentován proměnnou stejně tak dobře jako konstantou (číslem), tak jak jsme si to ukazovali ze začátku lekce. V našem případě uvádíme na místě indexu proměnnou i, která v tomto příkladu zastává také funkci počítadla cyklu. Z logiky věci tedy plyne následující. Víme, že počítadlo se při každém průchodu navýší o hodnotu 1. Z toho vyplývá, že při prvním průchodu cyklu bude námi popisovaný řádek vypadat takto:

Program narazí na příkaz readln a ví, že bude načítat data od uživatele, jako parametr požaduje, kam je bude načítat, zde jsme mu nabídli pole s indexem i, který při prvním průchodu má hodnotu 1. Takže na první pozici se zapíšou vstupní data a program pokračuje dál. Skočí na začátek cyklu, navýší počítadlo čili proměnnou i o hodnotu jedna a pokračuje dál vykonávat příkazy, zase narazí na readln a bude požadovat místo kam data uloží, zde se mu nabídne zase pole ale s indexem i ale je důležité si uvědomit, že v této chvíli je již index reprezentován číslem 2. Pokud pořád přemýšlíme o poli jako o 10 proměnných najednou tak si uvědomíme, že nyní již požadujeme v pořadí druhou proměnnou a do ní ukládáme.

Tento příklad je možná trošičku složitější na pochopení nicméně v podstatě se jedná o využití dvou věcí. Za prvé, možnost index reprezentovat proměnnou. Za druhé, využití počítadla do role indexu (zda si nejste jistí funkci počítadla, přečtěte si lekci 5 tam je to probíráno). Pokud si uvědomíme tyto dvě věci samostatně, neměl by být problém představit si to v příkladu.

Po této lekci byste měli být schopni odpovědět na tyto otázky:

  1. Jak vypadá pole, či jak je možné si pole představit
  2. Deklarace polí
  3. Jak přistupujeme (pracujeme) s jednotlivými záznamy v poli
  4. Co je to index, k čemu slouží a čím může být reprezentován

Shrnutí:

Při práci s poli je důležité uvědomit si, s jakým indexem momentálně program pracuje. I přestože v této lekci jsme pracovali s poměrně malým polem velikosti 10, je důležité mít na paměti, že můžeme použít i mnohem větších polí. Nejčastější chyby pak bývají právě s deklarací příliš malého rozsahu polí a program poté může pracovat nestandardně, proto se všeobecně doporučuje deklarovat pole s jistou rezervou.

Víc už si v této lekci neukážeme, příště se podíváme na cykly ukončené podmínkami. Pokud Vám v této lekci nebylo něco jasného, ptejte se v komentářích.

Napsat komentář