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