DD1310/DD1314/DA3009 Programmeringsteknik 2013
Laboration 3
Läs kapitel 4-5 och 7 i kursboken:
Slumptal, for-slingan, strängar, listor, tupler, dictionary, filer.
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: Skriv ett program som anordnar ett glosförhör.
Programmet ska
- Läsa in glosorna från fil.
- Skriva ut en lista med glosorna.
- Ordna ett förhör med alla glosor och räkna antal rätta svar.
- Skriva ut antal korrekta svar efter förhöret.
Extrauppgifter (inte obligatoriska):
- Se till att programmet inte kraschar vid felinmatning,
- Beräkna och skriv ut hur många procent rätt man fick.
- Ge olika kommentarer beroende på andelen korrekta svar.
Körexempel:
Svenska Setswana
====================
pumpa lerotse
gröt bogobe
kött nama
spenat morogo
fil madila
kyckling koko
majs mmidi
bönor dinawa
Glosförhör
==================
Vad betyder lerotse?
1. gröt
2. spenat
3. pumpa
Svar: 3
.
.
.
Testning
Glöm inte att testa att ditt program fungerar som det ska.
Krav
- Programmet ska vara uppdelat i funktioner med lämpliga parametrar och returvärden.
- Glosorna ska läsas in från fil.
- Orden ska lagras i någon datastruktur (lista/tuppel/dictionary).
- och dessutom följande krav från första och andra labben:
- Programmet ska ha en kommentar överst med författarnas namn och datum.
- Varje funktion ska ha en förklarande kommentar.
- Inga globala variabler får förekomma (i funktionerna).
- Variabelnamnen ska göra programmet lättare att förstå.
- Testdata ska finnas med i kommentar sist i programmet.
- Programfilen ska kopieras till gruppens Dropbox-katalog.
Instuderingsfrågor
- Vilka tre parametrar har
range
?
- Vad gör random-funktionen
shuffle
?
- Vad gör strängmetoden
ljust
?
- Vad är skillnaden mellan strängmetoderna
split
och strip
?
- Vad är index i en lista? Visa med ett exempel!
- Strängar och tupler är oföränderliga (immutable). Vad innebär det?
- Vad gör listmetoden
append
?
- Hur kan man använda en for-slinga för att skriva ut alla elementen i en lista?
- Hur skapar man en tom dictionary?
- Vad gör dictionary-metoden
keys
?
- Hur anger man om en textfil ska öppnas för läsning eller skrivning?
- Ge två olika förslag på hur man kan läsa in alla rader från en fil.
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!