DSDS - ps, Opgavesæt 3

Sidst opdateret 11-09-2007

DSDS

Opgavesæt 3: Programmering med PHP

I dette opgavesæt skal vi for første gang benytte programmeringssproget PHP til at konstruere dynamiske websider.

Ved bedømmelsen lægges der blandt andet vægt på:

Opgave A (20 procent) - Temperaturservice

I denne opgave skal du fremstille et PHP-script som omregner en temperatur i enheden grader Fahrenheit til en temperatur i enheden grader Celcius.

I USA måles temperatur typisk i grader Fahrenheit. Udfra temperaturen i grader Fahrenheit (tempfahrenheit) beregnes temperaturen i grader Celcius (tempcelcius) som følger:

tempcelcius = 5.0/9.0 * (tempfahrenheit - 32.0)

Hvis temperaturen i Fahrenheit er 68 grader er temperatuen i grader Celcius altså 5.0/9.0 * (68.0 - 32.0) = 0.555556 * 36.0 = 20.0.

Skriv et script, som omregner indholdet af en variabel $tempfahrenheit (temperatur i grader Fahrenheit) til en temperatur i grader Celcius og gemmer dette resultat i en variabel $tempcelcius.

Scriptet kan have formen:

  <?php
    $tempfahrenheit = 68;
    
    $tempcelcius = //[PHP-kode som beregner temperaturen i Celcius udfra $tempfahrenheit];
    echo $tempfahrenheit;
    echo $tempcelcius;
  ?>

Indsæt den manglende PHP-kode (inkl. beregningen) og den nødvendige HTML.

Gem scriptet som H:\public_html\DSDS\ps3\temperatur.php på ITUs webserver.

Opgave B (20 procent) - Temperaturservice

I denne opgave skal du fremstille en service på internettet, hvor brugeren i en formular indtaster en temperatur i grader Fahrenheit. Genbrug din PHP-kode fra opgave A således at din nye temperatur2.php- fil omregner en temperatur i grader Fahrenheit udfra et tal scriptet får fra en formular. Bemærk at værdien af variablen $tempfahrenheit nu ikke skal initialiseres til 68 i scriptet. Variablen kan antages allerede at indeholde temperaturen indtastet af brugeren i en formular.

HTML-filen temperatur.html kan passende indeholde følgende HTML kode. (Husk at tilrette HTML-koden til et korrekt HTML-dokument med <head>, <body>, m.m.):

  <form method="post" action="temperatur2.php">
  Angiv temperaturen i grader Fahrenheit
  	<input type="text" name="tempfahrenheit" size="7">
  	<input type="submit">
  </form>

Din nye udgave af PHP-scriptet som beregner temperaturen i grader Celcius udfra temperaturen i grader Fahrenheit, placeres i filen H:\public_html\DSDS\ps3\temperatur2.php. Filnavnet skal være identisk med action værdien angivet i filen temperatur.html.

Filen temperatur2.php kan passende have følgende format:

  [temperatur-omregninger fra opgave A]
  <!DOCTYPE......
  <html>
    <head>
      <title>Temperaturservice</title>

    </head>
    <body>
      <h2>Temperaturservice</h2>
      Temperatur i grader Fahrenheit: $tempfahrenheit<p>
      Temperatur i grader Celcius: $tempcelcius
    </body>

  </html>

Når temperatur2.php kaldes fra temperatur.html er det således værdien i tempfahrenheit form-feltet, som overføres til filen temperatur2.php.

Indsæt et link fra den genererede side tilbage til temperatur.html siden. (Når du indsætter links i PHP-kode skal du huske at quotes (") skal skrives \"). Indsæt også et link fra siden DSDS/index.html til temperaturservicen.

De to skærmbilleder kan for eksempel se således ud:

Temperatur Temperatur oversat

Opgave C (20 procent) - Gang to tal med hinanden!

I denne opgave skal du konstruere en multiplikationsservice for elever i 3. klasse. Servicen skal tilbyde eleven at gange to tal med hinanden og vise resultatet. Dit PHP-script skal gange de to tal med hinanden og returnere (til elevens browser) både de to tal og resultatet af multiplikationen.

Servicen skal - som dine andre opgaveløsninger - være tilgængelig på internettet som:

http://www.itu.dk/people/login/DSDS/ps3/multiplikation.html

hvor login er dit ITU brugernavn. I biblioteket H:public_html/DSDS/ps3/ skal du altså have en fil multiplikation.html med et form-felt til indtastning af de to tal.

Yderligere skal du konstruere en PHP-fil (ps3/multiplikation.php), som når den udføres af web-serveren, returnerer en HTML-side indeholdende resultatet for det indtastede tal. Sørg for at der er forklaring på hvad brugeren (eleven) skal gøre og hvad resultatsiden viser.

Indsæt et link fra din side DSDS/index.html til multiplikationsservicen.

Opgave D (40 procent) - Æblegrødsprogram

I denne opgave skal du konstruere et program aeblegroed, som genererer en opskrift på æblegrød afhængigt af antallet af mennesker der skal bespises. Dit PHP-program skal altså returnere en HTML-side indeholdende en æblegrødsopskrift til det pågældende antal mennesker som angives i en formular.

Her er en æblegrødsopskrift passende til én person:

IngredienserFremgangsmåde
  • 2 æbler
  • 1 spsk sukker
  • 1/2 dl vand
  • 1 nip vanille
Æblerne koges og moses sammen med sukkeret, vandet og vanillen.

Det er altså din opgave at skrive PHP-scriptet aeblegroed.php, således at proceduren returnerer en opskrift for det antal personer du kalder programmet med (formen på opskriften er ikke vigtig!)

Her er et eksempel på det returnerede HTML efter et kald af aeblegroed.php?antalspisere=12:

<!DOCTYPE......
  <html>
  ...
  <table border="1">
  <tr><th align="center">Ingredienser</th><th>Fremgangsmåde</th></tr>

  <tr><td>
    <ul><li> 24 æbler
        <li> 12 spsk sukker
        ...
    </ul></td>...
  </table>
  ...
  <html>

Du skal fremstille disse filer:

Gem filerne i biblioteket H:public_html/DSDS/ps3/

De to skærmbilleder kan f.eks. se således ud:

aeblegroed.html aeblegroed.php

Martin Elsman - mael@itu.dk
Jonas Holbech - holbech@itu.dk

Valid HTML 4.01 Transitional