Pascal – Datový typ Pole

I v Pascalu existuje datový typ pole (ang. array). Pro ty co se s tímto datovým typem nikdy nesetkali a nevědí o co se jedná mám podrobné vysvětlení.

Pokud přihlédneme k běžnému životu, tak si představme pole, které máme rozdělené třeba na 4 části a na každé části pěstujeme nějaký druh zeleniny. Na jedné straně jsou rajčata, na druhé okurky apod.. Pole funguje nějak podobně. Jako programátoři mu deklarujeme jeho rozsah což je ten počet políček na velkým poli a poté deklarujeme jeho typ což můžou být celá čísla nebo znaky. Když deklarujeme celočíselný datový typ, tak v celém datovém typu musíme používat čísla, nikoliv znaky! Tak je to myšleno i u pole se zeleninou. Určili jsme typ pole na zeleninu, kde pěstujeme veškerou zeleninu.

Snad mé vysvětlení bylo pochopitelné. Je nutné uvést, že můžeme vyvolat z pole určitou hodnotu. Stačí pouze definovat jaká část pole má být použita a z té budeme číst. Vše si ale vysvětlíme na příkladech k tomuto datovému typu.

Proměnnou louka typu pole (array), deklarujeme tímto způsobem:

var louka:array[0..4] of integer;

Deklarace obsahuje název proměnné:datový typ[rozsah] of datový typ hodnot pole.

Proměnná louka tímto obsahuje pět políček. Musíme mu přesně stanovit jeho rozsah. Programovací jazyky jako je C,C++,Java a další nepotřebují tuto definici, jelikož začínají automaticky od nuly, zadáváme jen koncový rozsah, v tomto případě 4.

proměnná louka obsahuje:

jednorozmernepole

Pokud budeme chtít zapisovat do proměnné louka tak to bude vypadat takto:

louka[0] := 7;
louka[1] := 2;
louka[2] := 8;
louka[3] := 4;
louka[4] := 3;

Všechny datové typy číslujeme od nuly, ale jediný datový typ, který má značení indexů od jedničky je String. Pouze tento datový typ budeme tedy značit od jedničky po poslední políčko v našem rozsahu.

Vrátím-li se k našemu zápisu hodnot do pole s názvem louka, tak je nezbytné zmínit, že výpis konkrétní hodnoty pole je prostý. Stačí to vypsat tak jako v příkladu pod tímto odstavcem.

writeln('Cislo policka je: ',louka[1]);

Pascal umožňuje nejen pole s jedním rozměrem, tedy jeho rozsahem, který určuje délku, ale také existuje dvourozměrné pole, které zapisujeme tímto způsobem:

var louka:array[0..4,0..2] of char;

Tento způsob zápisu rozsahu hodnot pole stanovil jeho délku což je pět políček vedle sebe a následně další dvě řady pod aktuálním políčkem se stejnou délkou pěti políček. Jediné co jsme změnili byl datový typ na znakový (char). Ukázka tohoto zápisu jak toto pole vypadá, naleznete pod tímto odstavcem na obrázku:

dvourozmerne pole

Zápis do konkrétního políčka je opět jednoduchý a zapisuje se to podobně jako u výše uvedeného příkladu:

louka[0,0] := c;
louka[4,1] := b;
louka[2,2] := z;

Příklad:

Ukážeme si tedy jednoduchý příklad pro pochopení práce datového typu pole. Vytvoříme si program, kterému zadáme číselné hodnoty a on bude mít za úkol je všechny sečíst a vypsat výsledek.


Nejprve si vytvoříme základ a deklarujeme proměnnou cislo s datovým typem pole. Dáme této proměnné rozsah od 0 do 4, myslím, že tento rozsah by mohl pro zadání čísel stačit. Dále deklarujeme proměnnou vysledek, pro výpis součtu čísel.

program priklad_Pole;
var cislo:array[0..4] of integer;
    vysledek:integer;

begin
   writeln('Program pro soucet mnoziny cisel.');
end.

Teď připíšeme ještě další informace pro uživatele, co má vykonat a následně úsek pro čtení hodnot. Samozřejmě rovnou zadáme příkaz pro součet hodnot v poli.

program priklad_Pole;
var cislo:array[0..4] of integer;
    vysledek:integer;

begin
   writeln('Program pro soucet mnoziny cisel.');
   writeln('Zadejte cisla oddelena mezerou pro soucet.');
   write('Cisla: ');
   readln(cislo[0],cislo[1],cislo[2],cislo[3],cislo[4]);
   vysledek := cislo[0] + cislo[1] + cislo[2] + cislo[3] + cislo[4];
end.

Teď už jen samotný příkaz pro výpis výsledku v konzoli a vyčkání na klávesu.

program priklad_Pole;
var cislo:array[0..4] of integer;
    vysledek:integer;

begin
   writeln('Program pro soucet mnoziny cisel.');
   writeln('Zadejte cisla oddelena mezerou pro soucet.');
   write('Cisla: ');
   readln(cislo[0],cislo[1],cislo[2],cislo[3],cislo[4]);
   vysledek := cislo[0] + cislo[1] + cislo[2] + cislo[3] + cislo[4];

   writeln('Vysledek souctu zadanych cisel je: ',vysledek);
   readln();
end.

Výsledný kód vypadá takto.

Příspěvek byl publikován v rubrice Pascal se štítky , , , , , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>