Diskuze: Pomocná proměnná

C# .NET .NET (C# a Visual Basic) Pomocná proměnná American English version English version

Aktivity (1)
Avatar
Začátečník
Neregistrovaný
Avatar
Začátečník:2.1.2013 17:33

Zdravím,
Potřeboval bych poradit ve škole jsme dostali úkol udělat program, který má najít minimum ze třech čísel přes pomocnou proměnnou, ale tu jsem právě nepochopil nevím jak se vůbec tvoří. prosím poraďte děkuji.

 
Odpovědět 2.1.2013 17:33
Avatar
Kit
Redaktor
Avatar
Odpovídá na Začátečník
Kit:2.1.2013 18:21

A kolik už toho máš hotového?

Nahoru Odpovědět 2.1.2013 18:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Michael Olšavský:2.1.2013 18:31

tak jestli jsem to spravne pochopil, tak si zaloz novou promnenou s nejakou hodnotou a pak napr.: odecti kazde ze zadanych cisel. pak podle hodnoty muzes urcit jake cislo je nejmensi. nebo pouzij nejaky algoritmus trideni. kdyztak tady je odkaz na algoritmus s pouzitim pole: http://www.itnetwork.cz/…axima-v-poli

 
Nahoru Odpovědět 2.1.2013 18:31
Avatar
Začátečník
Neregistrovaný
Avatar
Začátečník:2.1.2013 19:01

Hotové to mám ale jaksi to nefunguje :( pořád nechápu tu pomocnou

double a, b, c,MIN;
            Console.WriteLine("Zapiš 3 libovolné čísla.");
            a = Convert.ToDouble(Console.ReadLine());
            b = Convert.ToDouble(Console.ReadLine());
            c = Convert.ToDouble(Console.ReadLine());
            MIN = a;
            if (MIN < b)
            {
                MIN = b;
            }
            else if (MIN < c)
            {
                MIN = c;

            }
            else
 
Nahoru Odpovědět 2.1.2013 19:01
Avatar
Začátečník
Neregistrovaný
Avatar
Začátečník:2.1.2013 19:02

edit

double a, b, c,MIN;
          Console.WriteLine("Zapiš 3 libovolné čísla.");
          a = Convert.ToDouble(Console.ReadLine());
          b = Convert.ToDouble(Console.ReadLine());
          c = Convert.ToDouble(Console.ReadLine());
          MIN = a;
          if (MIN < b)
          {
              MIN = b;
          }
          else if (MIN < c)
          {
              MIN = c;

          }
          else
          {
              Console.WriteLine("Toto je minimální hodnota" + MIN);
          }
 
Nahoru Odpovědět 2.1.2013 19:02
Avatar
Kit
Redaktor
Avatar
Odpovídá na Začátečník
Kit:2.1.2013 19:06

No vida. Odstraň obě "else" a ty dvě složené závorky na konci.

Nahoru Odpovědět 2.1.2013 19:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Luboš Satik Běhounek:2.1.2013 19:08

To prvni (i druhe) else by tam byt nemelo.

Pomocna promenna je normalni promenna, akorat ji v kodu pouzivas jako pomocnou - nemas v ni ulozeny data, ale treba nejakej mezivysledek - tady momentalni minimum.

Editováno 2.1.2013 19:08
Nahoru Odpovědět 2.1.2013 19:08
:)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Luboš Satik Běhounek
matesax:2.1.2013 19:14

Já bych udělal metodu se vstupem array - tím to bude mnohem jednodušší:

private int Min(int[] numbers)
{
    int result = 0; // pomocná proměnná

    foreach (int item in numbers)
        if (item < result)
            result = item;

    return result;
}
 
Nahoru Odpovědět  +1 2.1.2013 19:14
Avatar
Začátečník
Neregistrovaný
Avatar
Začátečník:2.1.2013 19:32

No dobře a co mám dát místo těch else? Nic? zkoušel jsem ale pořád to nechce nic udělat :(

 
Nahoru Odpovědět 2.1.2013 19:32
Avatar
Kit
Redaktor
Avatar
Odpovídá na Začátečník
Kit:2.1.2013 19:36

Odstraň jen slova else. Zbytek nechej.

Aha, ještě je potřeba obrátit < za >. Přemýšlej u toho.

Nahoru Odpovědět 2.1.2013 19:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Začátečník
matesax:2.1.2013 19:41

Udělej to po mém... Ušetříš si nervy... :) Na datovém typu nezáleží...

 
Nahoru Odpovědět 2.1.2013 19:41
Avatar

Neregistrovaný
Avatar
:2.1.2013 19:45

matesax: to vůbec nechápu to jsme se ještě neučili :`
Kit : co je to <za>?
a když jsem odstranil to co jsi mi řekl tak to zase píše toto:
Only assignment, call, increment, decrement, and new object expressions can be used as a statement

double a, b, c, MIN;
           Console.WriteLine("Zapiš 3 libovolné čísla.");
           a = Convert.ToDouble(Console.ReadLine());
           b = Convert.ToDouble(Console.ReadLine());
           c = Convert.ToDouble(Console.ReadLine());
           MIN = a;
           if (MIN < b)
           {
               MIN = b;
           }
             (MIN < c);
           {
               MIN = c;

           }


               Console.WriteLine("Toto je minimální hodnota" + MIN);


           Console.ReadKey();
 
Nahoru Odpovědět 2.1.2013 19:45
Avatar
Kit
Redaktor
Avatar
Odpovídá na
Kit:2.1.2013 19:49

Psal jsem, že máš smazat "else". Ne "else if". To "if" tam musí zůstat.

Ty podmínky máš prostě obráceně. Myslel jsem si, že nehledáš maximum, ale minimum.

Nahoru Odpovědět 2.1.2013 19:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Začátečník
Neregistrovaný
Avatar
Odpovídá na Kit
Začátečník:2.1.2013 19:55

Aha díky :O ale stejně to nefunguje teď to pro změnu hlásí, že vstupní řetězec nemá správný formát :@

b = Convert.ToDouble(Console.ReadLine());
 
Nahoru Odpovědět 2.1.2013 19:55
Avatar
matesax
Redaktor
Avatar
Odpovídá na Začátečník
matesax:2.1.2013 20:07

Fajn bude po tvém...

Console.WriteLine("Zapiš 3 libovolná čísla. Každé odentruj.");

double
    min = double.Parse(Console.ReadLine()),
    b = double.Parse(Console.ReadLine()),
    c = double.Parse(Console.ReadLine());

if (b < min)
    min = b;

if (c < min)
    min = c;

Vůbec není lepší cyklus...

Editováno 2.1.2013 20:10
 
Nahoru Odpovědět 2.1.2013 20:07
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:2.1.2013 20:11

Tady přece nejde o to, jestli je cyklus lepší nebo ne. Ber to tak, že je to jeho první program a netuší, která bije.

Nahoru Odpovědět 2.1.2013 20:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David
Redaktor
Avatar
David:2.1.2013 20:16
Console.WriteLine("Zapiš tři libovolná celá čísla!");
            int a = Convert.ToInt32(Console.ReadLine());
            int b = Convert.ToInt32(Console.ReadLine());
            int c = Convert.ToInt32(Console.ReadLine());
            int minimum = a;
            int vysledek = 0;
            if (minimum < b)
            {
                if (minimum < c)
                    vysledek = a;
            }
            else
            {
                minimum = b;
                if (minimum < c)
                    vysledek = b;
                else
                    vysledek = c;
            }


            Console.WriteLine("Nejmenší číslo je: {0}", vysledek.ToString());
            Console.ReadKey();
Nahoru Odpovědět 2.1.2013 20:16
Nic néni nemožné!
Avatar
Začátečník
Neregistrovaný
Avatar
Odpovídá na David
Začátečník:2.1.2013 20:25

Tak fakt netuším co dělám za chybu zkopíroval jsem od dave333249
a pořád to nic nedělá a pak to hodí tu chybu že vstupní řetězec nemá správný formát ;(

 
Nahoru Odpovědět 2.1.2013 20:25
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Začátečník
David Čápka:2.1.2013 20:27

Jo, protože je špatně. matesax ti to napsal v 02.01.2013 20:07.

Nahoru Odpovědět 2.1.2013 20:27
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David
Redaktor
Avatar
David:2.1.2013 20:29

nahodu to jede me to fungovalo sem to skusal

Nahoru Odpovědět 2.1.2013 20:29
Nic néni nemožné!
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Začátečník
Petr Nymsa:2.1.2013 20:29

Pošli aktuální kód co máš...

Nahoru Odpovědět 2.1.2013 20:29
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na David
David Čápka:2.1.2013 20:37

Místo Convert se používá Parse a to větvení moc nedává smysl.

Nahoru Odpovědět 2.1.2013 20:37
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Začátečník
matesax:2.1.2013 20:39
    double min, b, c;

    Console.WriteLine("Nyní tě budu postupně vybízet, aby jsi napsal 3 libovolná čísla -

já ti pak napíši, které bylo nejmenší...");

    Console.WriteLine("OK - jsme u prního - až jej zapíšeš - stiskni Enter.");

    min = double.Parse(Console.ReadLine());

    Console.WriteLine("Vlož druhé a opět stiskni Enter.");

    b = double.Parse(Console.ReadLine());

    if (b < min)
        min = b;

    Console.WriteLine("A jsme u posledního - postup znáš... :)");

    c = double.Parse(Console.ReadLine());

    if (c < min)
        min = c;

    Console.WriteLine("Nejmenší číslo je:" + min + ".");
Editováno 2.1.2013 20:42
 
Nahoru Odpovědět  +1 2.1.2013 20:39
Avatar
David
Redaktor
Avatar
David:2.1.2013 20:39

ja vim nepsal sem to zbytecne dluhe(stacilo to zkratit jak to ma matesax sem si toho nevšiml ze to tam uz napsal) ale funguje to taky

Nahoru Odpovědět 2.1.2013 20:39
Nic néni nemožné!
Avatar
Začátečník
Neregistrovaný
Avatar
Začátečník:2.1.2013 20:40

Už jsem na to konečně přišel funguje mi vše. Děkuji všem za pomoc ;)

 
Nahoru Odpovědět 2.1.2013 20:40
Avatar
David
Redaktor
Avatar
David:2.1.2013 20:41

a ten convert su zvykli myslim to tak bylo v knizce Moderni Programovani

Nahoru Odpovědět 2.1.2013 20:41
Nic néni nemožné!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na David
David Čápka:2.1.2013 20:42

Convert je na převádění mezi čísly, z textu se vždy parsuje.

Nahoru Odpovědět 2.1.2013 20:42
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David
Redaktor
Avatar
David:2.1.2013 20:44

aha do příště to už aspon vím

Nahoru Odpovědět 2.1.2013 20:44
Nic néni nemožné!
Avatar
matesax
Redaktor
Avatar
Odpovídá na David
matesax:2.1.2013 20:58

Vlastně nejen čísla - viz. jazyky - ty se také parsují... (Zpracování textu...)

 
Nahoru Odpovědět 2.1.2013 20:58
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 29 zpráv z 29.