| af Niels Hallenberg | sidst rettet 5. februar, 2001 |
Inden du starter på øvelsen er det hensigtsmæssigt at du læser noten A Smooth Introduction to Tcl for Web Nerds og prøver at køre eksemplerne i noten. Øvelsen består af fem opgaver.
Ved graduerigen lægges der bl.a. vægt på:
Hvis du mangler træning i løkker og procedurer, så kan du kigge på ekstra opgaverne til denne uge. Opgaverne øver procedurer og løkker.
multabel som givet et tal udskriver en
multiplikationstabel for dette tal. Skriv din procedure i en fil
multabel.tcl, således at du kan bruge Tcl-kommandoen
source til at hente proceduren ind i Tcl-fortolkeren, når
denne startes. Det skal altså være muligt at skrive følgende, når
Tcl-fortolkeren startes:
Kopier besvarelsen til hug.it.edu som% source multabel.tcl % multabel 3 0 times 3 is 0 1 times 3 is 3 2 times 3 is 6 3 times 3 is 9 4 times 3 is 12 5 times 3 is 15 6 times 3 is 18 7 times 3 is 21 8 times 3 is 24 9 times 3 is 27
/web/login/www/oevelse2/multabel.tcl - herved bliver
filen tilgængelig for de kursusansvarlige til retning. Bemærk at
biblioteket /web/login/www/oevelse2/ allerede er blevet
oprettet; det er meget vigtigt at besvarelserne på opgavene i øvelse 2
bliver kopieret til dette bibliotek!
Kopier besvarelsen til hug.it.edu som% source multabel2.tcl % multabel2 3 9 times 3 is 27 8 times 3 is 24 7 times 3 is 21 6 times 3 is 18 5 times 3 is 15 4 times 3 is 12 3 times 3 is 9 2 times 3 is 6 1 times 3 is 3 0 times 3 is 0
/web/login/www/oevelse2/multabel2.tcl.
homepage, som
kan generere en standard HTML-hjemmeside. Proceduren skal tage to argumenter,
et navn og en email adresse. Argumenterne skal indgå i
den genererede hjemmeside (du bestemmer selv det præcise layout af
siden):
% source homepage.tcl % homepage "Niels Hallenberg" "nh@itu.dk" <html> ... </html>I ovenstående brug af proceduren
homepage er strengene
"Niels Hallenberg" og "nh@it.edu"
aktuelle argumenter til proceduren.Du skal indsætte en standard tekst i kroppen af siden, således at siden kunne ligne en standard hjemmeside, f.eks. en standard hjemmeside som man får første gang man modtager et login på IT-C.
Kopier din besvarelse til hug.it.edu som
/web/login/www/oevelse2/homepage.tcl.
Hint: Du kan f.eks. overveje at benytte
<address> til at "underskrive" siden, således at man
kan se hvem man skal kontakte, hvis der er noget som ikke
virker. Derudover bør du sikre, at hvis man bogmærker siden, så vil
man få et sigende navn som bogmærke. Du bør også sikre, at man kan
linke tilbage til din indeks-side.
| A | B | A times B |
|---|---|---|
| 0 | 3 | 0 |
| 1 | 3 | 3 |
| 2 | 3 | 6 |
| 3 | 3 | 9 |
| 4 | 3 | 12 |
| 5 | 3 | 15 |
| 6 | 3 | 18 |
| 7 | 3 | 21 |
| 8 | 3 | 24 |
| 9 | 3 | 27 |
Besvarelsen kopieres til hug.it.edu som
/web/login/www/oevelse2/multabel3.tcl.
Du skal nu tilrette besvarelsen således at proceduren ikke udskriver tabellen med
puts kommandoen, men istedet returnerer tabellen som en
lang streng. Kald den nye procedure multabel4. For at
løse opgaven er det nødvendigt at bruge append kommandoen
til at opsamle resultatet, som tilslut i proceduren skal returneres
med kommandoen return. Endelig skal du kopiere denne besvarelse til hug.it.edu som
/web/login/www/oevelse2/multabel4.tcl.
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 en procedure tempf_to_tempc, som tager som argument
en temperatur i grader Fahrenheit og returnerer temperaturen i grader
Celcius. Skriv proceduren i en fil temperatur.tcl:
%source temperatur.tcl %tempf_to_tempc 68 20.0Kopier besvarelsen til hug.it.edu som
/web/login/www/oevelse2/temperatur.tcl.
Hint:Du skal anvende kommandoen expr for at
beregne temperaturen.