Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "Laboration 5" mellan 2016-02-15 08:49 av Linda Kann och 2016-02-15 09:47 av Linda Kann.

Visa < föregående | nästa > ändring.

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 befolkningAnvä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 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 (samma som i läxa 4)
* 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.