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
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
Tvůrce
Avatar
Odpovídá na
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
Tvůrce
Avatar
Odpovídá na
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š Běhounek Satik: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
https://www.facebook.com/peasantsandcastles/
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
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
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
Tvůrce
Avatar
Odpovídá na
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
Tvůrce
Avatar
Odpovídá na
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
Tvůrce
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
Tvůrce
Avatar
Odpovídá na
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
Tvůrce
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
Tvůrce
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 Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger: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
You are the greatest project you will ever work on.
Avatar
David
Tvůrce
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
Tvůrce
Avatar
Odpovídá na
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 Hartinger
Vlastník
Avatar
Odpovídá na David
David Hartinger: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
You are the greatest project you will ever work on.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
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
2.1.2013 20:39
Avatar
David
Tvůrce
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
Tvůrce
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 Hartinger
Vlastník
Avatar
Odpovídá na David
David Hartinger: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
You are the greatest project you will ever work on.
Avatar
David
Tvůrce
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
Tvůrce
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.