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
Peter Lazorik:6.2.2014 17:44

Prosím o kontrolu, je táto aplikácia napísaná dobre z hľadiska OOP?

//trieda
class Fakto
    {
        public ulong vysledok=1;
        public ulong cislo;
        public ulong faktorial()
        {
            for (ulong i = 1; i <= cislo; i++)
                 vysledok *= i;
            return vysledok;
        }
    }


//hlavný program

static void Main(string[] args)
        {
            Fakto faktorial = new Fakto();
            Console.WriteLine("Zadaj číslo");
            faktorial.cislo = ulong.Parse(Console.ReadLine());
            Console.WriteLine(faktorial.faktorial());
            Console.ReadKey();
        }
Odpovědět
6.2.2014 17:44
Naše cnosti a naše vady sú neoddeliteľné ako sila a hmota, keď ich oddelíte človek prestane existovať.
Avatar
Jan Vargovský
Tvůrce
Avatar
 
Nahoru Odpovědět
6.2.2014 17:50
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Peter Lazorik
David Hartinger:6.2.2014 17:54

Na tvé úrovni asi ano, až na ty názvy. Místo Fakto snad Faktorial, místo faktorial() něco jako vypocti(). V praxi se toho dělá hodně jinak, ale tam se dostaneš.

Nahoru Odpovědět
6.2.2014 17:54
You are the greatest project you will ever work on.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Jan Vargovský
David Hartinger:6.2.2014 17:57

Chlape, taková odpověď mu není moc platná, to mu radši nepiš vůbec :P

Nahoru Odpovědět
6.2.2014 17:57
You are the greatest project you will ever work on.
Avatar
Odpovídá na Peter Lazorik
Luboš Běhounek Satik:6.2.2014 18:28

Zkusil jsi ten faktorial nechat vypocitat a vypsat dvakrat po sobe? :)

Nahoru Odpovědět
6.2.2014 18:28
https://www.facebook.com/peasantsandcastles/
Avatar
hanpari
Tvůrce
Avatar
hanpari:6.2.2014 20:43

Proč OOP? Na výpočet faktoriálu ti stačí funkce. I když je objektové programování sexy, tady je to jako jít na mravence s bazukou :) P4koo (mimochodem, kdo to má psát?) má bohužel pravdu.

 
Nahoru Odpovědět
6.2.2014 20:43
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na hanpari
Jan Vargovský:6.2.2014 20:50

Pravdu má sdraco, jen jsem odpověděl na otázku, ale měl jsem říct co je na tom blbě.

 
Nahoru Odpovědět
6.2.2014 20:50
Avatar
hanpari
Tvůrce
Avatar
Odpovídá na Jan Vargovský
hanpari:6.2.2014 22:08

V tom případě co takto?

class Matematika
{

        public static int Faktorial(int cislo)
        {
                int vysledek=1;

                while (cislo>1)
                {
                  vysledek*=cislo;
                  cislo--;
                }

                return vysledek;
        }
}

Z pohledu OOP je důležité, že jde o sdílenou "static" funkci, takže nemusíš vytvářet instanci třídy, když ji chceš použít. Nic chytřejšího mne u faktoriálu nenapadlo, alespoň ne ke vztahu k objektovému programování.

 
Nahoru Odpovědět
6.2.2014 22:08
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na hanpari
Jan Vargovský:6.2.2014 22:30
internal static class Program
{
    [STAThread]
    private static void Main(string[] args)
    {
        for (int i = 1; i < 6; i++)
            Console.WriteLine(i + " " + i.Faktorial());
    }

    private static int Faktorial(this int i)
    {
        return i > 1 ? i * Faktorial(i - 1) : i;
    }
}

Může být?

 
Nahoru Odpovědět
6.2.2014 22:30
Avatar
hanpari
Tvůrce
Avatar
Odpovídá na Jan Vargovský
hanpari:6.2.2014 22:37

Hezké a stručné, ale na můj vkus trochu nesrozumitelné :)
Chvíli jsem na to hleděl, než jsem to rozluštil.

Rozhodně bych takový kód nechtěl potkat bez komentáře :)

 
Nahoru Odpovědět
6.2.2014 22:37
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na hanpari
Jan Vargovský:6.2.2014 22:40

Vždyť tam není co komentovat :)

 
Nahoru Odpovědět
6.2.2014 22:40
Avatar
hanpari
Tvůrce
Avatar
Odpovídá na Jan Vargovský
hanpari:6.2.2014 22:45

To ať posoudí PlTR (ježkovy oči, kdo ty přezdívky má vypisovat!) :)

Ale ne, je to moc pěkné. Určitě zkus checkio, tam se vyžiješ... pokud ti tedy nevadí python.

Musím se přiznat, že já se tady už ztrácím. Teoreticky vím, co jsi napsal, ale já bych to nezopakoval :)

 
Nahoru Odpovědět
6.2.2014 22:45
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na hanpari
Jan Vargovský:6.2.2014 23:04

V pythonu jsem nedělal :)

 
Nahoru Odpovědět
6.2.2014 23:04
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 13 zpráv z 13.