3. C#

3.3. Dolní a horní mez prvků

Dalšími deklarovanými metodami v regionu Nastavení atributů pole jsou statické metody s celočíselným návratem DolniMez a HorniMez. Metody mohou být volány ve statické metodě Inicializace. Pomocí těchto metod může uživatel nastavit dolní a horní mez prvků matice, tj. minimální a maximální hodnotu, které mohou prvky matice nabývat - viz Obrázek 1.

Naplněné dvourozměrné pole - dolní a horní mez prvků matice

Obrázek 1: Naplněné dvourozměrné pole - dolní a horní mez prvků matice

Metody DolniMez a HorniMez využívají dva formální parametry:

  • minHodnota - představuje hodnotu stávající dolní meze prvků matice
  • maxHodnota - představuje hodnotu stávající horní meze prvků matice
Po provedení výpisu hodnot mezí intervalu přípustných celočíselných hodnot prvků matice je nově načtená hodnota dolní meze v metodě DolniMez uložena do lokální proměnné novaHodnota. Tato hodnota musí být validní, tzn. nesmí překročit stanovenou horní mez uloženou v parametru maxHodnota. Pokud nová hodnota překročí horní mez, je do proměnné novaHodnota přiřazena hodnota horní meze (v takovém případě jsou si horní a dolní mez rovny). Jako další je testována podmínka, zda nová hodnota je jiná než stávající hodnota dolní meze. Pokud ano, je stávající dolní mez uložená v parametru minHodnota přepsána novou hodnotou uložené v proměnné novaHodnota. Je vhodné, aby uživatel byl informován o stávajících hodnotách, proto ještě před přiřazením návratu metody je vypsána hodnota dolní meze prvků matice - viz Kód 1. 

/// <summary>
/// Metoda s celočíselným návratem - návrat dolní meze pro všechny prvky matice
/// </summary>
/// <param name="minHodnota"> dolní mez prvků matice </param>
/// <param name="maxHodnota"> horní mez prvků matice </param>
/// <returns> Dolní mez pro všechny prvky matice </returns>
public static int DolniMez(int minHodnota, int maxHodnota)
{
    // Deklarace: 'novaHodnota' ... nová dolní mez prvků matice
    int novaHodnota;
 
    // Výpis stávající hodnoty dolní meze
    Console.WriteLine("Dolní mez prvků pole: {0} (horní mez = {1})", minHodnota, maxHodnota);
 
    // Výzva k zadání nové dolní meze prvků matice
    Console.Write("Zadejte dolní mez prvků pole: ");
 
    // Načtení nové dolní meze prvků matice
    int.TryParse(Console.ReadLine(), out novaHodnota);
 
    // Pokud nová hodnota dolní meze je větší než horní mez, pak...
    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;
        // Výpis nové redukované dolní meze pro prvky matice
        Console.WriteLine("Redukce dolní meze prvků pole: {0}", novaHodnota);
    }
 
    // Pokud nová dolní mez prvků matice není stejná jako stávající dolní mez prvků matice, pak...
    if (novaHodnota != minHodnota)
    {
        // Přepsání stávající dolní meze prvků matice novou hodnotou
        minHodnota = novaHodnota;
    }
 
    // Návrat metody
    return minHodnota;
}

Kód 1: Deklarace statické metody s celočíselným návratem s názvem DolniMez

Následující 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é matice. 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 matice
/// </summary>
/// <param name="minHodnota"> dolní mez prvků matice </param>
/// <param name="maxHodnota"> horní mez prvků matice </param>
/// <returns> Horní mez pro všechny prvky matice </returns>
static int HorniMez(int minHodnota, int maxHodnota)
{
    // Deklarace: 'novaHodnota' ... nová horní mez prvků matice
    int novaHodnota;
 
    // Výpis stávající hodnoty horní meze
    Console.WriteLine("Horní mez prvků pole: {0} (dolní mez = {1})", maxHodnota, minHodnota);
 
    // Výzva k zadání nové horní meze prvků matice
    Console.Write("Zadejte horní mez prvků pole: ");
 
    // Načtení nové horní meze prvků matice
    int.TryParse(Console.ReadLine(), out novaHodnota);
 
    // Pokud nová hodnota horní meze je menší než dolní mez, pak...
    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;
        // Výpis nové redukované horní meze pro prvky matice
        Console.WriteLine("Redukce horní meze prvků pole: {0}", novaHodnota);
    }
 
    // Pokud nová horní mez prvků matice není stejná jako stávající horní mez prvků matice, pak...
    if (novaHodnota != maxHodnota)
    {
        // Přepsání stávající horní meze prvků matice novou hodnotou
        maxHodnota = novaHodnota;
    }
 
    // Návrat metody
    return maxHodnota;
}

Kód 2: Deklarace statické metody s celočíselným návratem s názvem HorniMez