2. Analýza a návrh řešení

Jednorozměrná pole jsme vnímali jako seznam jednotlivých prvků umístěných za sebou, k nimž přistupujeme pomocí indexů. Pole ale může mít více než jednu dimenzi (dimenze značí počet rozměrů - pole mělo jen jednu). Zaměřme se nyní na dvourozměrné pole označované jako matice (dimenze takového pole je tedy rovna 2 - ve vertikální ose matice obsahuje řádky a v horizontální ose obsahuje sloupce). Upozorněme, že prvky matice musí být všechny stejného datového typu.

Dvourozměrné pole si lze představit jako tabulku o řádcích a sloupcích, nebo také jako více jednorozměrných polí uspořádaných za sebou. Pro přístup k jednotlivým prvkům matice je zapotřebí dvou celočíselných indexů - viz Obrázek 1.

  • První celočíselný index pro řádky např. i (index řádky je číslován od 0. Počet řádků matice můžeme označit např. m)
  • Druhý celočíselný index pro sloupce např. j (index sloupce je číslován od 0. Počet sloupců matice můžeme označit např. n)

Podstata dvourozměrného pole - matice (rozměr m × n)

Obrázek 1: Podstata dvourozměrného pole - matice (rozměr m × n)

Pro přístup k hodnotě uložené v prvku matice, nebo k uložení hodnoty do prvku matice (přiřazení hodnoty) využíváme v příkazu název dvourozměrného pole a za ním uvedené uzavřené hranaté závorky s dvěma indexy určující pozici prvku v řádku a sloupci.

Velikost dvourozměrného pole je určena počtem prvků pro jednotlivé osy - ve vertikální ose velikost matice určuje počet řádků a v horizontální ose určuje počet sloupců. Celkový počet prvků dvourozměrné matice je v našem případě m × n prvků. 

Standardně bychom v této kapitole použili pro návrh řešení vývojové diagramy vytvořené v aplikaci Flowgorithm. Protože však tento software zatím nepodporuje použití dvourozměrných polí (tento nedostatek lze obejít skládáním řádků matice za sebou a umístit všechny řádky do jednorozměrného pole, ale tento přístup používat nebudeme), bude řešení implementováno přímo do zdrojového kódu v C#.