NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Soutěž: Machr na C# .NET - Vícejazyčná aplikace

Soutěž již skončila

Zadání

Vašim úkolem bude naprogramovat převodník jednotek, který bude nabízet více jazyků rozhraní aplikace. Aplikace při startu sama vybere nejvhodnější jazyk (například protože jsem v česku, tak češtinu), který použije a umožní uživateli jazyk v průběhu běhu aplikace měnit. Nemusíte podporovat milion jazyků, stačí dva. Povinná je čeština/slovenština a angličtina, další jsou bonusové (pro ty, kteří je ovládají). Představa je taková, že aplikace bude mít na začátku políčka s popisky Convert from a Convert to a když kliknu na češtinu tak se popisek políček změní na Převést z a Převést do.

Samotný převodník jednotek bude umět převádět jednotky míry (mm, cm, m, km), váhy (g, dkg, kg, t) a jednotky datové kapacity (B, KB, MB, GB, TB).

V tomto machrovi můžete použít pouze C# a nesmíte využít žádné externí knihovny. Vzhledem k přepínání jazyka se předpokládá využití GUI.

Výhra

Vítěz dostane placku Machr, pár samolepek a ocenění do portfolia.

Výhra

Výsledky

Jméno bodů Řešení ( Stáhnout vše )
Ondřej Štorc 68 Stáhnout řešení
Štefan Pružinský 65 Stáhnout řešení
Neaktivní uživatel 60 Stáhnout řešení
michaall.k 58 Stáhnout řešení
Ridge 57 Stáhnout řešení
Daziko 56 Stáhnout řešení
Jan Sála 52 Stáhnout řešení
František Boháček 46 Stáhnout řešení
Dávid Zita 46 Stáhnout řešení
Martin Bruna 45 Stáhnout řešení
Matyáš Černohous 35 Stáhnout řešení
Neaktivní uživatel 0 Stáhnout řešení

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Odpovídá na Martin Bruna
Michal Žůrek - misaz:7.7.2015 20:02

Tak si otevři soubor Konvertor.cs. Hned konstruktor je jedna velká pohroma. Načítat všechny jednotky takhle je dost velký hnus. Když se ti mírně změní struktura ukládání jednotek, tak to musíš celé přepsat, pro každou jednotku zvlášť, což je dost nepraktické. navíc to ani není příliš univerzální, protože když se zase podíváme do třídy Jednotka, tak je tam milion nadefinovaných a do listu narvaných jednotek, které ještě ani nejsou nijak unifikovaně členěný. Už od pohledu je trochu divné, když pod Mili je Gibi. Což jsou předpony, které spolu vůbec nesouvisí. Všechny jednotky samozřejmě ani nemusíš vypisovat, stačí si je dát do pole např

string[] jednotky = ["k", "M", "G", "T", "P"];

a pak počítat že rozdíl jsou tři nuly nebo tak jak si to nastavíš, to ale samozřejmě nefunguje vše a pro takovéto elegantní řešení bys potřeboval tu strukturu, kdy máš od sebe navzájem oddělené jednotlivé veličiny, protože většinou platí že alespoň v rámci jedné veličiny ty pravidla platí. No a když pravidla neplatí, tak u té dané veličiny to přepíšeš, tím se samozřejmě vyvaruješ riziku, že si rozbiješ celou aplikaci - když už si něco rozbiješ tak jen tu jednu specificky upravovanou veličinu.

V okamžiku kdy definuješ hromadu věcí, tak tak ten formát musí být co nejprimitivnější, pokud není je okolo toho

public static Jednotka blabla = new Jednotka(blabla);

tak už je to hrozně komplikované a ve většině případů i zbytečné, jako třeba zde. Někdo to řešil tak že vypsal právě do pole všechny jednotky a pak "řekl" že převodní vztah mezi jednotkami je 1024 a fungovalo to. Ty tady definuješ převodní vztah ke každé jednotce, úplně zbytečně, navíc je to hrozně dlouhé.

 
Odpovědět
7.7.2015 20:02
Avatar
D0ll0k
Člen
Avatar
D0ll0k:7.7.2015 20:15

Ach jo :/ už snad půl roku čekám na machra, kterého bych mohl zvládnout a zrovna když je, tak jsem pryč a bez internetu.

Nahoru Odpovědět
7.7.2015 20:15
Veni, vidi, programmato
Avatar
MadaraCZech
Tvůrce
Avatar
Odpovídá na D0ll0k
MadaraCZech:7.7.2015 20:22

To je ještě v pohodě. Já tuhle úlohu dělal týden, každý den tři hodiny, udělal jsem plno funkcí, včetně vlastního jazyku a pak to zapomenu uploadnout, takže jsi na tom lépe, jak já. Ale tak machr slouží k tomu, aby ses naučil něco nového, což se u mě povedlo, naučil jsem se jak rozpoznat jazyk v systému. Úlohu můžeš udělat kdykoliv, jen je menší motivace.

 
Nahoru Odpovědět
7.7.2015 20:22
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Ondřej Štorc:7.7.2015 20:52

Tak to jsem nečekal :O :D Taky mě to napdalo s tou dědičností, ale to už jsem měl tu aplikaci skoro dopsanou tak jsem se na to vykašlal :D Jinak chci taky pogratulovat @Štefan Pružinský (stevkopr)|11783@

Nahoru Odpovědět
7.7.2015 20:52
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Michal Žůrek - misaz
František Boháček:8.7.2015 10:02

Dnes jsem tu aplikaci ještě vyzkoušel, dal jsem převádět MB na MB, zadal jsem 1000 a vypsalo to 1000.. Nechápu, kde je u tebe chyba, zkoušel jsem to jak ve VS, tak i přímo exe soubor v staženém řešení..

 
Nahoru Odpovědět
8.7.2015 10:02
Avatar
Odpovídá na František Boháček
Michal Žůrek - misaz:8.7.2015 10:25

dělá to za nějakých okolností, už si nevzpomínám za jakých, ani jsme ti za to nestrhl všechny body, ale jen pár.

 
Nahoru Odpovědět
8.7.2015 10:25
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 6 zpráv z 56.