Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
gripen wo.cz
Člen
Avatar
gripen wo.cz:29.10.2021 8:36
using System;

namespace A
{
    class Program
    {
        static void Main(string[] args)
        {
            int prvni = 40;
            int druha = 78;
            int treti = 55;
            int pomocna = 9;

            if (prvni >= druha && prvni <= treti)
            {
                Console.WriteLine("Prostřední hodnota je " + prvni);
            }
            if (druha >= prvni && druha <= treti)
            {
                Console.WriteLine("Prostřední hodnota je " + druha);
            }
            if (treti >= druha && treti <= prvni)
            {
                Console.WriteLine("Prostřední hodnota je " + treti);
            }
            Console.WriteLine("Pomocná hodnota je: " + pomocna);
        }
    }
}

Zdravím, tady mi to zase nějak nešlape. Mám tři čísla, a mám určit, které z nich je PROSTŘEDNÍ (pokud mluvíme o velikosti). Z nějakého důvodu se mi na konzoli zobrazí jen ta "Pomocná hodnota: 9"... :hm

 
Odpovědět
29.10.2021 8:36
Avatar
HONZ4
Člen
Avatar
Odpovídá na gripen wo.cz
HONZ4:29.10.2021 15:31

Si to krokuj, když to neumíš posoudit selsky.

int prvni = 40;
int druha = 78;
int treti = 55;
int pomocna = 9;

if (40 >= 78 && 40 <= 55) //false
{
    Console.WriteLine("Prostřední hodnota je " + prvni);
}
if (78 >= 40 && 78 <= 55) //false
{
    Console.WriteLine("Prostřední hodnota je " + druha);
}
if (55 >= 78 && 55 <= 40) //false
{
    Console.WriteLine("Prostřední hodnota je " + treti);
}
Console.WriteLine("Pomocná hodnota je: " + pomocna); //žádná podmínka, takže výpis
 
Nahoru Odpovědět
29.10.2021 15:31
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:29.10.2021 21:42

ty podminky A<x<B muzes psat i takto

A<=x && x<=B
 
Nahoru Odpovědět
29.10.2021 21:42
Avatar
gripen wo.cz
Člen
Avatar
gripen wo.cz:30.10.2021 5:08

Ta pomocná je tam jenom pro odzkoušení, zde nemám blbě Write.Line či něco podobnýho. Zda mi vůbec funguje komunikace mezi uloženými hodnotami a mezi výstupem na konzoli.

PS: tak co by teda bylo nejefektivnější postup? Nějaký pole nebo co? Tak mi teda řekněte, co se mám doučit, a já se to zkusím doučit. Takle se točíme v kruhu. :-|

 
Nahoru Odpovědět
30.10.2021 5:08
Avatar
Jiří Pivec
Člen
Avatar
Odpovídá na gripen wo.cz
Jiří Pivec:5.12.2021 23:25

Ahoj,
těch možností, jak najít prostřední číslo ze tří je víc. Pokud na to půjdeš tak, jak jsi nakousnul v příkladu nahoře, musíš ovšem správně napsat algoritmus. Ten Tvůj je chybný, jak Ti psal HONZ4. Nemohlo se Ti nic vypsat, protože všechny tři podmínky byly false.

Když budeš chtít testovat např. proměnnou druha, tak správně to bude takto:

((prvni < druha && druha < treti) || (treti < druha && druha < prvni))

Stejným způsobem otestuješ ještě jednu proměnnou, např. prvni a ta zbývající treti bude true, pokud ty první dvě budou false.

Takže:

if (kontrola první proměnné)
        Console.WriteLine(první proměnná);
else if (kontrola druhé proměnné)
        Console.WriteLine(druhá proměnná);
else
    Console.WriteLine(třetí proměnná);

Další možnost je pole (array).
Nasypeš ty tři hodnoty do pole, seřadíš použitím metody Sort a vypíšeš hodnotu na prostředním indexu (v případě 3 čísel je prostřední index samozřejmě [1]);

int[] cisla = { prvni, druha, treti };

Array.Sort(cisla);

Console.WriteLine(cisla[1]);

Jinak, když se ptáš, co se doučit....
Tak určitě se nauč ve Visual Studiu používat Debugger, tam bys hned přišel na to, proč Ti ten program nefunguje.

Nahoru Odpovědět
5.12.2021 23:25
„Kdo se umí smát sám sobě, má právo se smát všemu ostatnímu, co mu k smíchu připadá.“ J.W.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.