Zapoctovy test 23.1.2015

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Zapoctovy test 23.1.2015

Zapoctovy test 23.1.2015

od biosek » 23. 1. 2015 22:53

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.

Nahoru