Modul 3, og flyttet noen funksjoner til common.php

master
Eirik Th S 2021-09-08 15:19:06 +02:00
parent 536cf0e4e9
commit 1ad6b7e698
7 changed files with 248 additions and 12 deletions

View File

@ -27,3 +27,16 @@ function title(): string {
return "Modul ".$modulNr." - Oppgave $oppgNr";
}
function higher($int1, $int2): int {
if($int1 >= $int2){
return $int1;
}
return $int2;
}
function lower($int1, $int2): int {
if($int1 < $int2){
return $int1;
}
return $int2;
}

View File

@ -19,18 +19,7 @@
<div>
<?php
function higher($int1, $int2): int {
if($int1 >= $int2){
return $int1;
}
return $int2;
}
function lower($int1, $int2): int {
if($int1 < $int2){
return $int1;
}
return $int2;
}
$tall1 = $_GET['t1'] ?? random_int(1,100);
$tall2 = $_GET['t2'] ?? random_int(1,100);

View File

@ -15,7 +15,18 @@
$alder = $_GET['alder'] ?? '17';
$navn = $_GET['navn'] ?? 'Hans';
// Bruker her en shorthand if()-setning. Den plasseres rett inn der den trengs.
echo "<p>$navn er $alder og dermed ".($alder<18?'ikke ':'')."myndig</p>";
// Alternativ med en 'vanlig' IF-setning:
/*
if($alder < 18){
echo "<p>$navn er $alder og dermed ikke myndig</p>";
}
else {
echo "<p>$navn er $alder og dermed myndig</p>";
}
*/
?>
<form>

30
modul3/index3_2.php Normal file
View File

@ -0,0 +1,30 @@
<?php include 'common.php'; ?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<link rel="stylesheet" href="index.css">
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Teller</h2>
<?php
// Variabel som holder summen til alle tallene.
$sum = 0;
// Løkke fra 0 til og med 9 som skriver ut hvert tall, og oppdaterer $sum variablen.
for($i = 0; $i <= 9; $i++){
$sum += $i;
echo $i."<br>\n";
}
echo "Ferdig å telle! Summen av tallene ble $sum<br>\n";
?>
</div>
</body>
</html>

54
modul3/index3_3.php Normal file
View File

@ -0,0 +1,54 @@
<?php include 'common.php'; ?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<link rel="stylesheet" href="index.css">
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Liten regnemaskin</h2>
<?php
// Valgte tall eller tilfeldige tall:
$tall1 = $_GET['t1'] ?? random_int(1,50);
$tall2 = $_GET['t2'] ?? random_int(1,100);
// Variabler som holder de første verdiene til formen på bunnen av siden.
$startT1 = $tall1;
$startT2 = $tall2;
// Sjekker om tallene er tall, og gir en feilmelding hvis de ikke er det.
if(!is_numeric($tall1) || !is_numeric($tall2)){
echo "<p>Et av tallene er ikke et tall. Får ikke til å regne ut hva verdiene blir da.</p>\n";
}
else {
for($i = 0; $i < 10; $i++){
// Regne ut verdiene
$sum = $tall1+$tall2;
$diff = higher($tall1, $tall2) - lower($tall1, $tall2);
$avg = $sum/2;
// Skrive ut verdiene
echo "<p>Tallene $tall1 og $tall2 blir totalt <code>$sum</code>, differenserer <code>$diff</code> og har gjennomsnitt <code>$avg</code></p>";
// Øker $tall1 med èn for hver iterasjon.
$tall1++;
}
}
?>
<!-- En form for å endre tallene -->
<form>
<p>
<input type="number" min="0" max="999" name="t1" value="<?=$startT1;?>">
<input type="number" min="0" max="999" name="t2" value="<?=$startT2;?>">
<input type="submit" value="Sjekk tallene...">
</p>
</form>
</div>
</body>
</html>

50
modul3/index3_4.php Normal file
View File

@ -0,0 +1,50 @@
<?php include 'common.php'; ?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<link rel="stylesheet" href="index.css">
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Sjekk av fylkestilhørighet</h2>
<?php
// Array med test-kommuner
$kommuner = array("Kristiansand", "Lillesand", "Birkenes", "Harstad", "Kvæfjord", "Tromsø", "Bergen", "Trondheim", "Bodø", "Alta");
//
foreach ($kommuner as $k){
switch ($k){
case "Kristiansand":
case "Lillesand":
case "Birkenes":
echo "$k er i Agder fylke<br>\n";
break;
case "Harstad":
case "Kvæfjord":
case "Tromsø":
case "Alta":
echo "$k er i Troms og Finnmark fylke<br>\n";
break;
case "Bergen":
echo "$k er i Vestland fylke<br>\n";
break;
case "Trondheim":
echo "$k er i Trøndelag fylke<br>\n";
break;
case "Bodø":
echo "$k er i Nordland fylke<br>\n";
break;
default:
echo "$k er en ukjent eller ustøttet kommune<br>\n";
}
}
?>
</div>
</body>
</html>

89
modul3/index3_5.php Normal file
View File

@ -0,0 +1,89 @@
<?php include 'common.php'; ?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<link rel="stylesheet" href="index.css">
<style>
td {
height: 90px;
width: 90px;
}
tr:nth-child(2n) td:nth-child(2n), tr:nth-child(2n+1) td:nth-child(2n+1) {
background-color: #666;
color: #fff;
}
</style>
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Sjakk og hvete</h2>
<?php
function numToStr($num): string {
$ret = [];
// Definerer hvilke tall vi skal dele opp på
$tallTekster[1_000_000_000_000_000_000] = "trillion";
$tallTekster[1_000_000_000_000_000] = "billiard";
$tallTekster[1_000_000_000_000] = "billion";
$tallTekster[1_000_000_000] = "milliard";
$tallTekster[1_000_000] = "million";
$tallTekster[1_000] = "tusen";
$tallTekster[100] = "hundre";
// Løkke gjennom de tallene
foreach ($tallTekster as $desimal => $navn){
if(($tall = floor($num/$desimal)) > 0){
$tekst = $navn;
// Gramatisk riktig når det kun er én enhet (unntak tusen og hundre)
if($tall != 1 && $navn != "tusen" && $navn != "hundre" && $navn != ""){ $tekst .= "er"; }
$ret[] = $tall." ".$tekst;
// Trekker fra tallene i $num, så det som står igjen er neste deling
$num = $num-($tall*$desimal);
}
}
// Legger på siste de siste tallene etter en "og"
if($num > 0){
$ret[] = "og ".$num;
}
return str_replace(', og', ' og', implode(', ', $ret));
}
?>
<table border="1">
<tbody>
<tr>
<?php
$i = 1;
echo "<td>$i</td>";
for($c = 2; $c <= 64; $c++){
$i = $i + $i;
if($i > 1_000_000_000){
echo "<td>".numToStr($i)."</td>";
}
else {
echo "<td>$i</td>";
}
// Layout - 8 kolonner
if($c % 8 == 0){
echo "</tr>\n <tr>";
}
}
?>
</tr>
</tbody>
</table>
</div>
</body>
</html>