Zápočtový test 26. 1.

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í.
kedrigern
Matfyz(ák|ačka) level I
Příspěvky: 14
Registrován: 29. 5. 2009 20:48
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Zápočtový test 26. 1.

Příspěvek od kedrigern »

Dneska jsme programovali jednoduchý interpret jazyka s operacemi:
- deklarování proměnné
- dekrementace prom.
- inkrementace prom.
- IF ... GOTO (+ label)

Podmínka byla jednoduchá pouze porovnání konstanty a proměnné.

Čili celkem dva větší úkoly. Nějak to naparsovat ze souboru a pak to spočítat. Plus ještě vypisovat nějaké základní chyby.

S využitím datových struktur a funkcí .NETu to nebylo těžké.
Parsoval jsem pomocí:

Kód: Vybrat vše

Console.ReadLine().Split(new char[] {' ', '\t'} , StringSplitOptions.RemoveEmptyEntries);
A pak nějákých podmínek. V zadání byl hint s RegExpy (a konkrétní třída), ale to co znám mi přišlo jednodušší.

Proměnné a labely jsem měl v System.Collection.Generic.Dictionary.
Tommassino
Matfyz(ák|ačka) level I
Příspěvky: 35
Registrován: 10. 9. 2009 21:03
Typ studia: Informatika Mgr.

Re: Zápočtový test 26. 1.

Příspěvek od Tommassino »

Interpret měl umět detekovat některé nekonečné cykly (pro každý řádek si pamatovat všechny předchozí stavy hodnot proměnných a kontrolovat na shodu), skoky dopředu (znamenalo labely zaznamenavat už při parsování a při runtime do jiného dictionary), dozadu a vypisovat různé chyby - redeklarace proměnných, labelů; nedeklarace proměnných, labelů etc.
Regexpy mi prisly jednodussi... :)
proměnné jsem měl v sorteddictionary
Odpovědět

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