Gå til indholdet

Grundlæggende programmering

Dette afsnit dækker de grundlæggende koncepter i programmering, som du vil støde på, uanset hvilket sprog du vælger at lære. Disse koncepter er universelle og danner fundamentet for al softwareudvikling.

Logik

Programmering handler i bund og grund om at beskrive en proces så præcist, at en computer kan udføre den. Det kræver logik, struktur og opmærksomhed på detaljer. Derfor starter forløbet med det tekniske fundament og bevæger sig derefter gradvist over i kodning, arbejdsvaner og de større systemer, som programmer indgår i.

Det kan være svært i starten at forstå, hvor præcis man faktisk skal være. Se denne video, hvor en far beder sine børn forklare, hvordan han skal lave en sandwich, som om han var en computer, der kun forstår helt konkrete instruktioner.

IDE’er og teksteditorer

Når du begynder at programmere, skal du bruge et værktøj til at skrive og køre din kode. Der er mange muligheder, fra simple teksteditorer til avancerede integrerede udviklingsmiljøer (IDE’er).

En teksteditor er et simpelt program til at skrive og redigere tekstfiler. Eksempler inkluderer Notepad, Sublime Text og Visual Studio Code. Teksteditorer er lette og hurtige, men mangler ofte funktioner som debugging og autofuldførelse.

En IDE (Integrated Development Environment) er et mere avanceret værktøj, der kombinerer en teksteditor med andre funktioner som debugging, autofuldførelse, projektstyring og meget mere. Eksempler inkluderer Visual Studio, JetBrains IntelliJ IDEA, PyCharm og Eclipse.

Til at starte med anbefales det at bruge en simpel teksteditor eller en letvægts IDE som Visual Studio Code, der har mange udvidelser til forskellige sprog. Efterhånden som du bliver mere erfaren, kan du vælge at bruge en mere avanceret IDE, der passer til dine behov.

Som begynder er det vigtigste dog ikke at finde det “perfekte” værktøj. Det vigtigste er at komme hurtigt i gang med at skrive og køre små programmer.

Simpel kodeblok med Blockly

Hello World

“Hello World” er typisk det første program, enhver nybegynder lærer. Programmet gør noget meget simpelt: det udskriver teksten “Hello World” på skærmen. Mens dette kan synes trivielt, er formålet med programmet at demonstrere, hvordan man skriver, kompilerer og kører kode i et programmeringssprog.

Her er “Hello World” i forskellige sprog:

print("Hello World")
console.log("Hello World");
Console.WriteLine("Hello World");

Alle disse programmer gør det samme - de udskriver teksten “Hello World” på skærmen. Men syntaksen (måden koden skrives på) varierer fra sprog til sprog.

Variabler

En af de mest grundlæggende koncepter i programmering er variabler. En variabel er en navngivet plads i hukommelsen, hvor du kan gemme data. Du kan tænke på en variabel som en boks med et navn, hvor du kan lægge noget i, tage det ud og ændre det.

# Python eksempel
navn = "Anna"      # variablen 'navn' gemmer teksten "Anna"
alder = 25         # variablen 'alder' gemmer tallet 25

En vigtig pointe er, at en variabel netop kan ændre værdi, mens programmet kører:

point = 0
point = point + 10
point = point + 5

print(point)  # Udskriver 15

Computeren læser programmet trin for trin. Derfor vil point først være 0, derefter 10 og til sidst 15.

Gode variabelnavne gør kode lettere at forstå. alder, navn og point er lettere at læse end navne som x, y og z, hvis formålet ikke er tydeligt.

Variabler har typisk en type, der bestemmer, hvilken slags data de kan indeholde:

  • Tekst (string): En sekvens af tegn, f.eks. “Hello World”
  • Heltal (int): Et helt tal uden decimaler, f.eks. 42
  • Decimaltal (float/double): Et tal med decimaler, f.eks. 3.14
  • Boolean: En sand/falsk værdi, f.eks. true eller false
# Eksempler på datatyper i Python
tekst = "Hej Verden"     # string
heltal = 100             # int
decimaltal = 3.14159     # float
sandhed = True           # boolean

Operatorer

Operatorer bruges til at udføre handlinger på variabler og værdier. Der er flere typer operatorer:

Aritmetiske operatorer

Operator Beskrivelse Eksempel
+ Addition 5 + 3 = 8
- Subtraktion 5 - 3 = 2
* Multiplikation 5 * 3 = 15
/ Division 6 / 3 = 2
% Modulus (rest) 7 % 3 = 1

Sammenligningsoperatorer

Operator Beskrivelse Eksempel
== Lig med 5 == 5 er sand
!= Ikke lig med 5 != 3 er sand
< Mindre end 3 < 5 er sand
> Større end 5 > 3 er sand
<= Mindre eller lig 3 <= 3 er sand
>= Større eller lig 5 >= 5 er sand

Logiske operatorer

Operator Beskrivelse Eksempel
and Sand hvis begge er sande True and True er True
or Sand hvis mindst én er sand True or False er True
not Vender sandhedsværdien not True er False

Kommentarer

Kommentarer er tekst i koden, der ignoreres af computeren. De bruges til at forklare, hvad koden gør, eller til midlertidigt at deaktivere kode. Kommentarer er vigtige for at gøre koden læsbar og forståelig for andre (og dig selv i fremtiden).

# Dette er en enkelt linje kommentar i Python

"""
Dette er en flerlinjet kommentar
i Python (bruges også til dokumentation)
"""

x = 5  # Du kan også skrive kommentarer efter kode
// Dette er en enkelt linje kommentar i C#

/*
Dette er en flerlinjet kommentar
i C#
*/

int x = 5; // Kommentar efter kode

Input og output

De fleste programmer skal kunne kommunikere med brugeren. Output er, når programmet viser information til brugeren (f.eks. tekst på skærmen). Input er, når programmet modtager information fra brugeren (f.eks. via tastaturet).

# Output
print("Hvad hedder du?")

# Input
navn = input()

# Output med variabel
print("Hej, " + navn)

Datastrukturer

Udover simple variabler kan du også gemme data i mere komplekse strukturer:

Hvis én variabel kun kan gemme én værdi, har du brug for datastrukturer, når du vil gemme flere værdier samlet. Det kan for eksempel være en liste af tal, en samling navne eller oplysninger om en person.

Lister/Arrays

En liste (eller array) er en samling af elementer i en bestemt rækkefølge.

# Python liste
tal = [1, 2, 3, 4, 5]
print(tal[0])  # Udskriver 1 (første element)

Dictionaries/Maps

Et dictionary (eller map) er en samling af nøgle-værdi par.

# Python dictionary
person = {
    "navn": "Anna",
    "alder": 25,
    "by": "København"
}
print(person["navn"])  # Udskriver "Anna"

Eksempel: Gæt et tal

Her er et simpelt eksempel på et program, der kombinerer mange af de koncepter, vi har gennemgået:

Forskellige applikationstyper

Flowdiagram for gæt et tal spil
import random

# Generer et tilfældigt tal mellem 1 og 10
hemmeligt_tal = random.randint(1, 10)

while True:
    # Bed brugeren om at gætte
    gaet = int(input("Gæt et tal mellem 1 og 10: "))

    # Tjek om gættet er korrekt
    if gaet == hemmeligt_tal:
        print("Tillykke! Du gættede rigtigt!")
        break
    elif gaet < hemmeligt_tal:
        print("For lavt! Prøv igen.")
    else:
        print("For højt! Prøv igen.")

Dette program:

  1. Genererer et tilfældigt tal
  2. Beder brugeren om at gætte
  3. Sammenligner gættet med det hemmelige tal
  4. Giver feedback og fortsætter, indtil brugeren gætter rigtigt

Gæt et tal med Blockly

Næste skridt

Her har du set de mest grundlæggende byggesten: variabler, operatorer, input, output og simple datastrukturer. Det næste er at lære, hvordan programmer styrer rækkefølgen af deres handlinger med betingelser, løkker og funktioner. Fortsæt med Flow.