DD1310/DD1314/DA3009 Programmeringsteknik 2012
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
- Lista alla glosorna
- Ordna ett förhör med alla glosor i ordning och räkna antal rätta svar.
- Ordna ett förhör med några slumpade glosor och räkna antal rätta svar.
Körexempel (användarens inmatning i fetstil):
*** Dagens glosor ***
Här är gloslistan!
Svenska Setswana
====================
pumpa lerotse
gröt bogobe
kött nama
spenat morogo
fil madila
Enkla glosförhöret
==================
Översätt pumpa: lero
Fel, pumpa är lerotse.
Översätt gröt: bogobe
Rätt!
Översätt kött: mama
Fel, kött är nama.
Översätt spenat: morogo
Rätt!
Översätt fil: madiila
Fel, fil är madila.
Du fick 2 rätt
Slumpade glosor
===============
Hur många frågor vill du ha? 3
Översätt spenat: morogo
Rätt!
Översätt gröt: boboge
Fel, gröt är bogobe.
Översätt kött: nama
Rätt!
Du fick 2 rätt.
Extrauppgifter:
- Beräkna och skriv ut hur många procent rätt man fick.
- Ge olika kommentarer beroende på andelen korrekta svar.
- Gör en meny där man kan välja t ex
- mellan Gloslista, Glosförhör och Slumpade frågor
- mellan olika språk
- om man ska översätta från eller till svenska
Menyn ska upprepas tills man väljer att avsluta.
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 Wuala-katalog.
Instuderingsfrågor
- Vilken modul måste man importera för att få slumptal?
- Ange en slumpfunktion som returnerar heltal.
- Hur används
range
i en for-slinga? Ge ett exempel!
- Vad är index i en sträng? Visa med ett exempel.
- Namnge och beskriv tre metoder för en sträng.
- Strängar och tupler är oföränderliga (immutable). Vad innebär det?
- Hur tar man reda på hur många element som finns i en lista?
- Namnge och beskriv tre metoder för en lista.
- Visa hur man skriver ut alla elementen i en lista.
- Hur lägger man in ett nyckel-värde-par i en dictionary? Visa med ett exempel.
- Namnge och beskriv tre metoder för en dictionary.
- Visa med ett exempel hur referenser fungerar.
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!