Till KTH:s startsida Till KTH:s startsida

Laboration 5

Laboration 5

Repetera strängmetoder, listmetoder, filer och objekt i kursboken.

Labben redovisas på veckans övning. Det Pythonprogram du skriver kan ge 0-2 bonuspoäng (beroende på hur väl det uppfyller kraven).
Instuderingsfrågorna redovisas med ett prov, som också kan ge max 2 bonuspoäng.

Uppgift 1: Läxa

Uppgift 2: 

Modifiera klassen du skrev i läxan med fler metoder

  • Metoden __init__  har du förstås redan definierat
  • Lägg till metoden __str__ (ska visa alla attributens värden)
  • Lägg till metoden __lt__ (ska jämföra objekten m a p befolkning 2012)
  • Skapa två objekt och testa att metoderna fungerar.

Uppgift 3: 

Skapa en lista med objekt

  • Låt programmet läsa in data från textfilen...
  • ... och skapa objekt som läggs i en lista.
  • Kontrollera att inläsningen fungerat bra genom att skriva ut listan.

Uppgift 4: 

Sortera listan

  • Läs om sort-metoden i avsnittet Lists i Pythons dokumentation.
  • Sortera listan.
  • Kontrollera att sorteringen fungerat bra genom att skriva ut listan.

Uppgift 5: 

Beräkna världens befolkning
Använd listan för att beräkna och skriva ut

  • världens totala befolkningsmängd 1950
  • världens totala befolkningsmängd 2012

Uppgift 6 

Lägg upp ditt färdiga program i Dropbox

Testning

Glöm inte att testa att ditt program fungerar som det ska.

Krav

Krav för programmen i labb 5:

  • Klassen ska ha metoderna ovan.
  • Programmet ska läsa in data från en textfil och skapa objekt som läggs i en lista.
  • Programmet ska sortera listan.
  • Programmet ska gå igenom listan och beräkna total befolkningsmängd 1950 och 2012.
  • ... och dessutom ska programmet uppfylla följande krav från tidigare labbar:
    • Programmet ska ha en kommentar överst med författarnas namn och datum.
    • Programmet ska vara uppdelat i funktioner med lämpliga parametrar och returvärden.
    • Varje funktion/metod ska ha en förklarande kommentar.
    • Inga globala variabler får förekomma (i funktioner eller metoder).
    • Variabel-/funktions-/attribut-namn ska göra programmet lättare att förstå.
    • Klasser och funktioner ska stå överst i programfilen, övriga satser ska stå längst ner (blanda inte).
    • Testdata ska finnas med i kommentar sist i programmet.
    • Programfilen ska kopieras till gruppens Dropbox-katalog.

Instuderingsfrågor

  1. Hur namnger man ett privat attribut?
  2. Var i programmet kan man komma åt privata attribut?
  3. Vad gör en åtkomstmetod (accessor)?
  4. Vad gör en ändringsmetod (modifier)?
  5. Visa ett exempel på en nästlad for-slinga.
  6. Är det den yttre eller inre slingan som går runt flest varv i en nästlad slinga?
  7. Vad ska metoden __lt__ kunna göra?
  8. Hur definierar man en metod så att två objekt kan interagera?
  9. Visa hur man med hjälp av en slinga kan skriva ut data för alla objekt i en lista.
  10. Hur skriver man för att klass A ska ärva från klass B?
  11. Vad är relationen mellan en superklass och en subklass?
  12. Vad ärvs?

Efter labben

Nu har du arbetat ett tag med din nya labbkompis. Hur ofta byter ni roller?

Frivilliga extrauppgifter:

  • Lägg till en meny där användaren kan välja vad hen vill göra.
  • Skriv ut objekten på fil igen när programmet avslutas.
  • Se till att programmet inte kraschar för felaktig inmatning.

Lärare Linda Kann skapade sidan 10 februari 2016

Lärare Linda Kann ändrade rättigheterna 15 februari 2016

Kan därmed läsas av alla och ändras av lärare.