Teknik 1 · Programmering · Kapitel 1
Vad är programmering?
Datorer är snabba men inte smarta: de gör exakt det vi säger åt dem — varken mer eller mindre. Programmering handlar om att lösa problem genom att beskriva lösningen så noggrant att en dator kan följa den.
Datorer följer instruktioner
Ett program är en samling instruktioner som datorn utför i tur och ordning. Du som programmerar bestämmer hur problemet ska lösas — datorn följer bara instruktionerna.
Det är svårare än det låter. Människor fyller automatiskt i det som saknas i en instruktion, men det gör inte en dator. Säger du ”bred smör på brödet” vet den inte att den först ska öppna smörpaketet, ta en kniv och hålla kniven i skaftet.
Diskutera
Skriv instruktioner för hur man gör en smörgås, och låt en kompis följa dem exakt ordagrant — utan att tänka själv. Vilka steg saknades? Vad blev fel?
Algoritmer och pseudokod
En algoritm är en steg-för-steg-beskrivning av hur ett problem löses. I ett program skrivs algoritmen i ett programmeringsspråk, men den kan också skrivas med vanliga ord. Det kallas pseudokod och är ett bra sätt att tänka ut lösningen innan man börjar koda.
Som exempel tar vi ett program som räknar ut arean av en cirkel med formeln A = π · r².
1. Fråga användaren efter cirkelns radie.
2. Räkna ut arean med formeln A = π · r².
3. Visa resultatet för användaren.Samma algoritm i Python. Tryck på Kör och skriv in en radie — du kan också ändra i koden och köra igen.
# Importera math-biblioteket för att få tillgång till värdet av pi
import math
# Fråga användaren om radien
radie = float(input("Ange cirkelns radie: "))
# Beräkna arean med formeln: area = π · radie²
area = math.pi * radie ** 2
# Skriv ut resultatet
print(f"Arean av cirkeln med radie {radie} är {area:.2f}")Kom ihåg
Varje rad i pseudokoden blev en eller ett par rader Python. Börja gärna med pseudokod när du ska lösa en uppgift — då vet du vad programmet ska göra innan du funderar på hur det skrivs.
Aktivitetsdiagram
Ett aktivitetsdiagram (flödesschema) visar en algoritm som en bild. Man följer pilarna från start till slut:
- en oval markerar start och slut,
- en rektangel är något som görs, till exempel ”Borsta tänderna”,
- en romb är ett beslut med två utgångar, till exempel ”Regnar det?” med pilarna ja och nej.
Besluten blir senare if-satser i koden, och pilar som går tillbaka uppåt blir loopar.
Uppgift · Pseudokod och aktivitetsdiagram
Gör en pseudokod och ett aktivitetsdiagram över hur du tar dig till skolan. Börja med att väckarklockan ringer och avsluta med att du kliver in i skolan. Ta med minst ett beslut, till exempel om du hinner äta frukost eller om bussen har gått.
Visa lösningsförslagDölj lösningsförslag
Ett exempel — ditt blir säkert annorlunda:
1. Väckarklockan ringer.
2. Om jag är trött: tryck på snooze, vänta 9 minuter och gå tillbaka till steg 1.
3. Stig upp, klä på mig och borsta tänderna.
4. Om det finns tid kvar: ät frukost.
5. Gå till busshållplatsen.
6. Om bussen har gått: cykla till skolan. Annars: åk buss.
7. Kliv in i skolan.I aktivitetsdiagrammet blir steg 2, 4 och 6 romber (beslut). Från steg 2 går en pil tillbaka till väckarklockan — en loop.
Programmeringsspråk
Datorn förstår egentligen bara maskinkod — ettor och nollor. Ett programmeringsspråk är ett gränssnitt mellan människan och datorn: vi skriver kod som går att läsa, och den översätts sedan till maskinkod.
Språken brukar delas in i nivåer efter hur nära hårdvaran de ligger:
- Exempel
- —
- Kännetecken
- Ettor och nollor som processorn kör direkt.
- Exempel
- Assembly
- Kännetecken
- Maskinkodens instruktioner med namn i stället för siffror.
- Exempel
- C, C++, Rust
- Kännetecken
- Snabba, men programmeraren sköter mycket själv, till exempel minnet.
- Exempel
- Python, Java, JavaScript
- Kännetecken
- Lättare att läsa och skriva — mycket sköts automatiskt.
- Exempel
- MATLAB, SQL
- Kännetecken
- Gjorda för ett visst område, till exempel beräkningar eller databaser.
Olika språk har olika syntax — regler för hur koden ska skrivas — men grundidéerna är desamma: variabler, villkor, loopar och funktioner. Många av dagens vanligaste språk stöder dessutom objektorienterad programmering (OOP), där programmen byggs upp av objekt. Kan du ett språk går nästa mycket lättare.
Python
I kursen använder vi Python. Det är ett av världens mest använda programmeringsspråk och relativt lätt att lära sig, eftersom koden blir ren och lättläst.
En orsak är att Python använder indentering — indrag med mellanslag eller tabb — för att visa vilka rader som hör ihop. Många andra språk använder klamrar { } till det.
temperatur = 25
if temperatur > 20:
print("Det är varmt!") # indragen: körs bara om villkoret är sant
print("Ta på dig shorts.")
print("Ha en bra dag!") # inte indragen: körs alltidAll kod i kapitlen kan du köra direkt på sidan. Under Verktyg → Python finns också en tom kodruta där du kan experimentera fritt. Vill du hellre använda något annat fungerar till exempel webbplatsen online-python.com eller programmet Thonny på en dator.
Snabbkoll
Har du förstått?
1.Vad är en algoritm?
2.Vad är pseudokod?
3.Hur visar Python vilka rader som hör till en if-sats?