Table of Contents

Introduktion

Forestil dig, at du bager en kage. Du følger en opskrift, der beskriver hvert trin i processen: bland mel, sukker og smør, pisk æg, og bag ved 175 grader. I programmering fungerer funktioner på samme måde. De er som opskrifter, der indeholder en række instruktioner, som computeren skal følge. I stedet for at skrive den samme kode flere gange, kan du definere en funktion én gang og derefter “kalde” den, når du har brug for den. Ligesom du kan bruge den samme kageopskrift igen og igen, kan du bruge den samme funktion flere steder i dit program.

E17f1877 6a8a 4d56 B184 A71bb40aee0a

Funktioner i Processing

Indtil nu har du brugt kommandoer som background(0);, size(600, 600); og rect(x, y, w, h);. Disse kommandoer har udført en specifik opgave, men det du måske ikke har tænkt over, er, at de faktisk er funktioner, som allerede er defineret i Processing. Funktioner som disse gør det nemt at udføre bestemte handlinger uden at skulle skrive al koden for opgaven igen og igen.

Oprettelse af egne funktioner

Ligesom du kan skabe din egen opskrift til en ny kage, kan du også lave dine egne funktioner i Processing. Det giver dig mulighed for at organisere din kode og genbruge den på tværs af programmet.

void setup() {
  size(600, 600);
  background(200);
  
  // Kalder vores egen funktion for at tegne et rektangel
  tegnRektangel(100, 100, 200, 150);
}

// Her definerer vi vores egen funktion
void tegnRektangel(int x, int y, int bredde, int højde) {
  rect(x, y, bredde, højde);
}

I eksemplet ovenfor har vi oprettet en funktion, der hedder tegnRektangel(). Denne funktion tager fire parametre: x, y, bredde, og højde, som fortæller, hvor rektanglet skal placeres, og hvor stort det skal være. Når vi kalder funktionen i setup(), bliver den udført, og rektanglet tegnes.

Funktioner gør din kode mere organiseret og nemmere at vedligeholde. I stedet for at skrive den samme kode mange gange, kan du blot kalde funktionen, præcis som når du følger en kageopskrift flere gange. Dette sparer tid og gør koden mere overskuelig!

Funktioner med returværdier

Forestil dig, at du bager en kage, og du gerne vil vide, hvor mange kager du kan lave med de ingredienser, du har. Her skal du ikke bare følge opskriften – du vil også gerne have et svar tilbage: “Hvor mange kager får jeg?”. I programmering kan funktioner også give os et svar tilbage, og det kaldes en returværdi.

En funktion med en returværdi kan udføre beregninger eller behandlinger og derefter sende et resultat tilbage til det sted, hvor funktionen blev kaldt. På den måde kan du bruge det resultat i resten af dit program.

Eksempel på en funktion med returværdi

Lad os nu udvide vores eksempel og lave en funktion, der beregner arealet af et rektangel og returnerer det:

void setup() {
  size(600, 600);
  background(200);
  
  // Kalder funktionen og gemmer returværdien i en variabel
  int areal = beregnAreal(200, 150);
  
  // Skriver arealet ud i konsollen
  println("Arealet af rektanglet er: " + areal);
}

// Definerer en funktion, der beregner og returnerer arealet af et rektangel
int beregnAreal(int bredde, int højde) {
  int areal = bredde * højde;
  return areal;
}

I dette eksempel har vi oprettet en funktion kaldet beregnAreal(), som tager to parametre: bredde og højde. Funktionen beregner arealet ved at multiplicere de to tal, og derefter bruger den nøgleordet return til at sende resultatet (arealet) tilbage til der, hvor funktionen blev kaldt.

Når vi kalder beregnAreal(200, 150) i setup(), får vi returværdien, som er arealet af rektanglet, og vi gemmer den i variablen areal. Derefter kan vi bruge denne værdi i resten af vores program – i dette tilfælde skriver vi den ud i konsollen.

Hvorfor bruge returværdier?
  • Resultater fra beregninger: Ligesom at vide, hvor mange kager du kan bage, kan en funktion returnere resultater fra beregninger, som du kan bruge videre i dit program.
  • Fleksibilitet: En funktion med en returværdi kan bruges på mange måder, fordi den giver dig et svar tilbage, som kan være forskelligt afhængigt af, hvad du sender ind i funktionen.
  • Optimering af koden: Ligesom med opskrifter hjælper returværdier dig med at undgå at skrive den samme kode flere gange og gør din kode mere fleksibel og brugervenlig.