Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "Laboration 8" mellan 2016-02-26 14:09 av Linda Kann och 2016-03-27 21:38 av Linda Kann.

Visa < föregående ändring.

Laboration 8

I denna labb ska du


* Lära dig att använda domaren Kattis.
* Lära dig att skriva testprogram med unittest.
Registrera dig på Kattis Gör så här:


* Följ länken: Kattis
* Logga in (längst upp till höger) med ditt KTH-id
* Välj "COURSES" i övre menyn
* Välj "tilda15v16"
Lär dig använda Kattis Läs avsnittet Tutorials (1 och 2) i dokumentationen och lös problemen Hello och A Different Problem.

Syntaxkoll Du ska börja med att implementera dessa tre regler:

<LETTER>::= A | B | C | ... | Z <letter>::= a | b | c | ... | z <num> ::= 2 | 3 | 4 | ... Läs igenom instruktionerna nedan och utför punkterna i ordning.


* 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.
* Till sist - skriv själva funktionerna
Frivillig del (för att förenkla för dig i nästa labb) Utöka syntaxen med nya regler:

<element> ::= <atom> |<atom><num> <atom> ::= <LETTER> | <LETTER><letter> <LETTER>::= A | B | C | ... | Z <letter>::= a | b | c | ... | z <num> ::= 2 | 3 | 4 | ... Modifiera ditt program så att det kontrollerar om en inmatad textrad är en <element>

Här är några exempel att testa med unittest. Hitta gärna på fler!

Indata Utskrift Ag Formeln är syntaktiskt korrekt Ag13 Formeln är syntaktiskt korrekt Ag1 För litet tal vid radslutet Redovisning Labben lämnas in via git och redovisas muntligt av bägge gruppmedlemmarna.

Vid redovisningen ska du kunna


* Demonstrera hur Kattis används
* Förklara hur unittest används för testning
* Redovisa de program (och specen) du skrivit i uppgifterna ovan
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 nästa period.