Presentationer Bild 1/1

Teknik 1 · Kapitel 5

Programmering för problemlösning

Från ett tydligt problem till instruktioner som datorn kan utföra.

Lektionsmål

Efter kapitlet ska du kunna...

  • förklara hur programmering används för problemlösning
  • beskriva programmeringsprocessens fem steg
  • förklara variabler, villkor, loopar och funktioner
  • resonera om testning, automatisering och kodkvalitet

Startfråga

Vad behöver datorn veta?

Uppgift: räkna ut medelvärdet av tre tal.

  • Vilka tal ska användas?
  • Vilka beräkningar ska göras?
  • Vad ska visas för användaren?
  • Vad händer om inmatningen är fel?

Programmering kräver att problemet uttrycks exakt.

Begrepp

Vad är programmering?

Att skriva instruktioner som en dator kan följa.

Instruktionerna skrivs i programmeringsspråk som Python, JavaScript eller C#.

Datorn följer instruktionerna snabbt och noggrant – även när instruktionerna är fel.

Problemlösningsverktyg

Koden är inte målet

Programmering kan användas för att:

Bearbeta dataAutomatisera arbeteStyra systemSkapa interaktion

Målet är en fungerande lösning på ett verkligt problem.

Helhetsbild

Programmeringsprocessen

FörståPlaneraKodaTestaFörbättra

Nya testresultat kan skicka oss tillbaka till ett tidigare steg.

Steg 1

Förstå problemet

  • Vad ska programmet göra?
  • Vilken indata behövs?
  • Vilken utdata ska skapas?
  • Hur ska programmet användas?
  • Vilka fel behöver hanteras?

Indata · bearbetning · utdata

Beskriv lösningens flöde

5, 8, 11Summera och dividera med 3Medelvärde: 8

En tydlig modell gör det lättare att kontrollera om programmet löser rätt problem.

Steg 2

Planera lösningen

  1. Läs in talen.
  2. Räkna ut summan.
  3. Dela summan med antalet tal.
  4. Visa resultatet.

Pseudokod och flödesscheman hjälper oss att tänka igenom logiken innan syntaxen tar plats.

Pseudokod

Planen utan programspråk

LÄS IN tre tal
summa = tal 1 + tal 2 + tal 3
medelvärde = summa / 3
VISA medelvärde

Pseudokoden beskriver logiken men behöver inte följa ett programspråks exakta regler.

Steg 3

Skriv kod

tal = [5, 8, 11]
summa = sum(tal)
medelvarde = summa / len(tal)
print(medelvarde)

Resultat: 8.0

Koden är en möjlig implementation av planen – inte själva planen.

Fyra byggstenar

Så uttrycks lösningen

VariabelLagrar information.poang = 10
VillkorVäljer mellan alternativ.if poang > 5
LoopUpprepar en instruktion.for tal in lista
FunktionSamlar kod för en uppgift.berakna_summa()

Variabler

Ge information ett namn

namn = "Anna"
poang = 120
aktiv = True

Variabelnamnet ska hjälpa läsaren att förstå vad värdet betyder.

x = 120 fungerar för datorn, men poang = 120 är tydligare för människor.

Villkor

Låt programmet välja

if alder >= 18:
    print("Myndig")
else:
    print("Inte myndig")

Villkoret kontrolleras. Endast den gren som stämmer körs.

Loopar

Upprepa utan kopiering

for namn in ["Anna", "Erik", "Lisa"]:
    print(namn)

Samma instruktion körs en gång för varje namn.

Loopar är användbara när antalet värden kan förändras.

Funktioner

Samla en tydlig uppgift

def medelvarde(tal):
    return sum(tal) / len(tal)

resultat = medelvarde([5, 8, 11])

Funktionen kan återanvändas med andra listor och testas separat.

Interaktivt exempel

Beräkna medelvärde

Programmets steg
Tryck på Beräkna.

Steg 4

Testa programmet

TestfallVad kontrolleras?
5, 8, 11Vanliga giltiga värden
0, 0, 0Nollvärden
-5, 5Negativa tal
fem, 8Felaktig inmatning
tomtSaknad inmatning

Kontrollfråga

Vilket test saknas?

Ett program som räknar med tal har bara testats med 2, 4 och 6.

Steg 5

Förbättra lösningen

  • rätta buggar och logiska fel
  • hantera oväntad inmatning
  • göra koden tydligare
  • förbättra snabbhet och användbarhet

Program utvecklas ofta i flera versioner. Versionshantering gör ändringarna möjliga att följa och återställa.

Webbplats

JavaScript skapar interaktion

Användaren klickarHändelsen upptäcksKod körsSidan uppdateras

Exempel: menyer, formulärkontroll, meddelanden och dynamiskt innehåll.

Unity

C# styr spelvärlden

Spelaren tryckerIndata läsesRörelse beräknasKaraktären flyttas

Samma princip används för hopp, kollisioner, poäng och interaktion med objekt.

Automatisering

Låt datorn utföra återkommande arbete

  • sortera stora mängder data
  • beräkna resultat på samma sätt varje gång
  • kontrollera formulär
  • skapa rapporter från data

Automatisering sparar tid och kan minska mänskliga misstag – om reglerna och programmet är korrekta.

Viktig begränsning

Datorn automatiserar även fel

Ett program kan utföra en felaktig regel snabbt, konsekvent och i stor skala.

  • Är indata tillförlitlig?
  • Är reglerna rimliga?
  • Kan resultatet kontrolleras?
  • Vem ansvarar när något blir fel?

Felsökning

Vanliga utmaningar

SyntaxfelSpråket kan inte tolka koden.
ExekveringsfelProgrammet avbryts när ett fel inträffar.
Logiskt felProgrammet körs men ger fel resultat.
Otydligt problemKoden löser fel behov.

Kvalitet

Kod läses oftare än den skrivs

  • använd tydliga namn
  • dela upp koden i begripliga delar
  • kommentera varför – inte varje självklar rad
  • undvik onödig upprepning
  • gör programmet begripligt för användaren

Ren kod är lättare att testa, ändra och samarbeta kring.

Praktisk övning

Planera ett automatiserat verktyg

  1. Välj en återkommande uppgift.
  2. Beskriv indata, bearbetning och utdata.
  3. Skriv pseudokod.
  4. Identifiera variabler, villkor, loopar och funktioner.
  5. Skapa minst fem testfall.
  6. Beskriv hur felaktig inmatning ska hanteras.

Exit ticket

Tre frågor

  1. Varför bör problemet och lösningen planeras innan koden skrivs?
  2. När behövs ett villkor och när behövs en loop?
  3. Varför måste ett automatiserat system testas med oväntad inmatning?

Sammanfattning

Kom ihåg

  • Programmering uttrycker en problemlösning som exakta instruktioner.
  • Förstå och planera innan du kodar.
  • Variabler, villkor, loopar och funktioner bygger lösningen.
  • Testa normala, extrema och felaktiga värden.
  • Bra kod ska vara korrekt, begriplig och möjlig att förbättra.