Zapoctovy test 23.1.2015

Cílem semináře je seznámit posluchače s jazykem C#, prostředím platformy .NET a tvorbou aplikací s grafickým uživatelským rozhraním. Předpokládají se znalosti objektově orientovaného programování.
biosek
Matfyz(ák|ačka) level I
Příspěvky: 4
Registrován: 9. 6. 2014 16:19
Typ studia: Informatika Bc.

Zapoctovy test 23.1.2015

Příspěvek od biosek »

Zadani bylo Interpret BASICu.
Meli jsme naprogramovat zpracovani soubou .bas, ktery se skladal z 7 moznych prikazu.

Promenna byl nazev promenne, hodnota bylo bud int32 cislo nebo promenna.
Kazdy prikaz byl na radce ve formatu "cislo_instrukce prikaz [nepovinne_argumenty]", prikazy pak vypadali takto:

SET promenna = hodnota
LET promenna = hodnota operace hodnota
INPUT promenna
PRINT [nepovinne_argumenty_oddelene_stredniky]
GOTO cislo_instrukce
END
IF hodnota bin_operace hodnota THEN GOTO cislo_instrukce

Me reseni bylo cca takoveto:
Udelal jsem si abstraktni nadtridu Command, ktera dokazala naparsovat argumenty a vyhodnotit se. Pak jsem implementoval vsechny prikazy jako potomky Commandu.
Trida Program potom obsahovala 2 globalni dictionary (jeden na commandy, druhy na promenne) a int hodnotu na jake instrukci prave jsem.
Hlavni beh programu pak jen nacetl soubor, vytvoril pro kazdy radek instanci instrukce a zpracovaval vsechny instrukce v jejich poradi dokud se nenarazilo na prikaz END. (samozrejme mohli nastat skoky pres GOTO nebo IF)

Meli jsem na reseni 3 hodiny a take 5 vstupnich datovych testovacich souboru.
Nejrychlejsi kolega predemnou skoncil uz za 1 hodinu.
Ja vse stihl napsat za 1,5 hodiny, za dalsi hodinu jsem si udelal testy pro prilozene soubory a odladil vsechny chyby, takze jeste byla pekna 0.5hod rezerva na svacinu.
Odpovědět

Zpět na „NPRG035 Jazyk C# a platforma .NET“