Code Kata: staňte sa lepším programátorom

Vše okolo vývoje aplikací pro platformy Windows Phone a Windows 10 Mobile
Petrroll
přispěvatel
přispěvatel
Příspěvky: 92
Registrován: sob bře 06, 2010 15:24
Zařízení: Samsung galaxy S

Code Kata: staňte sa lepším programátorom

Příspěvek od Petrroll »

Jak jsem viděl to video ohledně F#, tak si říkám, že zde by se dokonale hodil (stejně jako LINQ). Jelikož ale nejsem v F# tak zběhlej tak se ptám, bude to někdo psát v F#? Osobně bych totiž takovejhle příklad ocenil.
//připojím se jen s C# kódem.
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

Code Kata: staňte sa lepším programátorom

Příspěvek od Igor Kulman »

Ja to už mám napísane v F#, zverejním v štvrtok
Martin Suchan
smartmaniak
smartmaniak
Příspěvky: 1138
Registrován: pát bře 11, 2011 10:48
Zařízení: Nokia Lumia 925
Bydliště: Praha

Code Kata: staňte sa lepším programátorom

Příspěvek od Martin Suchan »

hotovo v C#, cca 15 radku volneho kodu, zitra sem hodim odkaz na pastebin.com :)
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

Code Kata: staňte sa lepším programátorom

Příspěvek od Igor Kulman »

hotovo v C#, cca 15 radku volneho kodu, zitra sem hodim odkaz na pastebin.com
Nejde o počet riadkov, ale o čitateľnost (eleganciu). V C by si to s makrami zbuchal aj na menej, ale bol by to hnusný imperatívny kód
Petrroll
přispěvatel
přispěvatel
Příspěvky: 92
Registrován: sob bře 06, 2010 15:24
Zařízení: Samsung galaxy S

Code Kata: staňte sa lepším programátorom

Příspěvek od Petrroll »

První pokus, nejde o nic ideální, ale funguje.
//Z důvodů délky je tu jen jako odkaz TADY.
//Níže přepracovaná verze na základé rad.
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

Code Kata: staňte sa lepším programátorom

Příspěvek od Igor Kulman »

Petroll: hrozne veľa kódu a nie je to vôbec prehľadné. V C# sa to dá klasicky imperatívne napísať napríklad takto:

Obrázek

Tak som sa nezdržal a dal som ti tam pár komentárov. Samozrejme myslených v dobrom
Paulos
stálý přispěvatel
stálý přispěvatel
Příspěvky: 439
Registrován: úte čer 17, 2008 17:06
Zařízení: Nokia Lumia 925, 32 GB
Kontaktovat uživatele:

Code Kata: staňte sa lepším programátorom

Příspěvek od Paulos »

Moje řešení:
http://pastebin.com/j7a3S9rW" onclick="window.open(this.href);return false;
Petrroll
přispěvatel
přispěvatel
Příspěvky: 92
Registrován: sob bře 06, 2010 15:24
Zařízení: Samsung galaxy S

Code Kata: staňte sa lepším programátorom

Příspěvek od Petrroll »

Yep, do příští Katy se poučím. Díky.
V rámci cvičení jsem se rozhodl na základě rad přepsat i aktuální Katu (abych nebyl až zas za takové nemehlo :) ).

Ono rozdělení do dvou metod a první vytahování relevantních dat tam být nemusí a může ušetřit jeden průchod. Nicméně v reálné aplikaci, by se s daty zřejmě provádělo více věcí a tak takového oddělení IMHO ničemu nevadí.

Obrázek
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

Code Kata: staňte sa lepším programátorom

Příspěvek od Igor Kulman »

V rámci cvičení jsem se rozhodl na základě rad přepsat i aktuální Katu (abych nebyl až zas za takové nemehlo ).
Staré riešenie si nemal mazať, bolo by vidno tvoj pokrok :)

F#

Obrázek
rybar73
přispěvatel
přispěvatel
Příspěvky: 134
Registrován: úte zář 22, 2009 9:53
Zařízení: Samsung B7610, Samsung Omnia 7
Bydliště: Kopřivnice

Code Kata: staňte sa lepším programátorom

Příspěvek od rybar73 »

Tak taky jsme si vyzkousel tuhle "vyuku" a je to docela fajn tak uvidime co bude dal :-)
Jinak to mam v podstate stejne jak zde psal Igor v C# takze to ani zde nebudu davat znova...teda az na to ze Igorovi to hazi spatny vysledek(C# i F#) ale to je asi jen drobnost z prehlednuteho zadani :-)
Martin Suchan
smartmaniak
smartmaniak
Příspěvky: 1138
Registrován: pát bře 11, 2011 10:48
Zařízení: Nokia Lumia 925
Bydliště: Praha

Code Kata: staňte sa lepším programátorom

Příspěvek od Martin Suchan »

Moje reseni - jeden radek nactu string, na dalsich asi osmi radcich mam jeden velky Linq, ktery vrati vysledek :)
Slo by to rozdelit na vice operaci, validovat, komentovat, ale to urcite vime :)
http://pastebin.com/9mCGJSGv" onclick="window.open(this.href);return false;

Obrázek

jeste pridam komentar:
Split - rozdelit na stringy po radku
Where - vyfiltruji jen radky, ktere jsou dlouhe aspon 5 znaku a obsahuji cislo tymu na spravne pozici
Select - pro kazdy radek vytvor anonymni typ obsahujici jmeno, F a A hodnotu podle poradi v zadani, ktere je natvrdo zadane
Setrid podle nejmensiho rozdilu - hezka ukazka pouziti OrderBy a Math.Abs :)
First - vrat vysledek s nejmensim rozdilem, a to je vse 8-)
Matajon
můj třetí příspěvek
můj třetí příspěvek
Příspěvky: 3
Registrován: čtv srp 09, 2012 10:08
Zařízení: Samsung Omnia 7
Bydliště: Dobruška

Code Kata: staňte sa lepším programátorom

Příspěvek od Matajon »

Tak já se taky přidám se svým F# pokusem.

Obrázek
Martin Suchan
smartmaniak
smartmaniak
Příspěvky: 1138
Registrován: pát bře 11, 2011 10:48
Zařízení: Nokia Lumia 925
Bydliště: Praha

Code Kata: staňte sa lepším programátorom

Příspěvek od Martin Suchan »

Pouziti RegExu na nalezeni hodnot, zajimave netrivialni reseni :like:
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

Code Kata: staňte sa lepším programátorom

Příspěvek od Igor Kulman »

rybar73 píše:Tak taky jsme si vyzkousel tuhle "vyuku" a je to docela fajn tak uvidime co bude dal
Ďalej bude ďalšia Kata, dnes alebo zajtra ju vyberiem a zverením. S tou chybou máš pravdu, nepozorne čítam zadanie
Matajon píše:Tak já se taky přidám se svým F# pokusem.
Som rád, že som niekoho motivoval k vyskúšaniu F#. Ten RegExp je zaujímavý nápad.
Petrroll
přispěvatel
přispěvatel
Příspěvky: 92
Registrován: sob bře 06, 2010 15:24
Zařízení: Samsung galaxy S

Code Kata: staňte sa lepším programátorom

Příspěvek od Petrroll »

//Staré řešení tam pořád je hezky vyděné jako odkaz. Jen jsem nechtěl (bylo delší) aby zabíralo tolik místa (bylo opravdu delší).
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

Code Kata: staňte sa lepším programátorom

Příspěvek od Igor Kulman »

Na ďalší týždeň trochu jednoduchej matematiky. Okrem kódu zverejňujte aj číselný výsledok. Termín: štvrtok 16.8.2012.

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
Martin Suchan
smartmaniak
smartmaniak
Příspěvky: 1138
Registrován: pát bře 11, 2011 10:48
Zařízení: Nokia Lumia 925
Bydliště: Praha

Code Kata: staňte sa lepším programátorom

Příspěvek od Martin Suchan »

Snad jsem to spravne pochopil, ze cilem je napsat program, ktery vrati soucet lichych cisel z Fibonacciho posloupnosti, ktere jsou mensi nez 4 miliony.

Mozna by stalo za to zkusit i pokrocilejsi variantu - soucet vsech lichych cisel z Fibonacciho posloupnosti, ktere maji mene nez 4 miliony cifer :-)
matoman
smartmaniak
smartmaniak
Příspěvky: 1163
Registrován: sob lis 10, 2007 11:56
Zařízení: Nokia Lumia 920

Code Kata: staňte sa lepším programátorom

Příspěvek od matoman »

nepojde to nejako analyticky vyjadrit? :)
Tomáš Slavíček
častý přispěvatel
častý přispěvatel
Příspěvky: 264
Registrován: stř srp 19, 2009 7:09
Zařízení: Nexus 5, Galaxy S3, Nokia X, iPad mini

Code Kata: staňte sa lepším programátorom

Příspěvek od Tomáš Slavíček »

Tahle poslední, to je taková vysloveně "úloha z reálného života" :D Ale s F# si tam asi užijete...
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

Code Kata: staňte sa lepším programátorom

Příspěvek od Igor Kulman »

Tomáš Slavíček píše:Tahle poslední, to je taková vysloveně "úloha z reálného života" :D Ale s F# si tam asi užijete...
v F# sa to napíše práveže jednoduchšie ako v C#
Odpovědět

Zpět na „Programování a vývoj“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 17 hostů