Stránka 1 z 1

Zápočtový test 17.2.2012

Napsal: 17. 2. 2012 14:03
od Jookyn
Dneska bylo něco jako interpret jazyka...

Příklad vstupu:

Kód: Vybrat vše

AHOJ = BABI * (-3 + HONZA)
A = B-(4+(2/(AHOJ+1)))
#D:\Temp\input2.txt
C = A
A ? -1
Jsou 3 typy příkazů
- řádek s # na začátku znamená include souboru
- řádek s = je přiřazení hodnoty výrazu pravé strany do proměnné uvedené vlevo
- A ? -1 znamená, že pokud je A!=0, skočí se o 1 řádek zpátky apod.

Pokud není proměnná inicializovaná, použije se 0.
Na konci vypsat všechny proměnné (já vypisoval jen ty které byly nějak inicializované, ne defaultní nulou), případně napsat, že nastal cyklus ve skocích (asi by stačilo i kdyby se program jen zacyklil, ale neni to těžký tam hodit nějakou podmínku, že když bude celkový počet vyhodnocení > 1000, tak tam asi je cyklus).


Začátek kódění v 10:25, čas 3 hodiny, je možný, že to bylo prodloužený, já jsem odcházel asi v 12:40 jako první úspěšný (když vim, jak na to, tak jsem většinou dost rychlej, když ne, tak jsem většinou v prdeli :D), takže o dalším průběhu nic nevim.

Co je nutnost je vědět, jak naparsovat výraz z infixu (včetně závorek) do prefixu pomocí zásobníků, snažit se tam vymejšlet nějakej jinej parser je docela cesta do pekel. Jinak tam nic extra těžkýho neni...

Zavoral to kontroloval docela laxně, vzal jsem vstup co byl na tabuli (a upravil ho, aby se nedělilo nulou) a na tom mu to ukázal, zkontroloval jak to mam s cyklama (kde jsem měl poprvé chybu z copypastování), na výsledky proměnných snad ani nekoukal... Došlo mi, že jsem nedělal vůbec prioritu operátorů (ne že by to bylo složitý doplnit, ale nějak jsem na to zapomněl), tu nekontroloval a vlastně ani nevim, jestli jí chtěl implementovat... Pak projel můj kód cca rychlostí 30řádků za sekundu, řekl že je to rozumný (pozastavil se jen na jednou věcí) a bylo to...

Internet byl puštěnej, povolena libovolná reference jazyka...

V příloze přidávam moje řešení, je to asi dost řádků kódu, ale docela roztahuju... Za bezchybovost neručim, za "v rychlosti testově zprasený" kód se omlouvam...

Re: Zápočtový test 17.2.2012

Napsal: 11. 1. 2013 18:51
od miso
Kto by mal zaujem, tu je verzia na cca 200 riadkov, vyhodnocovanie priamo z infixu rekurzivne, bez pouzitia stromov.
http://uloz.to/xb1L9nt/test0-zip

Re: Zápočtový test 17.2.2012

Napsal: 16. 1. 2013 00:06
od Danstahr
Velmi podobná úloha (s příkazy přiřazení do proměnné, vytištění hodnoty výrazu / proměnné a podmíněným skokem) byla i 14.1. od jedné odpoledne.