Programmering nivå 2
Kap 1.8 – 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:
- Ange namn och ålder.
- Få ett personligt meddelande som visar när hen fyller 100 år.
- 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 ochprint()för att visa resultat. - Strukturera koden så den är läsbar, uppdelad och återanvändbar.
Förslag på arbetsgång
- Pseudokod: Beskriv först i ord vad programmet ska göra. Dela upp det i steg: vilka beslut ska tas och vad ska upprepas?
- Funktioner: Skapa en funktion som hämtar namn och ålder, och en funktion som räknar ut vilket år användaren fyller 100.
-
Struktur: Använd en
while-loop för menyn och avsluta medbreakeller 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()
from datetime import datetime hämtar klassen datetime från Pythons
inbyggda modul datetime. Klassen behövs här för att
datetime.now().year ska kunna läsa det nuvarande året. Importen ligger inne i
funktionen och körs därför när berakna_100_arsdag() anropas.
Interaktivt exempel: valprogram steg för steg
Testa samma programflöde direkt på sidan. Välj ett alternativ, kör valet och titta på resultatet innan du väljer nästa steg.
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
Programmering 2-koppling: exemplet binder ihop funktioner, returvärden, menyval, villkor och en loop som håller programmet igång.
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?