Programmering nivå 2

Kap 1.7 – Miniuppgift: struktur och funktioner

Planera och bygg ett enklare menyprogram med funktioner, villkor och loopar.

Mål med lektionen

När du har arbetat klart med denna lektion ska du:

  • Ha planerat och genomfört ett enklare Pythonprogram.
  • Ha tränat på att använda funktioner, villkor, loopar och inmatning.
  • Ha strukturerat koden i en tydlig huvudfunktion och minst två egna funktioner.
  • Kunna följa en arbetsgång från pseudokod till fungerande program.

Så här lär du dig bäst

Denna lektion är en möjlighet att visa vad du lärt dig under Modul 1. Försök arbeta självständigt, men våga använda AI för att få tips, kontrollera logik eller få förslag på förbättringar. Gå gärna tillbaka till tidigare lektioner och använd strukturer därifrån som mall.

Uppgift: Interaktivt valprogram

Skapa ett program som fungerar som en enkel meny där användaren kan:

  1. Ange namn och ålder.
  2. Få ett personligt meddelande som visar när hen fyller 100 år.
  3. Upprepa eller avsluta.

Programkrav

  • Programmet ska ha en huvudfunktion main().
  • Du ska skapa minst två egna funktioner med in- och utdata.
  • Använd loop för att hålla igång programmet tills användaren väljer att avsluta.
  • Använd villkor för att hantera val i menyn.
  • Använd input() för att hämta information och print() för att visa resultat.
  • Strukturera koden så den är läsbar, uppdelad och återanvändbar.

Förslag på arbetsgång

  1. Pseudokod: Beskriv först i ord vad programmet ska göra. Dela upp det i steg: vilka beslut ska tas och vad ska upprepas?
  2. Funktioner: Skapa en funktion som hämtar namn och ålder, och en funktion som räknar ut vilket år användaren fyller 100.
  3. Struktur: Använd en while-loop för menyn och avsluta med break eller en logisk kontroll.

Exempel på meny

1. Enter name and age
2. Calculate 100-year message
3. Exit

Exempel på kodstruktur

def hamta_namn_och_alder():
    namn = input("Vad heter du? ")
    alder = int(input("Hur gammal är du? "))
    return namn, alder

def berakna_100_arsdag(namn, alder):
    from datetime import datetime
    nuvarande_ar = datetime.now().year
    fyller_100_ar = nuvarande_ar + (100 - alder)
    return f"{namn}, du fyller 100 år år {fyller_100_ar}."

def main():
    namn = None
    alder = None

    while True:
        print("1. Ange namn och ålder")
        print("2. Beräkna när du fyller 100 år")
        print("3. Avsluta")

        val = input("Välj ett alternativ: ")

        if val == "1":
            namn, alder = hamta_namn_och_alder()
        elif val == "2":
            if namn is None or alder is None:
                print("Du måste först ange namn och ålder.")
            else:
                print(berakna_100_arsdag(namn, alder))
        elif val == "3":
            break
        else:
            print("Ogiltigt val.")

main()

Bedömningsfokus i denna uppgift

  • Har du använt funktioner på ett tydligt och meningsfullt sätt?
  • Är koden uppdelad, läsbar och kommenterad där det behövs?
  • Hanterar programmet upprepning och val korrekt?
  • Visar du förståelse för programflöde och logik?

Reflektion

  • Vilka delar gick lätt? Vad blev du osäker på?
  • Hur kan du förbättra programmets struktur eller användarvänlighet?
  • Vad är nästa steg du vill kunna i programmering?

Tillbaka till Kapitel 1