Presentationer Slide 1/1

Kap 2.1

Vad är en algoritm?

En algoritm är en tydlig plan för hur ett problem ska lösas steg för steg.

Mål

Efter lektionen ska du kunna...

  • förklara vad en algoritm är
  • beskriva en algoritm i text och pseudokod
  • känna igen olika typer av algoritmer
  • testa en algoritm med flera testfall

Kärnidé

Inte avancerat från början

En algoritm är instruktioner.

Instruktionerna ska ha en tydlig ordning.

De ska leda till ett resultat.

De ska gå att testa.

Definition

En sekvens av steg

En algoritm löser ett problem eller utför en uppgift.

Den kan beskrivas med text, pseudokod, flödesschema eller kod.

Den ska vara tydlig nog för någon annan att följa.

En bra algoritm

Fem delar

  • indata: vad behövs från början?
  • steg: vad händer och i vilken ordning?
  • villkor: vilka beslut måste fattas?
  • resultat: vad ska algoritmen ge?
  • testfall: hur vet vi att den fungerar?

Vardag

Algoritm för kaffe

  1. Fyll vatten i kaffebryggaren.
  2. Lägg i ett kaffefilter.
  3. Tillsätt kaffe i filtret.
  4. Starta bryggaren.
  5. Vänta tills det är klart.
  6. Servera.

Programmering

Jämnt eller udda

  1. Läs in ett tal.
  2. Dela talet med 2.
  3. Om resten är 0: skriv Jämnt.
  4. Annars: skriv Udda.

Pseudokod

Samma algoritm utan Python-detaljer

INPUT number

IF number MOD 2 == 0 THEN
    PRINT "Even"
ELSE
    PRINT "Odd"

Python

Samma idé som kod

number = int(input("Skriv ett tal: "))

if number % 2 == 0:
    print("Jämnt")
else:
    print("Udda")

Operator

Vad betyder %?

% ger resten vid division.

8 % 2  # 0
9 % 2  # 1

Om resten är 0 när vi delar med 2, är talet jämnt.

Typer

Algoritmer används överallt

  • beslut: kontrollera lösenord eller rabatt
  • beräkning: räkna ut medelvärde
  • sökning: hitta ett namn i en lista
  • sortering: ordna värden
  • repetition: upprepa tills ett villkor uppfylls

Problem

Ungdomsrabatt

Vi vill kontrollera om en person får ungdomsrabatt.

Indata: personens ålder.

Villkor: är åldern under 18?

Resultat: rabatt eller ingen rabatt.

Textform

Algoritm för rabatt

  1. Läs in personens ålder.
  2. Om åldern är under 18: skriv Du får rabatt.
  3. Annars: skriv Du får ingen rabatt.

Pseudokod

Rabatt med villkor

INPUT age

IF age < 18 THEN
    PRINT "You get a discount"
ELSE
    PRINT "No discount"

Test

Algoritmen måste testas

  • 12 → ska ge rabatt
  • 17 → ska ge rabatt
  • 18 → ska inte ge rabatt
  • 30 → ska inte ge rabatt

Gränsfall

Varför testa 18?

18 är precis på gränsen.

Om villkoret är age < 18 får 18-åringar inte rabatt.

Om du råkar skriva age <= 18 ändras regeln.

Misstag

Vanliga fel

  • steg som är för otydliga
  • fel gräns i villkor
  • inget else-fall
  • bara ett enda testvärde

Öva själv

Fyra uppgifter

  1. Skriv algoritm för ungdomsrabatt i textform.
  2. Skriv pseudokod för medelvärde av tre tal.
  3. Skriv Pythonkod för jämnt eller udda.
  4. Skapa minst fyra testfall till en egen algoritm.

Reflektion

Fundera

  • Hur skiljer sig en algoritm från färdig kod?
  • Hur hjälper planeringen innan du kodar?
  • Vilken typ av algoritm verkar mest användbar?

Sammanfattning

Kom ihåg

  • En algoritm är en tydlig sekvens av steg.
  • Den har indata, steg, villkor, resultat och testfall.
  • Pseudokod hjälper dig planera innan syntaxen.
  • Testfall visar om algoritmen följer regeln.