Dvourozměrné pole - WPF
2. Analýza a návrh řešení
2.3. Operace s polem
Do třetího řádku základní mřížky formuláře (s indexem 2) umístíme další mřížku (Grid). Tuto mřížku rozdělíme do 3 sloupců, které využijeme jako oddělené sekce Plnit, Výstup a Výpočet s jednotlivými tlačítky - viz Obrázek 1.
Do prvního sloupce této vložené mřížky umístíme objekt typu StackPanel. Do tohoto objektu jako první umístíme popisek (Label) "Plnit", který bude tvořit záhlaví sekce. Pod popisek umístíme 3 tlačítka:
- Náhodně - plnění matice prvky, jenž každý obsahuje náhodně vygenerovanou hodnotu na základě rovnoměrného rozdělení v intervalu, jehož dolní mez představuje hodnota, která je načtena z prvního řádku základní mřížky, tj. hodnota vstupního pole Minimum umístěného na formuláři a hodnota horní meze, která je načtena ze vstupního pole Maximum na formuláři
- Jednotlivě - plnění matice na základě hodnoty uvedené ve vstupním poli Hodnota u prvku s definovanou pozicí. Pozice se skládá z indexu řádku a indexu sloupce načtených ze vstupních polí umístěných v objektu GroupBox se záhlavím "Prvek v matici" nacházejícím se vpravo prvním řádku základní mřížky
- Nulovat - plnění matice prvky s hodnotou 0
Do druhého sloupce umístíme objekt typu StackPanel. Do tohoto objektu jako první umístíme popisek (Label) "Výstup", který bude tvořit záhlaví sekce. Pod popisek umístíme 2 tlačítka:
- Jako text - výpis prvků matice. Prvky jsou umístěny do řádků umístěných pod sebou v objektu typu TextBox, kde jednotlivé prvky jsou odděleny čárkou
- Do mřížky - výpis jednotlivých řádků matice umístěných do jednotlivých řádků v objektu typu ListView (jednotlivé prvky jsou odděleny čárkou)
Do třetího sloupce mřížky umístíme objekt typu StackPanel. Do tohoto objektu jako první umístíme popisek (Label) "Výpočet", který bude tvořit záhlaví sekce. Pod popisek umístíme 4 tlačítka:
- Minimum - hledání prvku matice s nejmenší hodnotou, včetně vypsání pozice minima (index řádku a sloupce umístěných v hranatých závorkách)
- Maximum - hledání prvku matice s největší hodnotou, včetně vypsání pozice maxima
- Průměr - výpočet aritmetického průměru ze všech prvků matice
- Seřadit - vzestupné třídění všech prvků matice
- Transpozice - hlavní diagonála - transpozice prvků matice podle hlavní diagonály
- Transpozice - vedlejší diagonála - transpozice prvků matice podle vedlejší diagonály
Formulář bude obsahovat následující objekty (kontrolky), které budou vnořeny následujícím způsobem:
- Grid (třetí řádek základní mřížky formuláře)
- StackPanel
- Grid
- StackPanel
- Label
- Button: BtnNahodne
- Button: BtnJednotlive
- Button: Nulovat
- StackPanel
- Label
- Button: BtnJakoText
- Button: BtnDoMrizky
- StackPanel
- Label
- Button: BtnMinimum
- Button: BtnMaximum
- Button: BtnPrumer
- Button: BtnSeradit
- Button: BtnTranspoziceHlavni
- Button: BtnTranspoziceVedlejsi
- WrapPanel
- Button: BtnKonec
Obrázek 1: Návrh GUI - tlačítka pro operace s polem (DvourozmernePoleWPF)
Formulář bude obsahovat následující prvky - viz Obrázek 2.
Obrázek 2: Návrh GUI - operace s polem - účel jednotlivých objektů v prvním řádku mřížky formuláře (DvourozmernePoleWPF)