• kth.se
  • Studentwebben
  • Intranät
  • kth.se
  • Studentwebben
  • Intranät
Logga in
DD1320/DD1325HT211
Labb 8: En enkel syntax
Hoppa över till innehåll
Översikt
  • Logga in
  • Översikt
  • Kalender
  • Inkorg
  • Historik
  • Hjälp
Stäng
  • Min översikt
  • DD1320/DD1325HT211
  • Uppgifter
  • Labb 8: En enkel syntax
  • Startsida
  • Kursöversikt
  • Moduler
  • Uppgifter
  • Course Evaluation

Labb 8: En enkel syntax

  • Inlämningsdatum 5 nov 2021 av 18:00
  • Poäng 10
  • Lämnar in en filuppladdning
Mål Läs
  • Skriva ett program för syntaxkontroll.
  • Öva på att själv skriva testprogram med unittest Links to an external site..
Föreläsning 12: Syntax, rekursiv medåkning, testning

Molekyler

En enkel molekyl kan beskrivas med ett atomnamn, eventuellt följt av antalet atomer, till exempel Xe, H2 eller Cr12.

Du ska skriva ett program som kontrollerar om en inmatad molekyl följer denna syntax:

      <molekyl> ::= <atom> | <atom><num>
<atom> ::= <LETTER> | <LETTER><letter>
<LETTER>::= A | B | C | ... | Z <letter>::= a | b | c | ... | z <num> ::= 2 | 3 | 4 | ...

För varje inmatad rad ska programmet skriva ut ett omdöme, antingen "Formeln är syntaktiskt korrekt" eller någon av felutskrifterna "Saknad stor bokstav vid radslutet" och "För litet tal vid radslutet"  följt av en utskrift av den del av inmatningen som är kvar efter det tecken där felet påträffades.

Korrekta indata Utskrift        
H2 Formeln är syntaktiskt korrekt
P21 Formeln är syntaktiskt korrekt
Ag3 Formeln är syntaktiskt korrekt
Fe12 Formeln är syntaktiskt korrekt
Xx5 Formeln är syntaktiskt korrekt
H10100 Formeln är syntaktiskt korrekt
Felaktiga indata Utskrift
a Saknad stor bokstav vid radslutet a
cr12 Saknad stor bokstav vid radslutet cr12
8 Saknad stor bokstav vid radslutet 8
Cr0 För litet tal vid radslutet
Pb1 För litet tal vid radslutet
H01011 För litet tal vid radslutet 1011

Du ska inte kontrollera att bokstäverna bildar ett verkligt atomnamn (det kommer i nästa labb), inte heller ska du undersöka om molekylen är rimlig kemiskt sett, eller att raden verkligen tar slut efter molekylen.

  1. Skriv funktionshuvud för fem funktioner, en för varje regel i syntaxen ovan. Funktionskroppen ska fyllas i senare, i punkt 5.
  2. 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.
  3. Gör ett eget särfall Syntaxfel som är subklass till (ärver från) Exception.
  4. Skriv ett testprogram med unittest som ska kontrollera att dina funktioner fungerar som avsett. Se exempel från syntaxföreläsningen. T ex kan ett test vara att kön innehåller en syntaktiskt korrekt molekyl, som A -> a -> 5 (OBS! De fem funktionerna ska skrivas i nästa punkt.)
  5. Lägg till kod i de fem funktionerna som kontrollerar syntaxen. Om en funktion upptäcker ett fel, tex Saknad stor bokstav eller För litet tal vid radslutet ska den göra raise Syntaxfel(felmeddelande). Om allt gått bra gör funktionen inget.
  6. Provkör med ditt testprogram.
  7. Gå till Kattis Links to an external site.och se till att ditt program klarar alla testfall! 

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.

Redovisning

Labben (syntaxprogrammet och unittest) lämnas in individuellt med "Lämna in uppgift"-knappen högst upp på sidan, och ska redovisas muntligt av bägge gruppmedlemmarna. Skriv gruppmedlemmarnas namn i kommentarsfältet!

Vid redovisningen ska du kunna

  • Visa hur unittest används för testning av dina funktioner
  • Förklara hur ditt program avspeglar den givna syntaxen.
  • Visa att ditt program klarar alla testfallen i Kattis.
1636131600 11/05/2021 06:00pm
Inkludera en beskrivning
Ytterligare kommentarer:
Maxresultat för gradering till > poäng
Inkludera en bedömningstitel

Matris

Hitta matris
Inkludera en titel
Hitta en matris
Titel
Du har redan bedömt studenter med den här matrisen. Större ändringar kan påverka resultaten för deras uppgifter.
 
 
 
 
 
 
 
     
Det går inte att ändra en matris efter att du börjat använda den.  
Titel
Kriterier Bedömningar Poäng
Det här kriteriet är länkat till ett lärandemål Beskrivning av kriterium
tröskel: 5 poäng
Redigera beskrivning av kriterium Ta bort kriterium rad
5 till >0 poäng Full poäng blank
0 till >0 poäng Inga poäng blank_2
Det här området kommer användas av utvärderaren för kommentarer relaterade till det här kriteriet.
poäng
  / 5 poäng
--
Ytterligare kommentarer
Det här kriteriet är länkat till ett lärandemål Beskrivning av kriterium
tröskel: 5 poäng
Redigera beskrivning av kriterium Ta bort kriterium rad
5 till >0 poäng Full poäng blank
0 till >0 poäng Inga poäng blank_2
Det här området kommer användas av utvärderaren för kommentarer relaterade till det här kriteriet.
poäng
  / 5 poäng
--
Ytterligare kommentarer
Poängsumma: 5 av 5
Föregående
Nästa
Labb 7: Hashtabeller Labb 9: Formelkoll