Dvourozměrné pole - konzole
3. C#
3.2. Rozměr pole
Další metodou umístěnou v regionu Nastavení atributů pole, která navrací uživatelem definovanou velikost pole je metoda RozmerPole - viz Kód 1. Tato metoda může být volána v metodě Inicializace. Metoda přijímá stávající počet prvků v ose, který je uložen do formálního parametru velikost. Dalším formálním parametrem je konstanta Max. Třetím parametrem je text, který určuje, zda uživatel nastavuje počet řádků, nebo počet sloupců matice. V aplikaci Flowgorithm nelze deklarovat konstantu, proto jsme v hlavní metodě pojmenovali konstantu velkým písmenem, abychom ji rozeznali od jiné proměnné, nebo parametru. V metodě jsou deklarována proměnná s názvem novaHodnota, která představuje uživatelem zadanou hodnotu představující novou velikost matice v ose.
Po vypsání stávajícího počtu prvků matice ve vybrané ose (záleží, zda jsme předali z metody Inicializace skutečný parametr pocetRadku, představující počet řádků - vertikální osa, nebo parametr pocetSloupcu reprezentující počet sloupců - horizontální osa) - viz Obrázek 1.

Obrázek 1: Velikost dvourozměrného pole ve vybraných osách
Aby uživatel rozeznal který rozměr matice právě nastavuje, je do třetího parametru z hlavní metody předán text ve formě: "řádků", nebo "sloupců". Tento text je vypsán ve výzvě k určení velikosti pole v ose.
Před načtením nové hodnoty určující počet prvků v ose matice do proměnné novaHodnota je ve výpisu uvedena dolní (1) a horní mez (Max) povoleného celočíselného intervalu, ve kterém se nová hodnota velikosti matice musí pohybovat. Pokud načtená hodnota neodpovídá intervalu, je do proměnné novaHodnota uložena maximální přípustná velikost matice v ose uložená v konstantě Max. Pokud nová hodnota neodpovídá stávající hodnotě velikosti v ose matice uložené v proměnné velikost, je do proměnné velikost přiřazena nově načtená hodnota. Tato proměnná velikost je následně přiřazena návratu metody - viz Kód 1.
/// <summary> /// Metoda s celočíselným návratem - navrací velikost pole v ose /// </summary> /// <param name="velikost"> aktuální velikost matice v ose </param> /// <param name="max"> maximální velikost matice v ose </param> /// <returns> Velikost matice v ose </returns> static int RozmerPole(int velikost, int max, string text) { // Deklarace: 'novaHodnota' ... nová velikost matice v ose int novaHodnota; // Vypsání stávající velikosti matice v ose Console.WriteLine("Stávající počet " + text + " matice {0}:", velikost); // Výzva k zadání velikosti matice v ose Console.Write("Zadejte počet " + text + " matice (1 - {0}): ", max); // Načtení velikosti matice int.TryParse(Console.ReadLine(), out novaHodnota); // Pokud nová hodnota je větší než maximum, nebo menší než 1 ... if ((novaHodnota > max) || (novaHodnota < 1)) { /* Přiřazení maximální velikosti matice do lokální proměnné určující * velikost matice v ose */ novaHodnota = max; // Vypsání nové velikosti matice v ose Console.WriteLine("Redukce počtu " + text + " matice: {0}", novaHodnota); } // Pokud nová velikost matice není stejná jako stávající velikost v ose ... if (novaHodnota != velikost) { // Uložení nové velikosti matice do proměnné velikost = novaHodnota; } // Návrat metody return velikost; }
Kód 1: Deklarace statické metody s celočíselným návratem s názvem RozmerPole