Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 2. diel - Prvá objektová aplikácia v C# - Hello object world

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Bruno Schwarzbach:15.3.2017 22:53

Díky za odpověď.

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();
               }
Odpovedať
nothing is impossible and everything is possible
Avatar
Odpovedá na Rado Kofira
Michal Štěpánek:2.3.2018 7:52

No, to jsi OOP asi moc nepochopil...

Odpovedať
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
Odpovedá 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čí!

Odpovedať
nothing is impossible and everything is possible
Avatar
Odpovedá 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í.

Odpovedať
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;
            }

            }
    }
}
Odpovedať
nothing is impossible and everything is possible
Avatar
Odpovedá 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.

Editované
Odpovedať
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 :)

Odpovedať
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.

Avatar
albertpatera
Tvůrce
Avatar
Odpovedá 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 :-)

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 218.