Avatar
Зайчик
Člen
Avatar
Зайчик:13.5.2013 17:55

hoj jeden týpek mi poslal zdrojový kód protože maturuje z programování a chtěl pomoct, pote co jsem viděl ukázkový zdrojový kód od jeho UČITELE programování jsem ho poslal do .... :) no nic přeju hodně smíchu při čtení kódu.

-> kousíček z konverzace :) fascinující že někdo takový maturuje z programování. (Napsal jsem mu srovnání jmen podle abecedy ta hrůza přišla až potom)

on : už to máš?
já : jo
on : pošli zdroják :)
já : Program.cs -> soubor byl úspěšně odeslán
on : co je to public void?:)
já : si snad děláš pr*el ne?
on : to je něco jako read line ne?
já : ...

a teď už slíbený zdroják

using System;

namespace Soustava_dvou_rovnic
{
  class Program
  {
    public static void Main(string[] args)
    {
        Console.Title = "Řešení soustavy dvou rovnic";

//Vstup hodnot koeficientů - program řeší i varianty s nulou zadanou za a1, za a2

Zadani:
   Console.WriteLine("");
   Console.Write(" Zadej koeficienty 1. rovnice: a1 = ");
   double a1 = Convert.ToDouble(Console.ReadLine());
   Console.Write("                               b1 = ");
   double b1 = Convert.ToDouble(Console.ReadLine());
   Console.Write("                               c1 = ");
   double c1 = Convert.ToDouble(Console.ReadLine());
   Console.WriteLine("");
   Console.Write(" Zadej koeficienty 2. rovnice: a2 = ");
   double a2 = Convert.ToDouble(Console.ReadLine());
   Console.Write("                               b2 = ");
   double b2 = Convert.ToDouble(Console.ReadLine());
   Console.Write("                               c2 = ");
   double c2 = Convert.ToDouble(Console.ReadLine());
   Console.WriteLine("");Console.WriteLine("");
   Console.WriteLine("---------------------------------------------------");
   Console.WriteLine("");

/Výpis soustavy rovnic
   double x;
   double y;

if (b1<0)
   Console.WriteLine("           {0,3} x  - {1,2} y  =  {2,2}", a1, -b1, c1);
else
   Console.WriteLine("           {0,3} x  + {1,2} y  =  {2,2}", a1, b1, c1);

if (b2<0)
   Console.WriteLine("           {0,3} x  - {1,2} y  =  {2,2}", a2, -b2, c2);
else
   Console.WriteLine("           {0,3} x  + {1,2} y  =  {2,2}", a2, b2, c2);

   Console.WriteLine("          ________________________");

//Řešení pro a1 = 0 - proměnná y

if (a1 == 0)
{
   Console.WriteLine("                    {0,2} y  =  {1,2}", b1, c1);
   Console.WriteLine("                       y  =  {0,2:F2}", c1/b1);
   Console.WriteLine("                     ===============");

   y = c1 / b1;

 //Řešení pro a1 = 0 - proměnná x

   Console.WriteLine(""); Console.WriteLine("");

 if (b2 < 0)
    Console.WriteLine("           {0,3} x  - {1,2} y  =  {2,2}", a2, -b2, c2);
 else
    Console.WriteLine("           {0,3} x  + {1,2} y  =  {2,2}", a2, b2, c2);

 if (b2 * y < 0)
    Console.WriteLine("           {0,3} x  -  {1,2:F2} =  {2,2}", a2, -b2 * y, c2);
 else
    Console.WriteLine("           {0,3} x  +  {1,2:F2} =  {2,2}", a2, b2 * y, c2);

    Console.WriteLine("                   {0,3} x  =  {1,2:F2}", a2, c2 - b2 * y)
    Console.WriteLine("                       x  =  {0,2:F2}", (c2 - b2 * y) / a2);
    Console.WriteLine("                     ===============");

    x = (c2 - b2 * y) / a2;

    Console.WriteLine(""); Console.WriteLine("");

goto Vysledek;

//Řešení pro a1 = 0 - proměnná y

if (a2 == 0)
 {
   Console.WriteLine("                    {0,2} y  =  {1,2}", b2, c2);
   Console.WriteLine("                       y  =  {0,2:F2}", c2/b2);
   Console.WriteLine("                     ===============");

   y = c2 / b2;

//Řešení pro a1 = 0 - proměnná x

   Console.WriteLine(""); Console.WriteLine("");

   if (b1 < 0)
      Console.WriteLine("           {0,3} x  - {1,2} y  =  {2,2}", a1, -b1, c1);
   else
      Console.WriteLine("           {0,3} x  + {1,2} y  =  {2,2}", a1, b1, c1);

   if (b1 * y < 0)
      Console.WriteLine("           {0,3} x  -  {1,2:F2} =  {2,2}", a1, -b1 * y, c1);
   else
      Console.WriteLine("           {0,3} x  +  {1,2:F2} =  {2,2}", a1, b1 * y, c1);

      Console.WriteLine("                   {0,3} x  =  {1,2:F2}", a1, c1 - b1 * y);
      Console.WriteLine("                       x  =  {0,2:F2}", (c1 - b1 * y) / a1);
      Console.WriteLine("                     ===============");

      x = (c1 - b1 * y) / a1;

      Console.WriteLine(""); Console.WriteLine("");
      goto Vysledek;
 }


// - proměnná y

if (a2*b1 < 0)
   Console.WriteLine("           {0,3} x  - {1,2} y  =  {2,2}", a1 * a2, -a2 * b1, a2 * c1);
else
   Console.WriteLine("           {0,3} x  + {1,2} y  =  {2,2}", a1 * a2, a2 * b1, a2 * c1);

if (-a1*b2 < 0)
   Console.WriteLine("           {0,3} x  - {1,2} y  =  {2,2}", -a1 * a2, -(-a1 * b2), -a1 * c2);
else
   Console.WriteLine("           {0,3} x  + {1,2} y  =  {2,2}", -a1 * a2, -a1 * b2, -a1 * c2);

   Console.WriteLine("          ________________________");

   Console.WriteLine("                    {0,2} y  =  {1,2}", a2 * b1 - a1 * b2, a2 * c1 - a1 * c2);
   Console.WriteLine("                       y  =  {0,2:F2}", (a2 * c1 - a1 * c2)/(a2 * b1 - a1 * b2));
   Console.WriteLine("                     ===============");

   y = (a2 * c1 - a1 * c2) / (a2 * b1 - a1 * b2);

//proměnná x
   Console.WriteLine(""); Console.WriteLine("");

if (b1 < 0)
   Console.WriteLine("           {0,3} x  - {1,2} y  =  {2,2}", a1, -b1, c1);
else
   Console.WriteLine("           {0,3} x  + {1,2} y  =  {2,2}", a1, b1, c1);

if (b1*y < 0)
   Console.WriteLine("           {0,3} x  -  {1,2:F2} =  {2,2}", a1, -b1 * y, c1);
else
   Console.WriteLine("           {0,3} x  +  {1,2:F2} =  {2,2}", a1, b1 * y, c1);
   Console.WriteLine("                   {0,3} x  =  {1,2:F2}", a1 , c1 - b1 * y);
   Console.WriteLine("                       x  =  {0,2:F2}", (c1 - b1 * y) / a1);
   Console.WriteLine("                     ===============");

   x = (c1 - b1 * y) / a1;

   Console.WriteLine(""); Console.WriteLine("");

Vysledek:

//Výpis výsledku

   Console.Write("                 ");
   Console.BackgroundColor = ConsoleColor.Cyan;
   Console.WriteLine(" [x; y] = [{0,2:F2}; {1,2:F2}] ",x , y);

//Nové zadání příkladu

   Console.ResetColor();
   Console.WriteLine(""); Console.WriteLine("");

   Console.Write("   Nové zadání? a/n: ");

   string a = Console.ReadLine();

if (a == "a")
 {
   Console.Clear();
   goto Zadani;
 }

   Console.ReadKey(true);

    }
  }
}
Odpovědět  +2 13.5.2013 17:55
Коммунизм для нашего будущего!
Avatar
Michal Žůrek (misaz):13.5.2013 17:59

Já jsem to nebyl...

Nicméně i to je na mě moc. A vím co zanamená public void.

ALe zajímavé. Doufám že na učitele, který nevysvětlí ani public void na školách nenarazím.

Nahoru Odpovědět 13.5.2013 17:59
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Зайчик
David Čápka:13.5.2013 18:03

Njn, české státní školy :D

Nahoru Odpovědět 13.5.2013 18:03
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
Зайчик
Člen
Avatar
Odpovídá na David Čápka
Зайчик:13.5.2013 18:04

A já blbec nadávám na našeho učitele, který nerad používá enum. :D Díky bohu za něj.

Nahoru Odpovědět 13.5.2013 18:04
Коммунизм для нашего будущего!
Avatar
Michal Žůrek (misaz):13.5.2013 18:12

Já sem rád že máme devbook, můžu se tu doučit co nevím. Jen doufám že pak na střední nebudu chytřejší než učitel :D

Enum, neEnum podle mě má nějaké nevýhody (minimálně v javě, mi něco nešlo), jinak je samozřejmě využitelný v hodně případech a (i když nějaké ty mouchy podle mě má) ho používám celkem často.

Nahoru Odpovědět 13.5.2013 18:12
Nesnáším {}, proto se jim vyhýbám.
Avatar
Зайчик
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
Зайчик:13.5.2013 18:14

já o žádných mouchách nevím :D teď si šlápnul do bláta :D jaký má mouchy? Kor v javě? :D

Nahoru Odpovědět  +1 13.5.2013 18:14
Коммунизм для нашего будущего!
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Jiří Gracík:13.5.2013 18:16

Když enum použiješ k tomu, k čemu slouží tak podle mě žádné nevýhody nemá, zkus nějaké jmenovat :)

Nahoru Odpovědět 13.5.2013 18:16
Creating websites is awesome till you see the result in another browser ...
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Зайчик
Jiří Gracík:13.5.2013 18:16

sakra, byl jsi rychlejší :D

Nahoru Odpovědět  +1 13.5.2013 18:16
Creating websites is awesome till you see the result in another browser ...
Avatar
Michal Žůrek (misaz):13.5.2013 18:47

Nevím proč, ale nějak mi to nešlo naparsrovat ze stringu, něco se mu na tom nelíbilo.

public static void main(String[] args) {
        neco n = neco.necoval1;
        neco nn = "necoval3";
}
enum neco
{
        necoval1,
        necoval2,
        necoval3
}

u neco nn se něco javě nelíbí :(

Nahoru Odpovědět 13.5.2013 18:47
Nesnáším {}, proto se jim vyhýbám.
Avatar
Homo
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
Homo:13.5.2013 18:51

To je jasny ze se ji neco nelibi, kdyz tragede do enumu cpes String :-D

Nahoru Odpovědět 13.5.2013 18:51
1010011 1000101 1011000
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Зайчик
Honza Bittner:13.5.2013 19:18

Ti vážně napsal maturant "co je to public void ?:)"

Tak to je síla :)

Nahoru Odpovědět 13.5.2013 19:18
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
Odpovídá na Homo
Michal Žůrek (misaz):13.5.2013 19:21

jistě a řešení?

Nahoru Odpovědět 13.5.2013 19:21
Nesnáším {}, proto se jim vyhýbám.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Зайчик
Petr Nymsa:13.5.2013 19:23

Fajn, na zdejší škole bych měl odmaturováno úspěšně asi ve třetím měsíci prváku :D... ach ano, státní školy :) , jsem rád že na ní nechodím

Nahoru Odpovědět 13.5.2013 19:23
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Petr Nymsa
Honza Bittner:13.5.2013 19:24

No ... bohužel někdo nemá tu příležitost :)

Nahoru Odpovědět 13.5.2013 19:24
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Petr Nymsa:13.5.2013 19:25

Myslím že v Javě by to mělo být stejný, ale nevím to jistě, přiřadíš mu prostě enum ;) tj neco.neconova3

Nahoru Odpovědět 13.5.2013 19:25
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Homo
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
Homo:13.5.2013 19:27

Reseni si musis napsat. Priklad z jednoho meho zdrojaku:

public static enum Repeat{
        NONE, DAILY, MONTHLY, YEARLY;

        public static Repeat getRepeat(String repeat){
            switch (repeat) {
                case "Daily":
                    return DAILY;
                case "Monthly":
                    return MONTHLY;
                case "Yearly":
                    return YEARLY;
                default:
                    return NONE;
            }
        }

        public String toString(){
            switch (this) {
                case DAILY:
                    return "Daily";
                case MONTHLY:
                    return "Monthly";
                case YEARLY:
                    return "Yearly";
                default:
                    return "NONE";
            }
        }
    }

Pak staci jen:

Repeat r = Repeat.getRepeat("Daily");
Nahoru Odpovědět 13.5.2013 19:27
1010011 1000101 1011000
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Honza Bittner
Petr Nymsa:13.5.2013 19:30

Jasný a já to beru :) Netvrdím že všechny školy jsou na tom špatně, naopak jsou i dobré STÁTNÍ ! školy, bohužel te´d každá druhá škola si cpe i obor IT a pak to takhle vypadá. Viděl jsem školu, která byla číšník / kuchař a měla i obor Ekologie a informační technologie, to potom o něčem vypovídá ;). Ale když se jde na školu, která se zaměřuje na IT + Stroje jak je běžné, myslím že to bude celkem fajn :)

Nahoru Odpovědět  +2 13.5.2013 19:30
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Зайчик
Člen
Avatar
Odpovídá na Honza Bittner
Зайчик:13.5.2013 19:38

vážně :) no ... od severních Čech radši ruce pryč ;)

Nahoru Odpovědět 13.5.2013 19:38
Коммунизм для нашего будущего!
Avatar
Odpovídá na Petr Nymsa
Lukáš Hruda (Luckin):13.5.2013 19:49

Všeobecně jsou na tom soukromé školy mnohem hůře než státní. Jsou výjimky a pokud navštěvuješ jednu z nich, tak ti to přeji, ale 90% soukromým školám jde jenom o zisk, nechají tě projít za nic, hlavně že platíš, co na tom žes ve škole byl 3x za pololetí, a nenaučí tě vůbec nic.
Jinak u náš na škole taky maturujeme z programování, ale jenom teorie, třičtvrtě třídy neví jak deklarovat proměnnou. I když to je asi tím, že jsem zaměřeni hlavně na sítě, u těch máme i praktickou část a obávám se, že to nebude sranda :D

 
Nahoru Odpovědět  +2 13.5.2013 19:49
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Petr Nymsa:13.5.2013 19:55

Čekal sjem tento dotaz nebo spíše komentář na otázku soukromá škola a maturita v kapse. A ano máš zcela pravdu a ano jsem na škole která je vyjímkou :). Máme zde mnoho skvělých učitelů, kteří učí nejen C#javau,C,C++ ale i Assemblery a spoustu jiných. Špičkové vybavení také, velmi dobré učitele na sítě, jak jsem psal dřív, naše škola je jedním ze školících center CCNA, máme tedy akreditované intruktory. Když nechceš u nás na škole dělat, naučíš se víc než na jiných a když se naučíš projdeš, když en, neprojdeš :). Je to klasická škola, která ti dává hromadu příležitostí. Škola hodně silně spolupracuje s Microsoftem, nesutálé nabídky od firem, soutěže ... ale dost, prostě se školou jsem hodně spokojený a asi jeden z mála do školy i rád chodím :)

Nahoru Odpovědět 13.5.2013 19:55
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:13.5.2013 20:04

Btw "Když nechceš u nás na škole dělat, naučíš se víc než na jiných a když se naučíš projdeš, když en, neprojdeš" jsem napsal špatně ! :D ... když sám nebudeš dělat něco navíc, naučíš se i tak spoustu ale nebudeš v tom až tak dobrý, známe to všichni. A je to škola, kde prostě také záleží jestli umíš nebo ne. Platíme za vzdělání, vybavení ne za maturitu :)

Nahoru Odpovědět 13.5.2013 20:04
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Lukáš Hruda (Luckin):13.5.2013 20:06

Já chodím na státní školu (nebo spíše chodil), Cisco tu máme taky a naučil jsem se toho tu o sítích opravdu hodně. Programování tu máme sice taky jako plnohodnotný předmět, ale nenaučil jsem se na něm vůbec nic, všechno co umím jsem se nějak naučil sám.

 
Nahoru Odpovědět 13.5.2013 20:06
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Lukáš Hruda (Luckin)
TomBen:13.5.2013 20:07

Problém je obvykle v tom, že se ke vzdělání přistupuje jako k povinnosti.
Všichni to chápou jako vstupenku a jak si ji seženeš se jeví vedlejším.
Dokonce to vypadá, že kdo něco získá bezpracně je vlastně ten lepší.
Chce to méně studentů a více pracantů. Pak úroveň studia může alespoň
potenciálně vzrůst. Momentálně nemůže, protože čistě selskou logikou
by mohlo každému dojít, že se nedá třicet demotivovaných lidí něco
násilím naučit, když de facto nechtějí. A to se týká jakýchkoli škol,
které z libovolného důvodu dopustí velký počet studentů.

Nahoru Odpovědět  +4 13.5.2013 20:07
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na TomBen
Honza Bittner:13.5.2013 20:24

Přesně tak :) ...

Nahoru Odpovědět 13.5.2013 20:24
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
Odpovídá na TomBen
Lukáš Hruda (Luckin):13.5.2013 20:26

Velký počet studentů je proto, že maturita (či výuční list) je dnes považována za samozřejmost, bez které je v podstatě nemožné si najít slušnou práci. Lidé v podstatě nemají jinou možnost než studovat, ať už cokoliv, jen aby měli ten papír, protože bez něj jsou nic. Je jim jedno jak se k němu dostanou a jestli se při tom něco naučí. Podle mě za to můžou hloupé požadavky zaměstnavatelů. Vždyť už i bakalář je dnes v některých oborech samozřejmost. Přitom nějaký papír vůbec nevypovídá o tom co člověk umí.

 
Nahoru Odpovědět  +2 13.5.2013 20:26
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Lukáš Hruda (Luckin)
TomBen:13.5.2013 20:43

Tohle neštěstí mají z větší části na svědomí nadnárodní firmy s jejich
personalistickými metodami zaměřenými na vytěžení talentů.
Školství reaguje na jejich výběrová řízení a požadavky lacinějším
poskytováním potřebných papírů a pak je problém najít pekaře, který
se učil péct chleba a opravdu pak peče chleba. Fakt nestojím o to,
aby uměl derivovat, když neumí kůrku do křupava.

Nahoru Odpovědět  +2 13.5.2013 20:43
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Odpovídá na TomBen
Lukáš Hruda (Luckin):13.5.2013 20:53

To je pravda. Spousta firem sice raději přijme někoho kdo má praxi než někoho kdo má titul, jenže k tomu abys získal praxi stejnak musíš nejdřív mít ten titul, aby tě někde vzali a tam jsi tu praxi získal. Školy dnes praxi už v podstatě vůbec neposkytují.

 
Nahoru Odpovědět 13.5.2013 20:53
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukáš Hruda (Luckin)
David Čápka:13.5.2013 20:54

Než firma někoho přijme, vezme si ho na kobereček a zeptá se ho na spoustu pojmů. Titul nikoho nezajímá a nepotřebuješ ho ani k získání praxe.

Editováno 13.5.2013 20:54
Nahoru Odpovědět  +2 13.5.2013 20:54
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
Odpovídá na David Čápka
Lukáš Hruda (Luckin):13.5.2013 21:02

Ale spousta firem má titul uvedený jako požadavek. Většinou tam mají třeba buďto bakalář v určitém oboru nebo 2 roky praxe a podobně...

 
Nahoru Odpovědět 13.5.2013 21:02
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:13.5.2013 21:03

Jo, nejvíc je zajímalo kde bydlím. Teprve potom jsem se dostal
k člověku, který kladl odborné otázky. Bez praxe nebo titulu
pravděpodobně na odborné otázky ani nedojde. :-)

Nahoru Odpovědět 13.5.2013 21:03
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Drahomír Hanák:13.5.2013 21:03

My teď náhodou máme praxe. Je to dobrá věc, ale spousta lidí bude jen klikat tabulky v excelu. Když něco umíš, praxi si uděláš i bez titulu ;)

 
Nahoru Odpovědět  +1 13.5.2013 21:03
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukáš Hruda (Luckin)
David Čápka:13.5.2013 21:08

V Česku chybí IT pracovní síla, firmy si mohou těžko diktovat a pokud to některé nedochází, tak má smůlu. VŠ má každá lama co dělá v Excelu, nic to neznamená.

Nahoru Odpovědět 13.5.2013 21:08
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
TomBen
Redaktor
Avatar
Odpovídá na Lukáš Hruda (Luckin)
TomBen:13.5.2013 21:09

Jo a to je taky vtipné. Požadavky v inzerátech. :D
Aby náhodou nebyl personalista nařčen, že pouští do firmy neumětely,
vypisuje do požadavků cokoli, co kde zaslechl. Ono to přece nebude
na škodu, že..
Proto má mnohem větší šanci člověk drzý, než člověk šikovný.

Nahoru Odpovědět  +1 13.5.2013 21:09
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Homo
David Čápka:13.5.2013 21:18

Teda... proč to neuděláš přes konstruktor? 8|

Nahoru Odpovědět 13.5.2013 21:18
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 Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:13.5.2013 21:19

Ano, všechno umím, všechno znám určitě bude fungovat :D

Nahoru Odpovědět  +1 13.5.2013 21:19
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
Homo
Člen
Avatar
Odpovídá na David Čápka
Homo:13.5.2013 21:20

Jak to myslis? :-)

Nahoru Odpovědět 13.5.2013 21:20
1010011 1000101 1011000
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Homo
David Čápka:13.5.2013 21:27

Psal jsem o tom v tutoriálu: http://www.itnetwork.cz/…-a-konstanty

public enum StavObjednavky {
    Nova ("Nová objednávka"),
    Prijata ("Objednávka byla přijata ke zpracování"),
    Potvrzena ("Objednávka byla potvrzena"),
    Dokoncena ("Zboží bylo expedováno");

    private String text;

    StavObjednavky(String text)
    {
        this.text = text;
    }

    @Override
    public String toString()
    {
        return text;
    }
}
Nahoru Odpovědět 13.5.2013 21: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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Homo
David Čápka:13.5.2013 21:28

Kdykoli vidím u někoho použít switch, tak je to špatně. Některé konstrukce bych pro jistotu z jazyka vyndal. Ale lidé si asi stejně vždycky najdou cestu jak použít něco špatně.

Nahoru Odpovědět  +1 13.5.2013 21:28
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
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:13.5.2013 21:33

Co je až tak špatného na switchi ? Pokud mám třeba dejme tomu 6 stavů, raději si napíš swtich, přijde mi přehlednější než if,else if :)

Nahoru Odpovědět  +1 13.5.2013 21:33
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na David Čápka
Lukáš Hruda (Luckin):13.5.2013 21:33

Switch je dobrá věc, ten bych nevyndaval :D

 
Nahoru Odpovědět  +1 13.5.2013 21:33
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Petr Nymsa:13.5.2013 21:39

Na druhou stranu, můžeme použít hub :D a nebo se rovnou píchneme na router ne ? Internet na směny :D

Nahoru Odpovědět 13.5.2013 21:39
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Lukáš Hruda (Luckin):13.5.2013 21:44

Hub místo switche? Kde to žiješ, 100 let za opicema? :D

 
Nahoru Odpovědět 13.5.2013 21:44
Avatar
Homo
Člen
Avatar
Odpovídá na David Čápka
Homo:13.5.2013 21:47

Jo to me napadlo taky, jenze tu nejdulezitejsi cast to neresi kvuli ktere jsem sem daval ten kod.

public static Repeat getRepeat(String repeat){
             switch (repeat) {
                 case "Daily":
                     return DAILY;
                 case "Monthly":
                     return MONTHLY;
                 case "Yearly":
                     return YEARLY;
                 default:
                     return NONE;
             }
         }
Nahoru Odpovědět 13.5.2013 21:47
1010011 1000101 1011000
Avatar
Petr Nymsa
Redaktor
Avatar
Nahoru Odpovědět 13.5.2013 21:59
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Lukáš Hruda (Luckin):13.5.2013 22:15

Moje odpověď taky :D

 
Nahoru Odpovědět 13.5.2013 22:15
Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
Drahomír Hanák:13.5.2013 23:21

Špatné je na tom to, že ti vznikají stavy. V ideálním případě by neměly (to samozřejmě nejde vždy). Aplikace se tak může stát mnohem hůř rozšiřitelná. Proto jsou tu návrhové vzory. Některé stavovost aplikace přímo řeší (třeba Null object, state a další)

 
Nahoru Odpovědět 13.5.2013 23:21
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Homo
David Čápka:14.5.2013 8:11

Ne, Enum má samozřejmě valueOf, celý ten tvůj prasekód, kde je každá hodnota napsaná 5x (spočítej si kolikrát tam máš daily) lze zapsat správně bez duplicit. Představ si tu enum se 100 hodnotami. Jakmile použijete někde switch, je velká pravděpodobnost, že máte něco špatně, jelikož takové větvení se v OOP nedělá.

Nahoru Odpovědět 14.5.2013 8:11
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
Kit
Redaktor
Avatar
Odpovídá na Petr Nymsa
Kit:14.5.2013 11:06

Switch špatný není, špatné bývá jeho použití. Jako elegantní náhrada switche se nepoužívá if, ale enum. Samozřejmě to nejde vždy.

Na enum mi chybí možnost valueOf("+") apod. To jsou chvíle, kdy musím použít něco jiného, například switch.

Nahoru Odpovědět 14.5.2013 11:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Drahomír Hanák
Kit:14.5.2013 11:08

Stavy se někdy docela dobře hodí na tvorbu automatů, ale i to se dá dělat v enum.

Nahoru Odpovědět 14.5.2013 11:08
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Drahomír Hanák
Petr Nymsa:14.5.2013 11:34

Napsal jsem stavy špatně, třeba mám v menu 4 tlačítka, a místo toho abych měl 4 metody, která je přihlášená k eventu Click, udělám jednu a přes ID tlačítka ve switchi rozhodnu co udělat... můžu dát tlačítku třeba delegáta, ale takhle mi to přijde i přehlednější

Nahoru Odpovědět 14.5.2013 11:34
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Redaktor
Avatar
Odpovídá na Petr Nymsa
Kit:14.5.2013 11:53

A není jednodušší udělat ta 4 tlačítka jako 4 objekty jedné třídy, kterým ty eventy přidám v konstruktoru? Pak nějaký switch nemusíš vůbec řešit.

Nahoru Odpovědět 14.5.2013 11:53
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka:14.5.2013 12:03

Asi mi něco uniká nebo nechápu, proč máš tedy 5 metod místo 4.

EDIT: Jedině, že by ty 4 tlačítka dělaly 1 funkčnost, pak chápu že je metoda jen 1.

Editováno 14.5.2013 12:04
Nahoru Odpovědět 14.5.2013 12:03
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
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:14.5.2013 12:25

No mohl bych mít 4 tlačítka, každé tlačítko si přířadí svoji metodu -> btn_NovaHraClic­k(),btn_NactiH­ruClick()... místo toho mám btnClick() a v ní swtich, který pozná, jaké tlačítko bylo tedy stisknuto (které vyvolalo událost) a udělám patřičné úkony - Nová hra, Načte hru, resetuje,...

Nahoru Odpovědět 14.5.2013 12:25
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka:14.5.2013 12:29

No a proč to tak nemáš?

Nahoru Odpovědět 14.5.2013 12:29
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
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:14.5.2013 12:34

Vždyť to tak mám :D

Nahoru Odpovědět 14.5.2013 12:34
Pokrok nezastavíš, neusni a jdi s ním vpřed
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 55 zpráv z 55.