Jednorozměrné pole - konzole
2. Analýza a návrh řešení
Pole je datová struktura skládající se z prvků stejného datového typu. K těmto prvkům přistupujeme pomocí indexů, kde k počátečnímu prvku (v pořadí prvního prvku vektoru) přistupujeme pomocí indexu 0, k dalšímu prvku je přístup s indexem o 1 vyšší než předchozí, atd. - viz Obrázek 1.
Obrázek 1: Jednorozměrné pole - princip
Velikost jednorozměrného pole (v našem případě n) je určena počtem prvků, do kterých lze ukládat hodnoty. Pro přístup k hodnotě uložené v prvku, nebo k uložení hodnoty do prvku (přiřazení hodnoty) využíváme název jednorozměrného pole s indexem uzavřeným v hranatých závorkách, např. pomocí příkazu pole[2] = 3 uložíme v jednorozměrném poli s názvem pole hodnotu 3 ve třetím prvku od začátku (index tohoto prvku je o 1 méně, tedy 2). Jak vidíme na příkladu, velikost pole je n = 4, tzn. pole obsahuje 4 prvky - viz Obrázek 2. Ve Flowgorithm lze využít pro návrat velikosti jednorozměrného pole funkci Size, jejímž parametrem je pole, pro které chceme zjistit velikost.

Obrázek 2: Příklad naplnění 3. prvku jednorozměrného pole (index = 2) hodnotou 3
Pokud bychom chtěli číst hodnotu uloženou v prvku, stačí uvést název pole s hranatou závorkou obsahující index prvku, jehož hodnotu chceme načíst.
V závislosti na dimenzi pole (počet os v prostoru) budeme využívat určitý počet indexů pro přístup k prvku. U jednorozměrného pole - vektoru, potřebujeme pro přístup k prvku jeden index, u dvourozměrného pole - matice - dva indexy, které jsou odděleny čárkou, pro třírozměrné pole tři indexy, atd.
V hlavním programu našeho algoritmu JednorozmernePole nejprve deklarujeme základní atributy jednorozměrného pole:
- pocetPrvku - rozměr vektoru (počet prvků ve vektoru)
- Max - maximální přípustná velikost vektoru (konstanta)
- minHodnota - přípustná minimální hodnota (dolní mez) prvků vektoru
- maxHodnota - přípustná maximální hodnota (horní mez) prvků vektoru
Po provedení inicializace všech vyjmenovaných atributů vektoru dáme uživateli možnost nastavit velikost pole pomocí funkce RozmerPole. Tato funkce navrací počet prvků, který bude vektor obsahovat. Funkce přijímá dva parametry - stávající počet prvků vektoru uložený v proměnné pocetPrvku, jejíž hodnotu inicializujeme celočíselnou maximální přípustnou hranicí velikosti pole, tj. Max. Tato hranice je druhým parametrem této funkce.
Pro deklaraci jednorozměrného pole je zapotřebí specifikovat datový typ prvků, které bude vektor obsahovat. Dále je zapotřebí definovat velikost pole. Pro specifikaci dolní meze, tj. minimální hodnoty, které může prvek nabýt, určíme pomocí funkce DolniMez. Naproti tomu horní mez určíme pomocí volání funkce HorniMez.
Uživatel má možnost zvolit způsob plnění vektoru pomocí procedury PlnitPole. K dispozici má tři možnosti:
- 0 - Náhodně - náhodnými čísly - volání
- 1 - Jednotlivě - jednotlivě zadanými hodnotami uživatelem
- 2 - Nulovat - plnění vektoru nulami
- PoleJakoText - slouží pro výpis hodnot prvků vektoru do řádku, kde jednotlivé prvky jsou od sebe odděleny čárkami
- ZobrazitPole - výpis prvků vektoru do sloupce, kde každý prvek je na nové řádce. Jednorozměrný vektor můžeme chápat i jako jeden sloupec, kde k jednotlivým prvkům znovu přistupujeme pomocí indexu - viz Obrázek 3.

Obrázek 3: Jednorozměrné pole - otočené
Další volanou funkcí z hlavního programu je MinimumVPoli. Tato funkce vyhledá nejmenší hodnotu ze všech hodnot uložených ve vektoru. Ve výpisu je také využita funkce IndexPrvku, která vyhledá prvek ve vektoru a navrátí jeho index. Tato funkce přijímá dva parametry - prvek, který má být vyhledán a vektor, ve kterém budeme prvek hledat. V tomto případě hledáme index prvku obsahující minimum, proto jako parametr funkce IndexPrvku využijeme návratu funkce MinimumVPoli, která nám poskytne nejmenší prvek vektoru. Stejný přístup využijeme při hledání největšího prvku vektoru pomocí funkce MaximumVPoli.
Uživateli je také v hlavním programu vypsána vypočtená hodnota aritmetického průměru ze všech hodnot ve vektoru. Pro výpočet je volána funkce PrumerPole.
Jednou z posledních operací prováděných s vektorem je jeho vzestupné setřídění prvků pomocí podprogramu SeraditPole. Tato procedura využívá princip algoritmu bublinkového řazení - anglicky "Bubble Sort". V závěru programu je seřazený vektor vypsán jak do řádky, tak i do sloupce - viz Obrázek 4.
Obrázek 4: Hlavní program JednorozmernePole pro plnění, zobrazení a aritmetických operací prováděných s jednorozměrným pole
Pojďme si nyní v dalších podkapitolách popsat podprogramy, které budeme v našem algoritmu JednorozmernePole využívat.
