Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Ahoj kluci, stejně jako tomu bylo minulý týden v Javě, i tento týden budeme v pravidelné minisoutěži o placku a samolepky vytvářet webovou aplikaci. Tentokrát bude v C# za použití ASP.NET MVC. Máte šanci naučit se super technologii, která vás jednou bude živit. Vše potřebné je popsané v tutoriálech - http://www.itnetwork.cz/…/asp-net/mvc, stačí jen chtít.

Zadání úlohy je jednoduché. Vytvořte webovou aplikaci v ASP.NET MVC, která vypočítá modus (nejčastěji se vyskytující prvek) z čísel zadaných ve formulářovém poli. Čísla jsou zadaná slovy a jsou vždy do 100, oddělená jsou čárkou.

Pokud je modů více, např. pro vstup:

sto, padesát šest, dvacet, sto, padesát šest

budou vypsány všechny, zde tedy 100, 56.

Snažte se o co nejhezčí kód a efektivní řešení. Jelikož se na devbooku jedná o novou technologii, rozdám placky hned pěti nejlepším řešitelům! Roli hraje jak rychle odevzdáte a jak kvalitní aplikace bude.

Čas je do pondělí 20.1. do 10:00.

Editováno 14.1.2014 20:00
Odpovědět 14.1.2014 19:51
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
Ondřej Štorc:

V tom zadání musí být mezera za čárkou nebo ne?

Nahoru Odpovědět 14.1.2014 20:49
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

Vo výsledku musí byť normálne číslo (najčastejšie, ciframi) alebo môže byť slovom?

Nahoru Odpovědět 14.1.2014 21:06
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Ondřej Štorc
David Čápka:

S bílými znaky okolo uživatelských vstupů bys měl počítat vždy.

Nahoru Odpovědět 14.1.2014 21:07
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
Nahoru Odpovědět 14.1.2014 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
Juraj Mlich
Redaktor
Avatar
Odpovídá na David Čápka
Juraj Mlich:

Čísla slovom môzu byť po slovensky?

Nahoru Odpovědět 14.1.2014 21:14
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 14.1.2014 21:15
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
Ondřej Štorc:

Zde je má verze: Google Drive

Nahoru Odpovědět 15.1.2014 14:51
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Ondřej Štorc
Ondřej Štorc:

Ještě online: arakamus.apone.cz

Nahoru Odpovědět 15.1.2014 15:36
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Ondrca
Redaktor
Avatar
Nahoru Odpovědět 15.1.2014 15:42
Zase jsem o něco chytřejší
Avatar
Ondrca
Redaktor
Avatar
Odpovídá na Ondřej Štorc
Ondrca:

Nemá to být:
arakamus.aspone.cz
?

Nahoru Odpovědět  +2 15.1.2014 15:51
Zase jsem o něco chytřejší
Avatar
Odpovídá na David Čápka
Jakub Lásko[Saarix]:

Nevadí, když formát zápisu bude u 2 složkových čísel takto -> osmdesát-šest
?? :)

Nahoru Odpovědět 15.1.2014 16:16
Časem je vše možné.
Avatar
Odpovídá na Ondrca
Ondřej Štorc:

Jo má, pal jsem to ve spěchu..

Nahoru Odpovědět 15.1.2014 16:45
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Nahoru Odpovědět 15.1.2014 16:58
Časem je vše možné.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Jakub Lásko[Saarix]
Zdeněk Pavlátka:

http://www.itnetwork.cz/…outezi-machr
"Budou zabaleny do archivu zip, který bude pojmenovaný ..."

Nahoru Odpovědět 15.1.2014 17:03
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Nahoru Odpovědět 15.1.2014 17:04
Časem je vše možné.
Avatar
Odpovídá na Zdeněk Pavlátka
Jakub Lásko[Saarix]:

Omlouvám se na to jsem úplně zapoměl. Upravím to.

Nahoru Odpovědět 15.1.2014 17:04
Časem je vše možné.
Avatar
Nahoru Odpovědět 15.1.2014 17:07
Časem je vše možné.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Jakub Lásko[Saarix]
Zdeněk Pavlátka:

Na začátku máš příklad "dvacet, osmdesát-dva, pět, dvacet-šest".
Pokud ale číslo obsahuje "dva" aplikace nefunguje. Bere jenom "dvě". "osmdesát-dvě" moc hezky nezní.

Nahoru Odpovědět 15.1.2014 17:18
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Jakub Lásko[Saarix]:

Jaj detailista, ale máš pravdu, bylo by lepší to mít "dva" a "osmdesát-dva". Ale už se mě tento detail nechce upravovat, abych to tu nezahltil re-linky.

Editováno 15.1.2014 17:27
Nahoru Odpovědět  +1 15.1.2014 17:27
Časem je vše možné.
Avatar
exyi
Redaktor
Avatar
exyi:

Tak jsem to taky zkusil. Moje první aplikace v ASP.NET MVC :) Bez machra bych nikdy nazačal :)
http://sdrv.ms/1a7CWYA

 
Nahoru Odpovědět  +1 15.1.2014 20:02
Avatar
Odpovídá na David Čápka
Michal Žůrek (misaz):

Ahoj,
tak po několika hodinach bojo a uznání že samo mi to do hlavy nepřiskáče odevzdávám své nakonec celkem jednoduché řešení. Moje představa dokonalého kódu je jiná, ale co nadělám přeci jen s tím začínám.

Měl bych po této práci zhodnotit MVC, tak jo i ne. Líbí se mi ten koncept oddělovat model od pohledu kontrolérem, ale nelíbí se mi že ASP.NET nás od úplně všeho odstiňuje a my pomalu nevíme co se tam děje, to se mi zas na PHP líbí víc, že vždycky vím jak k tomu došlo.

Pokud se to naučíte je ASP.NET skvělé a už se ho nikdy nepustíte.

Download: http://misaz.moxo.cz/…a-csharp.zip
Online: http://misaz.asp2.cz/

jo a poznámka: je to ve Visual Basic nikoli C#.

Nahoru Odpovědět  +3 15.1.2014 20:04
Nesnáším {}, proto se jim vyhýbám.
Avatar
Petr G
Redaktor
Avatar
Petr G:

Ahoj, tak taky se přidávám k soutěžícím :)
https://db.tt/fVXv9GNz

 
Nahoru Odpovědět 15.1.2014 21:07
Avatar
Zdeněk Bauer
Redaktor
Avatar
Zdeněk Bauer:

Omlouvám se, ale o co jde? :)
Zadá se slovy řada čísel (jedna, čtyři, dva, tři, jedna, čtyři) a ty které tam jsou více jak jednou tak se vypíší jako číslo? (V tomto případě 1 a 4?)

Editováno 15.1.2014 21:12
 
Nahoru Odpovědět 15.1.2014 21:12
Avatar
Odpovídá na Zdeněk Bauer
Jakub Lásko[Saarix]:

Ne více než jednou, ale které jsou tam nejvíce vůči celku, takže v tvém případě by se měli vypsat správně 1 a 4, ale nemusí tam být nutně více než 1 :-)

Nahoru Odpovědět 15.1.2014 21:17
Časem je vše možné.
Avatar
Odpovídá na Michal Žůrek (misaz)
Jakub Lásko[Saarix]:

Sakra já ten VB snad nikdy nerozluštím :-) Vypadá to spíš jak malba... Ale opět jiné zajimavé provedení ;)

Nahoru Odpovědět 15.1.2014 21:21
Časem je vše možné.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Jan Vargovský:

To samé můžeš říct o všech technologiích. Kup si literaturu a budeš to vědět :-)

 
Nahoru Odpovědět 15.1.2014 21:54
Avatar
Petr Domes (petrds):

Přidávám se k soutěžícím :) http://leteckaposta.cz/970172245
Může mi někdo poradit free hosting, který podporuje MVC 4 ? dík

 
Nahoru Odpovědět 16.1.2014 1:25
Avatar
Michal Žůrek (misaz):

Ještě trochu jsem to vylepšil.

• Ostyloval jsem to (už jsem přišel na to, kam dát link na styl :D )
• Vyházel nesmyslné poznámky
• Metody pro překlad čislo <> text nejsou statické

Online: (pořád stejně) http://misaz.asp2.cz
Download: http://misaz.moxo.cz/…sharp--2.zip

Nahoru Odpovědět 16.1.2014 10:40
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na David Čápka
Michael Olšavský:

Přidávám svou verzi. Ještě asi není finální, ale radši to sem hodím. Nechtělo se mi psát plně LINQ řešení, proto jsem tam přidal i něco svých algoritmů.

https://drive.google.com/…Y2FFRlE/edit?…

 
Nahoru Odpovědět 16.1.2014 22:15
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Tento týden je toho spoustu, tak budu stručný. Také se omlouvám těm, co mi psali do soukromých zpráv, ale nemám kapacitu na to, abych si před hodnocením procházel vaše řešení.

Placku získávají (pořadí nemá souvislost s kvalitou výsledku):

  • Michael Olšavský - Ok
  • exyi - Chválím ten validátor, jsi jediný, komu to řeší chybné vstupy. Výpočet modu jsi vyřešil skvěle.
  • Michal Žůrek (misaz) - Helper se mi zdá zbytečný, můžeš si najít prostě maximální hodnotu pomocí Max() a k ní potom klíče. Koukám, že translator jsi udělal obousměrný, chválím.
  • Petr Domes (petrds) - Aplikace se chová zvláštně když zadám chybnou hodnotu. Místo ForEach bych raději použil Join. To řešení s předponami je zajímavé, ale nějak jsem se v tom ztratil, vypadá to, že to funguje.

Ostatní mají šanci své chyby opravit v další soutěži, kde bude shodné zadání pro technologii ASP.NET Web Forms. Jsou to:

  • Girtas - Výpočet modu je hrozně neefektivní, provádíš zbytečně vnořené cykly a spoustu zbytečných iterací, což dává minimálně složitost O(n2). Dále např. mazání z listu je velmi drahá operace.

Jakub[Saarix] - Zajímavý objektový návrh, bohužel jsi úplně zapomněl na čísla mezi 10 a 20 (např. čtrnáct). Modus se zdá také neefektivní, je řešen vnořenými cykly.

Arakamus - Blahořečil jsem ti za ten výpočet modu a potom tam najdu 100 hodnot ručně vypsaných pod sebou a dokonce ještě přes metodu Add. Když už, tak List jde inicializovat z pole nebo obsahuje metodu AddRange. Nicméně ten list máš 3x větší, než je potřeba.

Jinak čekal jsem, že když víte, že čísla budou do stovky a v zadání se nalézá slovo efektivní, že někoho napadne počítat modus pomocí pomocného pole o velikosti 100 :P Stačí projet vstupní hodnoty od uživatele a pro každou v pomocném poli zvýšit její počet o 1. Hodnota od uživatele je potom indexem do tohoto pole.

Výherci nechť publikují svá řešení a napíší x, vy už to znáte :)

Nahoru Odpovědět 20.1.2014 11:41
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
Ondřej Štorc:

No mě v tu chvíli nenapadlo jak to lépe vyřešit :D

Nahoru Odpovědět 20.1.2014 12:02
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na David Čápka
Michal Žůrek (misaz):

protože celkem všechny placky mám, tak mi do profilu dej OOP (vzít C# za zdrojový kód ve VB mi přišlo blbé) a posílat mi nemusíte nic. Publikuji to ještě dnes.

Nahoru Odpovědět 20.1.2014 12:21
Nesnáším {}, proto se jim vyhýbám.
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 34 zpráv z 34.