DD1311 Programmeringsteknik för Civilingenjör & Lärare och Datorlingvistik

Laboration 4

Innehåll: Filer, särfall(exceptions), klasser, metoder, objekt, konstruktor, attribut

Läs Kap 7-8 i boken!

Denna labb redovisas på veckans gruppmöte. Ta med utskrifter av dina program samt dina svar på instuderingsfrågorna. Vid redovisningen ska du kunna förklara både program och svar för dina kurskamrater och din assistent.

Program

Krav för programmen i labb 4: Programmet ska använda filhantering och en klass.
Använd funktions/metodanrop istället för att upprepa liknande kod.
Viktigt! Använd olika namn för attribut och metoder.

  1. Ändra i ditt glosförhörsprogram från labb 3 så att glosorna läses in från fil.
  2. Lägg till en klass Elev som håller reda på elevens namn, antal rätt, och de ord som eleven missade. Efter glosförhöret ska programmet skriva ut resultatet och alla missade ord. Körexempel: (användarens inmatning i fetstil)
    Vad heter du? Edvina
    Välkommen till glosförhöret, Edvina!
    Nu ska du öva att översätta setswana till svenska.
    madila: fil
    Rätt!
    .
    .
    .
    --------------------------------
    Edvina , du fick 2 rätt av 5
    De ord du missade var:
    nama
    bogobe
    lerotse
    --------------------------------
    Om du tycker det är svårt finns ett kodskelett elev.py att utgå från.
  3. Låt programmet skapa två objekt så att bägge i labbgruppen kan bli förhörda under samma programkörning.

Instuderingsfrågor

  1. I vilka moder kan man öppna en textfil?
  2. Ge två olika förslag på hur man kan läsa in alla rader från en fil.
  3. Varför vill man låta ett program skriva ut data på en fil?
  4. Vilka typer av data kan man konservera (pickle)?
  5. Vad är särfall (exceptions)? Ge exempel!
  6. Beskriv skillnaden mellan klass och objekt?
  7. Vad är ett attribut?
  8. Vad är en metod?
  9. Hur fungerar __init__?
  10. Vad är self?
  11. Hur anropar man ett objekts metoder?
  12. Hur kommer man åt ett objekts attribut inuti klassen?
  13. Hur kommer man åt ett objekts attribut utifrån (från huvudprogrammet)?
  14. Varför är det fint att definiera åtkomstmetoder för attribut?

Efter labben

Hur tycker du att ditt eget arbete med labben fungerade? Borde du ha gjort något annorlunda? Fundera en stund, och skriv upp några tips till dig själv inför nästa labb!