Inlämningsuppgift
Inlämningsuppgift 1 – Skapa ett interaktivt användarprogram
Bygg ett menyprogram med funktioner, användarinmatning och tydlig struktur.
Mål
När du är klar med uppgiften ska du ha:
- planerat, byggt och testat ett Pythonprogram från pseudokod till färdig lösning
- kunnat förklara hur funktioner, villkor och loopar samverkar i programmet.
Uppgift
Skapa ett interaktivt Pythonprogram med en meny som visas i en loop tills användaren väljer att avsluta.
Programkrav
- Ett alternativ där användaren matar in sitt namn och sin ålder.
- Ett alternativ där programmet skriver ut vilket år användaren fyller 100.
- Ett avslutsalternativ.
- En huvudfunktion
main()och minst två egna funktioner med in- och utdata. - En loop som håller igång programmet och villkor som hanterar menyvalen.
input()för inmatning ochprint()för utskrifter.- Felhantering vid ogiltiga menyval.
- Läsbar, uppdelad och återanvändbar kod.
Repetera innan du börjar
- Kap 1.3 - strukturera problem med funktioner.
- Kap 1.4 - villkor och logik.
- Kap 1.5 - loopar och menyprogram.
Förslag på arbetsgång
- Pseudokod: Beskriv programmets steg, beslut och upprepningar i ord.
- Funktioner: Skapa funktioner som hämtar namn och ålder samt räknar ut året då användaren fyller 100.
- Struktur: Bygg menyn med en
while-loop och hantera valen medif,elifochelse. - Testning: Prova normala värden, ett ogiltigt menyval och att avsluta programmet.
Exempel på användning
1. Ange namn och ålder
2. Visa vilket år du fyller 100
3. Avsluta
> 1
Ange namn: Sofia
Ange ålder: 25
> 2
Sofia, du fyller 100 år 2101.
Kodmall
Kopiera mallen till din editor och fyll i delarna som saknas.
def hamta_namn():
# Fråga efter namn och returnera svaret.
pass
def hamta_alder():
# Fråga efter ålder och returnera ett heltal.
pass
def berakna_ar_for_100(alder):
nuvarande_ar = 2026
# Beräkna och returnera året då personen fyller 100.
pass
def main():
namn = ""
alder = 0
while True:
print("1. Ange namn och ålder")
print("2. Visa vilket år du fyller 100")
print("3. Avsluta")
val = input("Välj ett alternativ: ")
# Hantera menyvalen och anropa funktionerna ovan.
pass
if __name__ == "__main__":
main()
Prova programflödet
Testa menyvalen här för att se hur programmet ska bete sig.
Prova till exempel att:
- välja
2innan du har angett namn och ålder - välja
1, fylla i namn och ålder och sedan välja2 - välja
3för att avsluta programmet - välja
9för att testa ett ogiltigt val.
Bedömningsaspekter
- Har funktionerna tydliga och meningsfulla ansvarsområden?
- Är programflödet logiskt och robust även vid ett ogiltigt val?
- Är koden läsbar och återanvändbar?
- Är lösningen komplett och körbar utan fel?
Checklista för inlämning
- Programmet är uppdelat i funktioner.
- En
main()-funktion startar programmet. - Programmet innehåller en meny med tre alternativ.
- Det går att mata in namn och ålder och räkna ut vilket år användaren fyller 100.
- Programmet avslutas korrekt.
Testfall
| Test | Indata | Förväntat resultat |
|---|---|---|
| Spara namn och ålder | Sofia, 25 | Programmet sparar värdena och kan använda dem i nästa menyval. |
| Visa 100-årsår | Namn och ålder är redan angivna | Programmet skriver vilket år personen fyller 100. |
| Ogiltigt menyval | 9 | Programmet visar ett felmeddelande och menyn fortsätter. |
Det här ska lämnas in
- Din Pythonfil, till exempel
main.py. - En kort kommentar eller text som beskriver vilka testfall du har provat. Skriv den som en
trippelciterad kommentar (
''' ... ''') i början av koden.
Reflektion
- Vilka delar gick lätt och vad blev du osäker på?
- Hur kan du förbättra programmets struktur eller användarvänlighet?
- Vad skulle du vilja lägga till i programmet?