HØGSKOLEN I SØR-TRØNDELAG

Like dokumenter
HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

HØGSKOLEN I SØR-TRØNDELAG

Eksamen i Internetteknologi Fagkode: IVA1379

EKSAMEN ITF Webprogrammering 1 Dato: Eksamenstid: Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Forside slutteksamen

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

HØGSKOLEN I SØR-TRØNDELAG

Hjelpemidler: 4 A4-sider (2 to-sidige ark eller 4 en-sidige ark) med egenproduserte notater (håndskrevne/maskinskrevne)

Høgskoleni østfold EKSAMEN

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

SVARFORSLAG : Eksamen i IBE102 Webutvikling Våren 2017.

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

Web-programmering med JSP Løsningsforslag leksjon 3

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring -

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Algoritmer og Datastrukturer

HØGSKOLEN I SØR-TRØNDELAG

Eksamen i IBE102 Webutvikling Våren 2017.

EKSAMEN (Konvertert fra en gammel PHPeksamen)

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

Oblig 5 Webutvikling. Av Thomas Gitlevaag

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

Sudokubrettet Et sudokubrett består av n n ruter. Vi bruker følgende begreper i oppgaven:

Innføring i bruk av CGI4VB

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

Kapittel 11. Databasesikkerhet

Dersom noen oppgaver er så vanskelige at du ikke vet hvordan du skal løse de, gjør forenklinger og forklar nøye hva du har forenklet/tatt bort.

Høgskoleni østfold EKSAMEN

Eksamen i Internetteknologi Fagkode: ITE1526

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

En bedre verden med AJAX

Brukerveiledning for student skoleeksamen HIST Oppdatert 27. oktober 2014

Sudokubrettet Et sudokubrett består av n n ruter. Vi bruker følgende begreper i oppgaven:

Forfattere: Andrea Leikvold og Hege Louise Borge, 5. klasse informatikk, NTNU

Sudokubrettet Et sudokubrett består av n n ruter. Vi bruker følgende begreper i oppgaven:

GJØVIK INGENIØRHØGSKOLE

Kom i gang med emedia

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

EKSAMEN (Konvertert fra en gammel PHPeksamen)

Brukerveiledning for elektronisk versjon av HEVD-verktøyet RBUP ØST OG SØR THOMAS TOLLEFSEN

Brukerveiledning for Forsikring og Pensjonskasser-rapportering via Altinn

UNIVERSITETET I OSLO

Brukerveiledning for Forsikring og Pensjonskasser-rapportering via Altinn

Høgskolen i Gjøvik. Avdeling for elektro- og allmennfag K O N T I N U A S J O N S E K S A M E N. EKSAMENSDATO: 11. august 1995 TID:

Algoritmer og Datastrukturer

Brukerveiledning for Forsikring og Pensjonskasser-rapportering via Altinn

Algoritmer og Datastrukturer

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

KONTROLL INSIDE MSOLUTION

Etter å ha logget inn, møtes du av oppslagstavla for den avdelingen du er registrert ved. Her finner du følgende oversikter:

Innføring i bruk av CGI4VB

Høgskoleni østfold EKSAMEN. Emne: Innføring i programmering

Prosjekt i faget Webprogrammering med PHP

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Brukermanual til Domenia Norges adminløsning

Brukerveiledning for registrering av lokallag i Enhetsregisteret.

Transkript:

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 18. mai 2006 Varighet: 3 timer (09:00 12:00) Fagnummer: Fagnavn: Klasse(r): LV197D Webprogrammering med PHP FU Studiepoeng: 6 Faglærer(e): Svend Andreas Horgen tlf: 73 55 92 69 Kurskonsulent Siri Wæhre Lien (tlf. 73 55 91 54) Hjelpemidler: Oppgavesettet består av: Vedlegg: Alle skrevne og trykte hjelpemidler tillatt Forsiden og 6 oppgaver, totalt 4 sider. nei Planlegg tiden godt. Hvis du føler det blir vanskelig å skrive kode eller travelt, er det bedre å skissere logikken med pseudokode eller egne ord enn ikke å gjøre noe. Dersom noe virker uklart i oppgavene, må du selv gjøre de nødvendige antagelser og få med disse i besvarelsen. Lykke til! Side 1 av 7

Sudoku-feberen brer om seg. Et standard Sudoku-brett er delt i 9 x 9 ruter, som igjen er inndelt i 9 bokser a 3 x 3 ruter. Når en løser en Sudoku, er noen tall forhåndsutfylte, og utfordringen er å fylle inn de manglende tallene fra 1 9 på riktig sted. Reglene er enkle: Tallene skal bare forekomme én gang i hver rad både loddrett og vannrett og én gang i hver boks. MERK: Dersom du ikke får til enkelte av deloppgavene, så prøv videre på neste oppgave. Det er ikke nødvendigvis slik at oppgavene har stigende vanskelighetsgrad. Det kan for eksempel være at du synes oppgave 6 er lettere enn mange andre. Oppgave 1 (20%) Lag et tomt Sudokubrett Lag et grensesnitt med kode som lager Sudoku-brettet. Det skal være tomt i første omgang. Kriterier: Bruk en tabell med 81 celler (9 rader og 9 kolonner) for å lage brettet. Hver celle i tabellen skal ha ett tekstfelt. I dette tekstfeltet skal de besøkende skrive inn tallene for å løse Sudokuen. Tekstfeltene navngis slik: RadXKolY der X og Y varierer for å reflektere i hvilken celle tekstfeltet ligger. I første kolonne skal tekstfeltene ha navnene Rad1Kol1, Rad2Kol1, Rad3Kol1,, Rad9Kol1. Du ser at her er det X- verdien som varierer. Tilsvarende vil andre kolonne ha tekstfelt med navn Rad1Kol2, Rad2Kol2, Rad3Kol2, Rad9Kol2. Slik fortsetter det. Hvis du får det til, så ta med rad- og kolonneoverskrifter (1-9). Tips: Bruk løkker for å lage skjemaet. Her er et eksempel på brettet du skal lage: Side 2 av 7

Svar: <form method="post"> <?php $antall = 9; echo "<table border='0'>";?> </form> //lager overskriftsrad echo "<th width='50'> </th>"; for ($i=1;$i<=$antall;$i++) echo "<th>$i</th>"; for ($rad=1;$rad<=$antall;$rad++){ echo "<tr>"; echo "<th>$rad</th>"; for ($kol=1; $kol<=$antall;$kol++){ echo "<td align='center'>"; $navn = "Rad". $rad. "Kol". $kol; echo "<input type='text' name='$navn' size='2' maxlength='1' />"; //navngir tekstfeltet $ echo "</td>"; echo "</tr>"; Side 3 av 7

Oppgave 2 (20%) Fyll Sudokubrett med tall fra fil I oppgave 1 skulle du lage et tomt Sudoku-brett. De som har løst Sudoku før vet at brettene skal komme med noen forhåndsutfylte tall. En strategi for å fylle brettet med innhold, er å lese inn tall fra en tekstfil, og så plassere disse i riktig celle. Anta nå at du har en tekstfil som vist i figuren til høyre. Denne filen har 81 tall gruppert sammen i 9 linjer, der hver linje har ett tall og et mellomrom. Etter siste linje, er det en tom linje, og så kommer en ny samling av tall. Hver samling utgjør ett Sudoku-brett. Tallet 0 representerer at cellen skal være tom, mens tallene 1-9 skal plasseres direkte ut på websiden med Sudoku-brettet. Lag et PHP-script som henter første brett (de ni første radene fra fil) og deretter lager et ferdig utfylt Sudoku-brett som i oppgave 1. Dette blir nokså likt med oppgave 1. Du skal ikke kode på nytt igjen, men si hva som må endres i koden (og skrive denne koden). Dersom du ikke fikk til oppgave 1 med kode, så prøv å si noe om hvilken strategi du ville brukt for å få til innlesing av tall fra fil. Her er et eksempel på hvordan brettet kan se ut når det er ferdig utfylt i henhold til første tallgruppe fra tekstfilen: For å få de grå boksene, er rett og slett tekstfeltet satt med attributtet disabled. Da kan ikke brukeren skrive inn noe i tekstfeltet, og det blir grått utseendemessig. Side 4 av 7

Svar: Mye av den samme koden som i oppgave 1. Endringer med fet skrift $antall = 9; echo "<table border='0'>"; //lager overskriftsrad echo "<th width='50'> </th>"; for ($i=1;$i<=$antall;$i++) echo "<th>$i</th>"; //fyller matrise med innhold, alternativet er å lese en og en linje fra fil. $tallene = file("brett.txt"); for ($rad=1;$rad<=$antall;$rad++){ echo "<tr>"; echo "<th>$rad</th>"; $neste_tallrekke = $tallene[$rad-1]; //har formen: "1 2 3 4 5 6 7 8 9" $temp = explode(" ", $neste_tallrekke); for ($kol=1; $kol<=$antall;$kol++){ echo "<td align='center'>"; $navn = "Rad". $rad. "Kol". $kol; echo "<input type='text' align='absmiddle' name='$navn' size='2' maxlength='1' value='"; if ($temp[$kol-1] == 0) echo "' />"; else echo $temp[$kol-1]. "' disabled />";//navngir tekstfeltet og gir det forhåndsdefinert verdi echo "</td>"; echo "</tr>"; Side 5 av 7

Oppgave 3 (10%) Teori Som du ser fra figuren i oppgave 2 kan tekstfilen ha flere brett (tre vises på figuren). Anta at tekstfilen kan ha hundrevis av brett. Beskriv med egne ord hvordan du ville gått frem for å hente et tilfeldig brett fra denne filen. Svar: Les alt inn i en matrise, og fjern tomme linjer. Du har nå X elementer, og det vil si at du har X/9 bokser. Velg et tilfeldig tall mellom 0 og X-1. Dette tallet treffer i en av boksene. Du må finne starten av boksen, og det kan gjøres ved å bruke X modulo ditt_tall og ta differansen fra ditt_tall. Da får du startelementet. Les deretter 9 rader. Andre måter? Må se mer nøye på dette når tid. Oppgave 4 (10%) Teori Det er selvsagt ikke morsomt for besøkende å løse de samme brettene hver eneste gang de kommer til siden, og noen vil sikkert løse flere brett når de først er kommet til siden din. Forklar med egne ord hvordan du ville gått frem for å tilby nye brett i ulike situasjoner. Det fins flere muligheter, beskriv de valg som fins. Svar: Cookie som husker tidligere brett. Sessions som husker brett i denne økten. Kan evt. logge inn. Database for innlogging og lagre resultatene i en tabell. Bør utdype her og si hva som er sterke og svake sider med de ulike løsningene, og ikke minst bruksområdet. Oppgave 5 (20%) Sjekk om Sudoku er riktig utfylt Anta nå at den besøkende ønsker å løse en Sudoku. Det er interessant å kunne sjekke om Sudokuen er riktig utfylt. Lag en løsning der den besøkende kan klikke på en knapp med teksten Sjekk Sudoku og så finne ut om Sudokuen er riktig utfylt eller ikke. Det vil si: Kun tall skal akspeteres. Tallene 1-9 skal forekomme kun én gang i hver rad. Samtidig skal tallene 1-9 forekomme kun én gang i hver kolonne. (Vanskeligere) Tallene 1-9 skal forekomme kun én gang i hver 3x3-kvadrant. Dersom du ikke får til å kode en løsning, så forklar hvordan du ville gått frem. Med 3x3-kvadrant menes cellene fra Rad1Kol1 til Rad3Kol3, Rad1Kol4 til Rad3Kol6, Rad1Kol7 til Rad3Kol9, Rad4Kol1 til Rad6Kol3, og så videre. Siste kvadrant er cellene mellom Rad7Kol7 til Rad9Kol9. Svar: Ikke laget løsning enda. Side 6 av 7

Oppgave 6 (20%) Lagre resultater i en database Når den besøkende har løst en Sudoku, skal han/hun kunne registrere seg i en database med navn og e-post. I tillegg skal tidspunkt registreres. Tegn et skjema for slik registrering og skriv PHP-kode som lagrer resultatet i databasen. Anta bruk av én enkelt tabell, og finn på passende feltnavn selv. Et lite tilleggsspørsmål: Er det mulig å lagre også den tiden (for eksempel 4 minutter og 8 sekunder) som den besøkende brukte på å løse Sudokuen? Forklar i så fall hvordan en kan gå frem for å løse dette (kun tekstlig forklaring). Svar: Vanskelig med PHP, for en har ingen måte å sjekke når utfylling starter. Det er mulig, for eksempel å logge tidspunkt når brett lastes, og lagre tidspunkt til sjekkknappen trykkes. En annen løsning er å benytte et JavaScript som starter en klokke i det første tall skrives inn. Side 7 av 7