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 och print() 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

  1. Pseudokod: Beskriv programmets steg, beslut och upprepningar i ord.
  2. Funktioner: Skapa funktioner som hämtar namn och ålder samt räknar ut året då användaren fyller 100.
  3. Struktur: Bygg menyn med en while-loop och hantera valen med if, elif och else.
  4. 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 2 innan du har angett namn och ålder
  • välja 1, fylla i namn och ålder och sedan välja 2
  • välja 3 för att avsluta programmet
  • välja 9 för att testa ett ogiltigt val.
1. Ange namn och ålder 2. Beräkna när du fyller 100 år 3. Avsluta Välj ett alternativ och tryck på Kör 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?