NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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í.

Diskuze – Lekce 2 - První objektová aplikace v C# - Hello object world

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Bruno Schwarzbach:15.3.2017 22:53

Díky za odpověď.

 
Odpovědět
15.3.2017 22:53
Avatar
Rado Kofira
Člen
Avatar
Rado Kofira:1.3.2018 19:46

Ja som sa s kodom ne...al . Pojem Vložiť konzolovú kalkulačku do Objektu som si vysvetlil takto :D ( Nekričte namňa, som hlavne šťastný, že to funguje :D Myslel som, že mám vložiť úplne všetko :D )

static void Main(string[] args)
       {


           Kalkulacka kalkulacka = new Kalkulacka();

           Kalkulacka.Pocitaj();


       }
       class Kalkulacka
       {
           public static void Pocitaj()
           {
               Console.WriteLine("Vítejte v kalkulačce");
               bool pokracovat = true;
               while (pokracovat)
               {
                   // načtení čísel

                   Console.WriteLine("Zadejte první číslo:");
                   float a;
                   while (!float.TryParse(Console.ReadLine(), out a))
                       Console.WriteLine("Neplatné číslo, zadejte prosím znovu:");
                   Console.WriteLine("Zadejte druhé číslo:");
                   float b;
                   while (!float.TryParse(Console.ReadLine(), out b))
                       Console.WriteLine("Neplatné číslo, zadejte prosím znovu:");
                   // volba operace a výpočet
                   Console.WriteLine("Zvolte si operaci:");
                   Console.WriteLine("1 - sčítání");
                   Console.WriteLine("2 - odčítání");
                   Console.WriteLine("3 - násobení");
                   Console.WriteLine("4 - dělení");
                   char volba = Console.ReadKey().KeyChar;
                   Console.WriteLine();
                   float vysledek = 0;
                   bool platnaVolba = true;
                   switch (volba)
                   {
                       case '1':
                           vysledek = a + b;
                           break;
                       case '2':
                           vysledek = a - b;
                           break;
                       case '3':
                           vysledek = a * b;
                           break;
                       case '4':
                           vysledek = a / b;
                           break;
                       default:
                           platnaVolba = false;
                           break;
                   }
                   if (platnaVolba)
                       Console.WriteLine("Výsledek: {0}", vysledek);
                   else
                       Console.WriteLine("Neplatná volba");
                   Console.WriteLine("Přejete si zadat další příklad? [a/n]");
                   // dotaz na pokračování
                   platnaVolba = false;
                   while (!platnaVolba)
                   {
                       switch (Console.ReadKey().KeyChar.ToString().ToLower())
                       {
                           case "a":
                               pokracovat = true;
                               platnaVolba = true;
                               break;
                           case "n":
                               pokracovat = false;
                               platnaVolba = true;
                               break;
                           default:
                               Console.WriteLine("Neplatná volba, zadejte prosím a/n");
                               break;
                       }
                   }
                   Console.WriteLine();
               }
Odpovědět
1.3.2018 19:46
nothing is impossible and everything is possible
Avatar
Odpovídá na Rado Kofira
Michal Štěpánek:2.3.2018 7:52

No, to jsi OOP asi moc nepochopil...

Odpovědět
2.3.2018 7:52
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Rado Kofira
Člen
Avatar
Odpovídá na Michal Štěpánek
Rado Kofira:2.3.2018 9:23

No ja som práve myslel, že sa to myslelo týmto spôsobom :D skúsim to znova, chybami sa človek učí!

Odpovědět
2.3.2018 9:23
nothing is impossible and everything is possible
Avatar
Odpovídá na Rado Kofira
Michal Štěpánek:2.3.2018 9:28

OOP je o tom, že uživatelskému rozhraní - UI - (ať už je to konsole, nebo nějaké grafické zobrazení WPF nebo WF) je úplně jedno, kdo mu předá data k zobrazení. Uživatel zadá nějaký vstup, ten se pošle do nějaké třídy, třída to spočítá a výstup pak předá uživateli v tom UI.
Takhle jsi to namastil všechno dohromady...
Obecně s nadsázkou lze říct, že UI musí být jedno, kde vezme data a třídě zase musí být jedno, jak se ta data zobrazují.

Odpovědět
2.3.2018 9:28
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Rado Kofira
Člen
Avatar
Rado Kofira:14.3.2018 14:32

Okej ! takže som to prerobil trochu.

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Vitaj v kalkulacke");
            Kalkulacka kalkulacka= new Kalkulacka();
            Console.WriteLine("Zvolte si operaci:");
            Console.WriteLine("1 - sčítání");
            Console.WriteLine("2 - odčítání");
            Console.WriteLine("3 - násobení");
            Console.WriteLine("4 - dělení");
            int volba = int.Parse(Console.ReadLine());
            switch (volba)
            {
                case 1:Console.WriteLine(kalkulacka.Scitanie());
                    break;
                case 2:Console.WriteLine(kalkulacka.Odcitanie());
                    break;
                case 3:Console.WriteLine(kalkulacka.Nasobenie());
                    break;
                case 4:Console.WriteLine(kalkulacka.Delenie());
                    break;
            }
            Console.ReadKey();


        }
        class Kalkulacka
            {

            public float Scitanie()
            {
                Console.WriteLine("Zadaj A");
                float a = float.Parse(Console.ReadLine());
                Console.WriteLine("Zadaj B");
                float b = float.Parse(Console.ReadLine());
                return a + b;


            }
            public float Odcitanie()
            {
                Console.WriteLine("Zadaj A");
                float a = float.Parse(Console.ReadLine());
                Console.WriteLine("Zadaj B");
                float b = float.Parse(Console.ReadLine());
                return a - b;
            }
            public float Nasobenie()
            {
                Console.WriteLine("Zadaj A");
                float a = float.Parse(Console.ReadLine());
                Console.WriteLine("Zadaj B");
                float b = float.Parse(Console.ReadLine());
                return a * b;
            }
            public float Delenie()
            {
                Console.WriteLine("Zadaj A");
                float a = float.Parse(Console.ReadLine());
                Console.WriteLine("Zadaj B");
                float b = float.Parse(Console.ReadLine());
                return a / b;
            }

            }
    }
}
Odpovědět
14.3.2018 14:32
nothing is impossible and everything is possible
Avatar
Odpovídá na Rado Kofira
Michal Štěpánek:14.3.2018 15:54

Je to lepší, ale pořád je to nějak divně. Vstupy od uživatele bys měl zadávat té "konzoli" a ne třídě. Třídě bys to měl poslat pomocí parametru metody...

static void Main(string[] args)
        {
            Console.WriteLine("Vitaj v kalkulacke");
            Kalkulacka kalkulacka= new Kalkulacka();
            Console.WriteLine("Zadaj A");
            float a = float.Parse(Console.ReadLine());
            Console.WriteLine("Zadaj B");
            float b = float.Parse(Console.ReadLine());
            Console.WriteLine("Zvolte si operaci:");
            Console.WriteLine("1 - sčítání");
            Console.WriteLine("2 - odčítání");
            Console.WriteLine("3 - násobení");
            Console.WriteLine("4 - dělení");
            int volba = int.Parse(Console.ReadLine());
            switch (volba)
            {
                case 1:Console.WriteLine(kalkulacka.Scitanie(a,b));
                    break;
...
class Kalkulacka
            {

            public float Scitanie(float a, float b)
            {
                return a + b;
            }
...

...a samozřejmě ošetřit, aby vstupy byly skutečně číslo.

Editováno 14.3.2018 15:55
Odpovědět
14.3.2018 15:54
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Rado Kofira
Člen
Avatar
Rado Kofira:14.3.2018 16:27

Dikes :) Chystám sa na výšku a keďže tam C# a OOP je, tak využijem ten čas ktorý ešte mám, a naučím sa koľko môžem :)

Odpovědět
14.3.2018 16:27
nothing is impossible and everything is possible
Avatar
Jakub Ondrák:1.4.2018 15:59

Ahoj, potřeboval bych poradit, proč se mi nenačítají komentáře, přestože jsem je do zdraviče doplnil?

Zdravic.cs:

namespace HelloObjects
{
    /// <summary>
    /// Třída reprezentuje zdravič, jež pozdraví uživatele
    /// </summary>
    class Zdravic
    {
        /// <summary>
        /// Text pozdravu
        /// </summary>
        public string text;

        /// <summary>
        /// Pozdraví uživatele s textem pozdravu a jeho jménem
        /// </summary>
        /// <param name="jmeno">jméno uživatele</param>
        /// <returns>text a jméno uživatele</returns>
        public string Pozdrav(string jmeno)
        {
            return string.Format("{0} {1}", text, jmeno);
        }
    }

Obrázek přiložen.

 
Odpovědět
1.4.2018 15:59
Avatar
albertpatera
Tvůrce
Avatar
Odpovídá na Jakub Ondrák
albertpatera:1.4.2018 16:13

Ahoj,

komentáře se na ve finálním programu zobrazovat nemají. Slouží jenom jako takový popis kódu, například dokumentace dané funkce (jaké má parametry, co vrací, popř. jestli je využita externí knihovna). Když po tobě přijde jiný programátor, tak se rychleji může zorientovat v kódu, například :-)

 
Odpovědět
1.4.2018 16:13
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 10 zpráv z 216.