Jednorozměrné pole - konzole
3. C#
3.2. Dolní a horní mez prvků
Následující zdrojový kód obsahuje deklaraci metody s celočíselným návratem DolniMez - viz Kód 1. Tato metoda umožňuje uživateli nastavit dolní mez pro hodnoty prvků celočíselného vektoru. Uživatel může změnu odmítnout a stávající dolní mez nastavená v hlavní statické metodě Main tak zůstane platná. Detailní popis podstaty metody byl proveden již v rámci analýzy ve stejnojmenné podkapitole a proto jej není nutné znovu uvádět.
/// <summary> /// Metoda s celočíselným návratem - návrat dolní meze pro všechny prvky vektoru /// </summary> /// <param name="minHodnota"> dolní mez prvků vektoru </param> /// <param name="maxHodnota"> horní mez prvků vektoru </param> /// <returns> Dolní mez pro všechny prvky vektoru </returns> public static int DolniMez(int minHodnota, int maxHodnota) { /* Deklarace: 'novaHodnota' ... nová dolní mez prvků vektoru; 'zmena' ... celočíselná * informace, zda má být provedena změna dolní meze prvků ('0'...Ne, '1'...Ano) */ int novaHodnota, zmena; // Výpis stávající hodnoty dolní meze Console.WriteLine("Dolní mez prvků vektoru: {0}", minHodnota); do { // Výzva ke změně dolní meze Console.Write("Změnit dolní mez prvků vektoru (0...Ne, 1...Ano): "); // Načtení hodnoty do proměnné 'zmena' (informace, zda má dojít ke změně) int.TryParse(Console.ReadLine(), out zmena); // Pokud načtená hodnota není validní, cyklus zadání probíhá znovu } while (zmena < 0 || zmena > 1); // Test, zda má proběhnout změna dolní meze prvků vektoru if (zmena == 1) { // Výzva k zadání nové dolní meze prvků vektoru Console.Write("Zadejte dolní mez prvků vektoru: "); // Načtení nové dolní meze prvků vektoru int.TryParse(Console.ReadLine(), out novaHodnota); // Pokud nová hodnota dolní meze je větší než horní mez ... if (novaHodnota > maxHodnota) { // Přiřazení horní meze do lokální proměnné určující dolní mez (horní a dolní mez budou stejné) novaHodnota = maxHodnota; } // Pokud nová dolní mez vektoru není stejná jako stávající dolní mez prvků vektoru ... if (novaHodnota != minHodnota) { // Přepsání stávající dolní meze prvků pole novou hodnotou minHodnota = novaHodnota; } // Výpis nové dolní meze pro prvky vektoru Console.WriteLine("Dolní mez prvků vektoru: {0}", minHodnota); } // Návrat metody return minHodnota; }
Kód 1: Deklarace statické metody s celočíselným návratem s názvem DolniMez
Další zdrojový kód obsahuje deklaraci metody s celočíselným návratem HorniMez - viz Kód 2. Tato metoda umožňuje uživateli nastavit horní mez pro hodnoty prvků celočíselného vektoru. Princip metody je téměř totožný s předcházející metodou DolniMez.
/// <summary> /// Metoda s celočíselným návratem - návrat horní meze pro všechny prvky vektoru /// </summary> /// <param name="minHodnota"> stávající horní mez prvků vektoru </param> /// <param name="maxHodnota"> horní mez prvků vektoru </param> /// <returns> Horní mez pro všechny prvky vektoru </returns> static int HorniMez(int minHodnota, int maxHodnota) { /* Deklarace: 'novaHodnota' ... nová horní mez prvků vektoru; 'zmena' ... celočíselná * informace, zda má být provedena změna horní meze prvků ('0'...Ne, '1'...Ano) */ int novaHodnota, zmena; // Výpis stávající hodnoty horní meze Console.WriteLine("Horní mez prvků vektoru: {0}", maxHodnota); do { // Výzva ke změně horní meze Console.Write("Změnit horní mez prvků vektoru (0...Ne, 1...Ano): "); // Načtení hodnoty do proměnné 'zmena' (informace, zda má dojít ke změně) int.TryParse(Console.ReadLine(), out zmena); } // Pokud načtená hodnota není validní, cyklus zadání probíhá znovu while ((zmena < 0) || (zmena > 1)); // Test, zda má proběhnout změna horní meze prvků vektoru if (zmena == 1) { // Výzva k zadání nové horní meze prvků vektoru Console.Write("Zadejte horní mez prvků vektoru: "); // Načtení nové horní meze prvků vektoru int.TryParse(Console.ReadLine(), out novaHodnota); // Pokud nová hodnota horní meze je menší než dolní mez ... if (novaHodnota < minHodnota) { // Přiřazení dolní meze do lokální proměnné určující horní mez (horní a dolní mez budou stejné) novaHodnota = minHodnota; } // Pokud nová horní mez vektoru není stejná jako stávající horní mez prvků vektoru ... if (novaHodnota != maxHodnota) { // Přepsání stávající horní meze prvků pole novou hodnotou maxHodnota = novaHodnota; } // Výpis nové horní meze pro prvky vektoru Console.WriteLine("Horní mez prvků vektoru: {0}", maxHodnota); } // Návrat metody return maxHodnota; }
Kód 2: Deklarace statické metody s celočíselným návratem s názvem HorniMez