11.07.2015 Views

EKSAMEN

EKSAMEN

EKSAMEN

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>EKSAMEN</strong>Emnekode:ITM20606ITF10208Dato:Emne:Webprogrammering med PHP (kont.)Webprogrammering 1 (kont.)Eksamenstid:09.00-13.0001/06-2010Hjelpemidler:2 A4 ark (4 sider) med egenproduserte notater(håndskrevne/maskinskrevne)Faglærer:Tom Heine NättEksamensoppgaven:Oppgavesettet består av 7 sider inklusiv denne forsiden og vedlegg, og er inndelt i 3 delermed henholdsvis 5, 3 og 5 oppgaver. Du er selv ansvarlig for å kontrollere at oppgavesetteter komplett.Det er på hver del og oppgave angitt hvor mye disse teller av totalen. Karakter fastsettes dogpå basis av en helhetsvurdering av besvarelsen.Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene stårsortert etter økende vanskelighetsgrad.Det alltid er bedre å svare noe, om så bare hvordan du ser for deg at oppgaven kunne værtløst, enn å ikke skrive noe i det hele tatt på en oppgave.Lykke til!Sensurdato: 22/06-2010Karakterene er tilgjengelige for studenter på studentweb senest 2 virkedager etter oppgitt sensurfrist. Følginstruksjoner gitt på: www.hiof.no/studentwebSide 1 av 7


Del 1 – Kodeforståelse (10%)Her skal du kun svare på selve spørsmålet, og du trenger ikke forklare hvordan dukommer frem til svaret. NB! Les koden og selve spørsmålet nøye, for det kan være mangefeller å gå i her...Oppgave 1.1 (2%)Hva er utskriften fra følgende kode?$a = 5;$b = 4;$a--;if($a>$b){echo ”A”;}else if($a==$b){echo ”B”;}Oppgave 1.2 (2%)Hva er utskriften fra følgende kode?$a=4;while($a


Oppgave 1.3 (2%)Hva er utskriften fra følgende kode?function fun($p1,$p2){echo ”A”;return $p1+$p2;}$c = fun(4,3);$p = fun($c,3);echo $p;Oppgave 1.4 (2%)Hva er utskriften fra følgende kode?$arr = array(4,1,5,2,6);for($i=0;$i


Del 2 – Grunnleggende programmering (40%)Oppgave 2.1 (15 %)Skriv ferdig følgende funksjoner:a) Funksjon som finner og returnerer summen av alle heltall mellom en fra- og entil-verdi.function sum($fra,$til)b) Funksjon som finner ut og returnerer om et tall er i en liste eller ikke.function inneholder($tall,$liste)c) Funksjon som genererer og returnerer en array med et gitt antall tilfeldige tall i etintervall mellom en fra- og en til-verdi.function genererTilfeldigListe($antall,$fra,$til)Tips: Koden rand($fra,$til) gir tilfeldig heltall i intervallet.Oppgave 2.2 (15 %)Gå ut i fra at du har følgende array ferdig definert:$bokstaver = array(”A”,”B”,”C”,”D”,”E”,”F”,osv,”Z”);Skriv kode som produserer følgende utskrift ved hjelp av løkker:1:A2:BB3:CCC4:DDDD5:EEEEE6:FFFFFFosv26:ZZZZZZZZZZZZZZZZZZZZZZZZZZTips: En ytre løkke styrer hvilket bokstavnummer du er på, en indre løkke skriver ut etantall bokstaver.Side 4 av 7


Oppgave 2.3 (10 %)Et idrettsstevne har en fil med informasjon om deltakernummer og poengsum fra 3 ulikegrener i dette formatet:deltakernummer;poeng1;poeng2;poeng3Et utdrag av en slik fil kan dermed se slik ut:34;12;78;2536;53;43;23Lag et enkelt PHP-script som leser fila (resultater.dat) og produserer følgende utskrift:Deltaker 34:Gren 1: 12 poengGren 2: 78 poengGren 3: 25 poengSum: 115 poengDeltaker 36:Gren 1: 53 poengGren 2: 43 poengGren 3: 23 poengSum: 119 poengInnrykk kan i HTML gjøres ved å skrive ut et antall &nbsp; Du kan her klare deg medtre slike.Side 5 av 7


Del 3 – Parametere, skjemaer og databaser (50%)Du skal i denne oppgaven lage et svært forenklet system for restplasser i et reisebyrå.Systemet baserer seg på en databasetabell som er definert slik:CREATE TABLE restplass(reisekode CHAR(5) PRIMARY KEY,avreise DATETIME,retur DATETIME,destinasjon VARCHAR(255),informasjon TEXT,aktiv INT)Feltet aktiv indikerer om denne restplassen fortsatt skal kunne bestilles. Tallet 0 betyrnei(passiv), tallet 1 betyr ja(aktiv).Som et eksempel kan derfor tabellen være fylt slik:reisekode avreise retur destinasjon informasjon aktivPZ34W 2010-04-16 2010-04-27 Chania Bra hotell 1IR34S 2010-04-21 2010-04-22 Dakar Kort tur 0PQ34T 2010-04-17 2010-04-30 Athen 1Databasen er plassert på samme server som ditt PHP-script, og har brukernavnet flyme,passordet drossap og databasenavnet flymedb.Oppgave 3.1 (10%)Lag en opplisting (ledigerestplasser.php) av alle restplasser som er aktive (kode 1) påfølgende tabellform:Reisekode Destinasjon Avreise Retur Informasjon… … … … …Side 6 av 7


Oppgave 3.2 (10%)Hvilke endringer må til i koden for at man skal kunne kalle scriptet med en link påfølgende form, og da kun få opp de aktive restplassene som passer til ”søket”:ledigerestplasser.php?avreise=2010-06-12&retur=2010-06-30destinasjon=DakarMed andre ord foretas det i eksempellinken et søk etter alle restplasser som oppfyllerkravene: Avgang 12/6-10 Retur 30/6-10 Går til destinasjonen DakarOppgave 3.3 (10%)Lage en ny webside (restplassok.php) med et skjema for scriptet i oppgave 3.2. Du skalher benytte standard tekstbokser for alle de tre feltene, og resultatet skal som sagt sendestil ledigerestplasser.php som da vil vise resultatet av søket. Du velger selv hvordan selvesøkesiden skal se ut.Oppgave 3.4 (10%)Følgende SQL-setning gir deg en liste over alle destinasjoner (listet én gang) som harminst én aktiv restplass:SELECT DISTINCT destinasjon FROM restplass WHERE aktiv=1;Hvilke endringer må du gjøre med restplassok.php for at valg av destinasjon skal kunnegjøres via en nedtrekksliste fylt med mulige destinasjoner istedenfor en tekstboks.Oppgave 3.5 (10%)Følgende kode gir $i en tallverdi som forteller hvor mange sekunder aktuelle dato er etter1. Januar 1970:$i = strtotime("2010-05-12")Bruk funksjonen strtotime for å gjøre en kontroll på at verdiene er gyldige for avreise ogretur. Dvs. at avreisedato produserer et lavere antall sekunder enn returdato.Hvilke endringer må du gjøre (restplassok.php og/eller ledigerestplasser.php) får å få enfeilmelding dersom brukeren skriver inn en retur som kommer tidligere enn avreise.Side 7 av 7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!