Løbeseddel 4: Kombination af teknikkerne

for Databasestøttet Webpublicering

  sidst rettet 24. september, 2002



I denne og øvelse skal du kombinere teknikkerne som du allerede har mødt i de forrige øvelser. Du skal
- designe HTML-formularer indsat i HTML-tabeller
- tildele værdier til variabler,
- oprette een- og flerdimensionale arrays,
- udføre matematiske beregninger,
- anvende if- og switch-sætninger,
- konstruere for-løkker,
- konstruere funktioner som rummer variabler, beregninger, if- og switch-sætninger, løkker m.m.
- foretage kald - som måske sender attributter (variabler eller arrays) - til disse funktioner.

Du skal også anvende de nye begreber:
- inkluderede filer
- regulære udtryk

Ved gradueringen lægges der bl.a. vægt på:


Opgave A - Gem funktionerne væk i include files

I denne øvelse skal du skrive en række nyttige funktioner som du for eftertiden kan benytte til at udskrive rutineprægede HTML-dele.

Du skal fremstille funktioner der hedder:


writeHTMLHeader($strTitle)
(Opgave A1 - 5 procent)

;som udskriver en HTML-header med starttags, titelfelt med titel indsat osv


writeHTMLFooter()
(Opgave A2 - 5 procent)

;som udskriver body- og html-sluttag.

writeHTMLTable($arrContent,$strWidth)
(Opgave A3 - 10 procent)

; som udskriver indholdet i det tilsendte array (arrContent) i en HTML-tabel med bredden strWidth.
(Anvend en løkke som løber igennem parameteren arrContent)

writeFormelement($strName,$strValue, $strType)
(Opgave A4 - 10 procent)

; som udskriver ét formelement med navnet strName, typen strType og defaultværdien strValue

writeFormular($strName,$strAction,$strMethod,$arrFormelements)
(Opgave A5 - 10 procent)

; som udskriver en HTML-formular med <input>- elementer som har typen der er angivet i arrFormelements.
(Lad denne funktion kalde writeFormelement(strName,strValue, strType) for hvert index i arrFormelements)

(Opgave A6 - 10 procent)
Fremstil også to arrays, nemlig:

- arrContent; som indeholder noget materiale du kunne indsætte i en tabel med to kolonner (f.eks en række navne med kolonnefelterne Fornavn, Efternavn). Arrayet skal have to dimensioner således: arrContent[iIndex]["IndholdIFoersteKolonne"], arrContent[iIndex]["IndholdIAndenKolonne"].
- arrFormelements, som rummer angivelserne af dine ønskede <input>-elementer. (f.eks en række felter til indsendelse af navn og adresse) Dette array skal have formatet arrFormelements[iIndex]["Name"], arrFormelements[iIndex]["Value"], arrFormelements[iIndex]["Type"]

Gem filen med funktioner i en fil som du kalder functions.inc og gem den i:

H:\public_html/W2/functions

(Bemærk den nye mappe i roden af W2):

Fremstil også et script som ved kald til ovenstående funktioner genererer en korrekt HTML-side:
- som indeholder tekst indsat i en tabel og
- en HTML-formular med spørgsmål.

Gem dette script i en fil du kalder formular.php i

H:\public_html/W2/oevelse4/


I denne opgave skal du ikke fremstille noget script til at modtage data fra formularen

Opgave B (40 procent) - Rentes rente

Du skal her konstruere en rekursiv funktion, dvs en funktion som indeholder et kald til sig selv. Funktionen skal kunne beregne rentes rente og den skal kunne tilskrive lånerentebeløb for hver måned lånet eksistere.

Du skal først overveje hvad rentes rente egentlig er for noget: Den almindelige bankpraksis er at et lån får tilskrevet renter for hvert halve eller hele år måske. Renterne betales jo ikke af låner, men tilskrives lånet (hovedstolen); hvorved låneren nu også skal betale renter af renterne. Dette er rentes rente regning.

I opgaven her skal du forestille dig at renten tilskrives een gang årligt.


Funktionen skal have disse parametre:

function getLoanPrice($iLoan,$iYearLeft,$iInterestYear)

(hint: Kroppen af funktionen kan konstrueres med tre linier: en linie som beregner rentebeløbet og lægger det til lånebeløbet, en linie hvor tælleren $iYearLeft sættes ned med 1, en linie hvor funktionen kaldes igen med de nye argumenter)

Ud over de tre linier skal funktionen naturligvis have linier der tager højde for situationen, hvor alle renter er tilskrevne og det færdige beløb skal udskrives

Gem filen med funktionen som loan.php og gem den i

H:\public_html/W2/oevelse4

 

Opgave E (10 procent) - Kommentarer og dokumentation

Skriv en række kommentarlinier i toppen af hver funktion du skrev i opgave A og B.. Anvend /* og */ tegnene

 


mael@it.edu, nh@it.edu