Lektion 25. Kodestrukturer

Forberedelse

Formål

  • Få mere erfaring omkring backend

Fælles gennemgang

Fra sidst

  • Hvad er backend
  • Hvad er forskellen mellem backend og frontend
  • Hvad er PHP
  • Følg op på f.eks koden her. Brug evt. W3schools / Visual Studio Code
<!DOCTYPE html>
<html>
<body>
<h1>Matematik i informatik</h1>
<?php
$tal1 = 2;
$tal2 = 3;

// nu skal vi regne
$plus = $tal1 + $tal2;
$minus = $tal1 - $tal2;

echo "Plus: " . $tal1 . " plus " . "$tal2" . " er lig med " . $plus . "<br>";
echo "Minus: " . $tal1 . " minus " . "$tal2" . " er lig med: " . $minus . "<br>";
?>
</body>
</html>

Lektien til denne gang

  • Forklar om datatyper ud fra teorien
  • Giv et par eksempler på datatyper
  • Hvad er forgrening og betingelse
    • Hvad er forskellen mellem IF-ELSE og IF-ELSE-ELSEIF

Øvelser

Inden du går i gang: Fortsæt med at:

  • Du skal lave kodeøvelserne individuelt. Snak gerne sammen med andre, men du skal arbejde individuelt
  • Du skal arbejde i VS Code. Du må gerne kopiere kode fra W3schools, men vi kan lige så godt gøre det rigtigt fra starten. I den første lektion her er der sat tid af til, at du lige skal på plads i VS Code
  • Gem hver af dine opgave i en selvstændig PHP fil, f.eks. opgave_25-3.php
  • MEGET VIGTIGT: DU MÅ GERNE LEGE OG VÆRE NYSGERRIG. Du lærer meget, når du udfordrer koden og går ud over opgaverne. Nå igennem opgaverne, men når du er færdig, så prøv selv nogle ting af

25.1 Datatyper

  • Kik på koden nedenfor. I variablen $tal1 har jeg sat en tekst ind i stedet for et tal. Det er naturligvis noget vrøvl at lægge tekst og tal sammen, som om det var et almindeligt regnestykke. Men du skal nu undersøge, hvordan PHP reagerer. Jeg siger på forhånd, at PHP er ualmindelig tolerant, det her var ikke gået med javaScript!
  • Her er koden:
<!DOCTYPE html>
<html>
<body>

<h1>Matematik i informatik</h1>
<?php
$tal1 = "Hej Verden";
$tal2 = 5;
$plus = $tal1 + $tal2;

// nu skal vi regne
echo "Tal 1 er " . $tal1 . "<br>";
echo "Tal 2 er " . $tal2 . "<br>";
echo "Tal 1 plus tal 2 er lig med " . $plus;

?>

</body>
</html>
  • Prøv koden af i VS Code
  • Hvordan virker den
  • Hvad er resultatet, kan PHP håndtere situationen

Fjern anførselstegnene eller “gnyfferne” omkring “Hej verden”, så der står $tal1 = Hej verden i stedet for $tal1 = “Hej verden”.

  • Test den nye kode af. Du skulle gerne få en fejl
  • Prøv at forklare fejlen ud fra din viden om datatyper

25.2 Hyggematematik

Nu skal du for en sjælden gangs skyld hygge dig med matematik. Det hyggelige består i, at du kan få lov til at lave lige så mange fejl, du vil, og endda få ros for det. Bare du koder rigtigt :-). Du må endda snyde og kikke på https://www.w3schools.com/php/php_math.asp.

  • Skriv en kode, der finder det mindste tal af talrækken her (1, 5, 8, 34, -3, 7, 2.8, 4), og skriv svaret på skærmen
  • Skriv en kode, der finder det største tal af talrækken her (1, 5, 8, 34, -3, 7, 2.8, 4), og skriv svaret på skærmen
  • Få PHP til at regne ud, hvad kvadratroden af 16 er
  • Få PHP til at skrive tallet π (pi) på skærmen. π er ca. lig med 3,14 og bruges typisk i formler, der har med cirkler at gøre
  • Du har nu 3 beløb i kroner. Skriv kode, der kan runde beløbene af til nærmeste antal hele kroner. Beløbene er: 10,35, 10,77 og 11,50. Gør det pænt, så du skriver på skærmen noget i retning af. “Det første beløb er 10,35, og det rundes af til beløbet xx”. “Det næste beløb er 10,77, og det rundes af …”.
  • Få PHP til at udskrive et tilfældigt tal

25.3 Lad os spille bingo

Skriv en kode, som kan returnere et tilfældigt tal mellem 1 og 90. Så prøver vi den af og spiller et lille spil bingo i klassen i gennemgangen af opgaverne.

25.4 Forgrening og betingelse 1

Du skal nu ENDELIG til at kode en “rigtig” forgrening og betingelse. Er du ikke glad :-)!

Sæt koden nedenfor ind i en fil i VS Code.

<!DOCTYPE html>
<html>
<body>
<h1>Forgrening og betingelse 1</h1>
<?php
$tal1 = rand(1, 90);
echo "Det tilfældige tal er lig med " . $tal1 . "<br>";

if ($tal1 < "30") {
  echo "Tallet er under 30";
} else {
  echo "Tallet er over eller lig 30";
}
?>
 
</body>
</html>
  • Forklar hvordan koden virker
  • Kør koden flere gange, så du får tal både over og under 30. Får du de rigtige svar
  • Hvorfor tror du, at jeg har kodelinjen echo “Det tilfældige tal er lig med ” . $tal1 . “<br>”; med i koden. Som sådan er den jo overflødig
  • Lav en kommentar over linjen, der forklarer dit bedste bud på, hvorfor linjen er med
  • Kopier koden og lav om, så koden
    • Kun laver tilfældige tal mellem 1 og 10
    • Kan afgøre, om tallet er over eller under 5

25.5 Forgrening og betingelse 2

  • Kopier koden fra opgave 24.4 og sæt den ind i et nyt php dokument i VS Code
  • I øjeblikket kan koden afgøre, om det tilfældige tal er over eller under 30. Du skal nu ændre i koden, så programmet kan træffe ikke 2, men 3 beslutninger
    • Give en besked, når tallet er over 30
    • Give en anden besked, når tallet er over eller lig med 30 men under 60
    • Give en 3. besked, når tallet er over eller lig 60
  • Tip: Du får brug for ELSEIF

25.6 Postnumre i Danmark

Alle steder i Danmark hører under under et postnummer. De laveste postnumre findes på Sjælland i København, de højeste i Skagen. Grønland og Færøerne har særlige postnumre.

Du skal nu skrive et program, der kan afgøre, hvor et tilfældigt postnummer i Danmark hører hjemme.

  • Start med at få et tilfældigt tal mellem 1000 og 9999 begge tal inklusive
  • Skriv en linje, der skriver tallet på skærmen
  • Lav en forgrening/betingelse, der fortæller, hvor postnumret hører hjemme
    • Postnummer 1000 – 4999: Øst for Storebælt
    • Postnummer 5000 – 5999: Fyn
    • Postnummer 6000 – 9999: Jylland
  • Gem din kode

25.7 Flere postnumre i Danmark

Tag en kopi af koden fra før, for nu udvider vil opgaven lidt.

  • Nu skal du i starten lave et tilfældigt tal mellem 100 og 9999
  • Der er nu et par tilføjelser til listen ovenfor.
    • Postnumre 100 – 999: Færøerne
    • Postnumre 3700 – 3799: Bornholm
    • Postnumre 3900 – 3999: Grønland

Tip: Når du skal teste, kan det være du skal “snyde” lidt. I stedet for at vente på, at f.eks. et postnummer på Færøerne kommer frem, så kan du udkommatere, at den laver et tilfældigt tal. I stedet for at skrive:

<?php
$tal1 = rand(1, 90);
echo "Det tilfældige tal er lig med " . $tal1 . "<br>";

if ...

Så bestem på forhånd, hvad $tal1 skal være, men uden at slette noget kode. Du udkommaterer ved at sætte 2 skråstreger foran den sætning, du vil udkommatere. I stedet skriver du en ny sætning, hvor du tvinger $tal1 til at være en bestemt værdi, her 500 dvs. et færøsk postnummer. Det ser sådan ud:

<?php
// $tal1 = rand(1, 90);
$tal1 = 500;
echo "Det tilfældige tal er lig med " . $tal1 . "<br>";

if ...

?>