Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "Laboration 8" mellan 2016-10-31 11:52 av Linda Kann och 2016-10-31 17:18 av Linda Kann.

Visa < föregående ändring.

Laboration 8

cat

I denna labb ska du


* Skriva ett program för syntaxkontroll.
* Lära dig att skriva testprogram med unittest.
* Lära dig att använda domaren Kattis
Molekyler Du ska implementera en syntax (se Föreläsning 10) för enkla molekyler, till exempel H2 eller Cr12. Programmet ska fungera enligt följande exempelKörexempel (du behöver inte skriva detta interaktiva program):

Ge en molekyl: H2Formeln är syntaktiskt korrekt Ge en molekyl: cr12Saknad stor bokstavGe en molekyl: Cr0För litet tal vid radslutetGe en molekyl: Pb1För litet tal vid radslutetGe en molekyl: Mn4Formeln är syntaktiskt korrekt

Syntaxen besår av dessa fem regler:

<molekyl> ::= <atom> | <atom><num> <atom> ::= <LETTER> | <LETTER><letter> <LETTER>::= A | B | C | ... | Z <letter>::= a | b | c | ... | z <num> ::= 2 | 3 | 4 | ... Du ska inte kontrollera att bokstäverna bildar en verkligt atomnamn (det kommer i nästa labb), inte heller ska du undersöka om molekylen är rimlig kemiskt sett.


* Skriv en spec med namnen på de funktioner du behöver och en kommentar för varje funktion som beskriver vad funktionen ska göra.
* Gör en kopia av din LinkedQueue från labb 2, och lägg till metoden peek() som tittar på nästa värde i kön utan att plocka ut det.
* Gör ett eget särfall Syntaxfel som är subklass (ärver från) Exception.
* Skriv ett testprogram med unittest som ska kontrollera att funktionerna fungerar som avsett. Se exempel från syntaxföreläsningen.
* Skriv själva funktionerna och provkör.
* Du behöver inte skriva programmet i körexemplet ovan, det räcker med ett testprogram med unittest.
Lär dig använda Kattis Gör så här:


* Följ länken: tildah16 i Kattis
* Logga in (längst upp till höger) med ditt KTH-id
* Läs om hur man gör med Python3 i dokumentationen
* Lös problemet Hello
* Lös problemet A Different Problem
Redovisning Labben (syntaxprogrammet och unittest) lämnas in på kurswebbsidan (se Inlämningsuppgifter i vänstermenyn) och redovisas muntligt av bägge gruppmedlemmarna.

Vid redovisningen ska du kunna


* Visa upp din spec med beskrivningar av funktionerna.
* Visa hur unittest används för testning av dina funktioner
* Förklara hur ditt program avspeglar den givna syntaxen.
* Demonstrera hur Kattis används.
Betyg Denna labb kan endast ge betyg E. Du måste lämna in den och redovisa den i tid för att få göra labbarna för högre betyg i period 2.