Forberedelse
- Læs resten af kapitel 15 fra og med afsnit 15.8 Loops
- Repeter, hvad begrebene forgrening og betingelse samt loops og arrays dækker over. Se evt. kapitel 10: https://bliv-klogere.ibc.dk/index.php/laerebog-til-modul-2/#Kapitel_10_Kodebegreber
Formål
- Lære en masse om loops og arrays
Fælles gennemgang
Fra sidst
- Hvad er en forgrening/betingelse
- Forklar forskellen mellem IF alene, IF-ELSE og IF-THEN-ELSE. Brug f.eks. W3schools til hjælp: https://www.w3schools.com/php/php_if_else.asp
Lektien til denne gang
- Hvad er arrays, og hvad er forskellen mellem variable og arrays
- Hvad kan vi bruge arrays til
- Fortæl om de forskellige arrays ud fra kapitlet https://bliv-klogere.ibc.dk/index.php/laerebog-til-kapitel-4-kapitel-a-aa/#15_8_Arrays
- Hvad er loops
- Fortæl om de forskellige loops
- Giv et eksempel: https://www.w3schools.com/php/php_arrays_sort.asp
Øvelser
26.1 Arrays
- Hvorfor er det praktisk med et array frem for individuelle variable
- Hvilke typer arrays findes
- Du skal nu gemme nedenstående oplysninger i et array. Hvilken type array vælger du
- Jeg vil have en liste over alle klubberne i superligaen. AGF, FC Midtjylland….. (unævnlige klubber fra Malmø Vest/København)
- Jeg har en liste over fornavnene på alle elever i en klasse
- Jeg vil have en liste med basis oplysninger på elever i en klasse: Fornavn, efternavn, adresse, postnummer og by
- Jeg har en liste over elever og deres karakterer i informatik. Jeg vil have, at elevens fornavn er primærnøglen
26.2 Dit første array
Lav en ny mappe til dine filer til denne lektion. Tag koden nedenfor og sæt den ind i et dokument.
<!DOCTYPE html>
<html>
<body>
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
</body>
</html>
- Hvad sker der i koden
- Hvorfor står der $cars[1, hvad står 1-tallet for
- Tilføj 2 biler mere til dit array. Jeg foreslår Ferrari og Tesla, men du bestemmer 🙂
- Udskriv de 2 biler
- Nu siger vi, at du vil udskrive lige netop BMW. Lav en echo-sætning, hvor du skriver: Mit favorit bilmærke er BMW. Du skal selvfølgelig hente navnet BMW fra arrayet
26.3 Udskriv et array 1
Kopier koden over til et dokument. Tilføj en kodelinje, der skriver: “Her er en liste over nogle bilmærker: …. (udskriv alle bilerne fra arrayet) ..”
<!DOCTYPE html>
<html>
<body>
<?php
$cars = array("Volvo", "BMW", "Toyota", "Citroen", "Tesla", "Mazda", "Aston Martin");
?>
</body>
</html>
26.4 Udskriv et array 2
I stedet for at udskrive elementer i et array enkeltvis, så kan vi gøre det noget smartere vha. et loop. I praksis bruger vi næsten altid loops. Sæt koden nedenfor ind i et dokumentet. Du skal undersøge, hvad koden kan
<!DOCTYPE html>
<html>
<body>
<?php
$cars = array("Volvo", "BMW", "Toyota");
// sort($cars);
$clength = count($cars);
for($x = 0; $x < $clength; $x++) {
echo $cars[$x];
echo "<br>";
}
?>
</body>
</html>
- Hvad kan koden
- Hvad gør koden $clength = count($cars);
- Forklar, hvordan koden her fungerer: for($x = 0; $x < $clength; $x++)
- Forklar, hvad der er hvad, og brug begreber for koden: F.eks. variable, sekvens mv.
- Jeg har sat 2 streger foran sort($cars);. Hvad gør de 2 streger?
- Fjern de 2 streger. Hvad sker der med rækkefølgen af bilmærkerne i din udskrift
- Erstat koden sort($cars); med koden rsort($cars);. Hvad sker der med rækkefølgen af bilmærkerne i din udskrift
26.5 Små tabeller
Inden du går i gang: Gem dit arbejde, du skal bruge det i det næste opgavesæt. Dvs. du må godt slette dit arbejde, men så kommer du til at lave opgaven her 2 gange.
Fik du aldrig lært de små tabeller i folkeskolen, dvs. 1-tabellen til og med 10-tabellen ? Fortvivl ikke, du får en ny chance nu :-)! Kopier koden herunder ind i en selvstændig PHP fil. Prøv koden af
<!DOCTYPE html>
<html>
<body>
<h1>Her er 1-tabellen</h1>
<?php
$tal = 1;
for($x = 0; $x < 10; $x++) {
echo $tal;
echo "<br>";
$tal = $tal + 1;
}
?>
</body>
</html>
- Forklar, hvordan koden fungerer
- Hvad gør koden $x++
- Hvad gør koden $tal = $tal + 1;
- Erstat koden $tal = $tal + 1 med $tal++. Gør det nogen forskel
- Hjælp: Lige efter sæt en linje ind: echo “Tallet tal = ” . $tal . “<br>”;
- Hvordan hjælper linjen os, og kan vi bruge det i andre sammenhænge
- Tag en kopi af koden og lav den om, så den i stedet for 1-tabellen nu viser 2-tabellen
- Udvid koden, så den både kan vise 1, 2 og 3 tabellen
26.6 WHILE loop
Kopier koden herunder ind i en selvstændig PHP fil, gerne hos W3schools. Prøv koden af.
<!DOCTYPE html>
<html>
<body>
<h1>Prøv et while-loop</h1>
<?php
$x = 0;
while($x <= 100) {
echo "The number is: $x <br>";
$x+=10;
}
?>
</body>
</html>
- Hvad gør koden
- Hvad er forskellen til FOR-loopet
- I hvilke situationer kunne et WHILE loop en bedre løsning end et FOR-loop
- Ændr koden, så den i stedet for at springe med 10 pr. loop kun springer med 5 og vis resultatet
- Ændr koden, så den springer med 17 og løber til 340. Får den tallet 340 med?
- Ændr koden, så den starter ved 170 i stedet for 0, men stadigvæk hopper med 17 op til 340
Her er koden til et DO-WHILE loop. Sæt det ind,og få det til at virke
<!DOCTYPE html>
<html>
<body>
<h1>Prøv et do-while-loop</h1>
<?php
$x = 1;
do {
echo "The number is: $x <br>";
$x++;
} while ($x <= 5);
?>
</body>
</html>
- Hvad er forskellen mellem et WHILE og et DO-WHILE loop
- Ændr koden, så den lige som i den første WHILE kode tæller op til 100 og springer med 10
26.7 Kundeliste
Her er en liste over nogle tilfældige kunder: Kim Kunde, Rikke Rabat, Karen Krejler (spørg, hvis du ikke ved, hvad en krejler er, det er et jysk ord), Danny Discount, Pia Procenter og Inge Inkasso.
- Lav et indekseret array og kald det $kunde med alle kunderne
- Udskriv arrayet i den rækkefølge, de er skrevet ind
- Udskriv arrayet i alfabetisk rækkefølge fra A – Å, dvs. i stigende orden
- Udskriv arrayet i alfabetisk rækkefølge fra Å – A, dvs. i faldende orden
Tip: Du kan få god hjælp hos W3schools på https://www.w3schools.com/php/php_arrays_sort.asp.
26.8 Ekstra opgave. Break
- Kik på eksemplet her hos W3schools.com: https://www.w3schools.com/php/php_looping_break.asp
- Hent din kode fra før, hvor du lavede en tabel (f.eks. 2-tabellen). Sørg for, at koden breaker (stopper), hvis tallet er lig med eller større end 12.