Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "Laboration 5" mellan 2016-02-10 22:42 av Linda Kann och 2016-02-15 08:49 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)
* Titta på filen worldpop.txt.Vilka data innehåller filen?
* De första fem raderna i filen är informatio
Hur namnger man ett privat attribut?
* Var i programmet kan ma
n kom filens innehåll. Skriv ett par satser som läser in enbart dessa fem rader från filen.
* Resten av raderna i filen innehåller data. Hur ska man läsa in dessa rader?
* En rad innehåller data åtskilda av "/". Föreslå en strängmetod som delar upp raden vid varje "/" och visa hur man anropar den.
* Vilken datatyp returnerar strängmetoden ovan?
* Titta på första dataraden i filen: "Afghanistan/AF/4/8151/33397" Rita (gärna för hand) ett objekt med dessa data.
* Hitta på namn för de attribut du ritat i objektet ovan.
* Vilka metoder skulle passa bra i den klass som representerar ditt objekt? Ge minst tre förslag.
* Måste man definiera flera klasser om man vill ha flera objekt i ett program?
* Vilken listmetod kan man använda för att lägga till ett element i en lista? Visa hur den anropas!
* Rita en lista med tre objekt (data från tre länder).
* Visa hur man med hjälp av en slinga kan skriva ut data för alla objekt i listan.
ma å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 tycker du att arbetet fungeraofta 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.