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