EKSAMEN (Konvertert fra en gammel PHPeksamen) Emnekode: Emne: ITF10208 Webprogrammering 1 Dato: Eksamenstid: 01/06-2011 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne) Faglærer: Tom Heine Nätt Eksamensoppgaven: Oppgavesettet består av 6 sider inklusiv denne forsiden, og er inndelt i 4 deler med henholdsvis 5, 2, 1 og 1 oppgaver. Du er selv ansvarlig for å kontrollere at oppgavesettet er komplett. Det er på hver del og oppgave angitt hvor mye disse teller av totalen. Karakter fastsettes dog på basis av en helhetsvurdering av besvarelsen. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad. Det er alltid bedre å svare noe, om så bare hvordan du ser for deg at oppgaven kunne vært løst, enn å ikke skrive noe i det hele tatt på en oppgave. God sommer! Lykke til! Sensurdato: 27/06-2011 Karakterene er tilgjengelige for studenter på studentweb senest 2 virkedager etter oppgitt sensurfrist. Følg instruksjoner gitt på: www.hiof.no/studentweb Side 1 av 7
Del 1 Kodeforståelse (10 %) Her skal du kun svare på selve spørsmålet, og du trenger ikke forklare hvordan du kommer frem til svaret. NB! Les koden og selve spørsmålet nøye, for det kan være mange feller å gå i her... Oppgave 1.1 (2 %) var a = 4; var b = 7; var c = 2; if(a <== b){ c +=1; if(a > c){ c += 3; console.log(c); Oppgave 1.2 (2 %) var a = 4; var b = 7; var c = 2; if(a <== b && b < c){ console.log("a"); else if(a <== b b < c){ console.log("b"); else{ console.log("c"); Side 2 av 7
Oppgave 1.3 (2 %) var t = 0; for(i=4; i>2; i--){ t = t + i; console.log(t); Oppgave 1.4 (2 %) function work(a,b){ if(b < 5){ return b-a; else{ return a - b; console.log(work(3, 7)); Oppgave 1.5 (2 %) var arr = [3,2,6,4,3,9]; var t = arr[0]; for(a in arr){ console.log((t + arr[a]) + " "); Slutt Del 1 Side 3 av 7
Del 2 Grunnleggende programmering (25 %) Oppgave 2.1 (12 %) Skriv ferdig følgende funksjoner: a) En funksjon som returnerer det minste av to tall: function minste(talla,tallb) b) En funksjon som returnerer en boolsk verdi for om et tall er positivt eller ikke: function positivt(tall) c) En funksjon som returnerer antall forekomster av et tall i en array function antall(arr,tall) Oppgave 2.2 (13 %) Ta utgangspunkt i at du har en array med alle bokstaver i det engelske alfabetet: var alfabet = ["A","B","C","D","E", osv, "Z"]; Du har også en array som inneholder et utvalg bokstaver. Denne kan f.eks se slik ut: var liste = ["F","B","C","F", osv, "P"]; Lag programkoden som skriver ut alle bokstavene i alfabetet som IKKE forekommer i arrayen $liste. TIPS: Gå gjennom arrayen alfabet. For hver bokstav, gå gjennom arrayen liste og se om bokstaven finnes der. Slutt Del 2 Side 4 av 7
Del 3 Filbehandling (20 %) En fil inneholder rundetider for deltakere i et trimløp. Hver linje er på følgende form: deltakernummer;rundetid1;rundetid2;rundetid3 Et utdrag fra filen kan dermed se slik ut: 5;976;768;756 6;1023;998;999 Skriv programkode som leser fila (resultater.dat) og presenterer informasjonen som vist under (for det samme utdraget som gitt over). Beste tid er det samme som laveste rundetid. Du kan gå ut i fra at deltakerne ligger i ønsket utskriftsrekkefølge på fila. Deltaker 5: Totaltid: 2500 Gjennomsnittstid: 833.33 Beste tid: 756 Deltaker 6: Totaltid: 3020 Gjennomsnittstid: 1006.66 Beste tid: 998 Innrykk får du ved å benytte   Slutt Del 3 Side 5 av 7
Del 4 Skjemaer, Databaser (45 %) NB: Denne oppgaven brukte opprinnelig en database og er derfor en del enklere å løse. Du skal i denne oppgaven programmere en enkel enhetskalkulator for en nettside. Alle faktorer som trengs for konvertering ligger lagret i en ( ) assosiativ array. databasetabell med navn maaleenheter: id navn faktor cm centimeter 100 km kilometer 0.001 m meter 1 mil mil 0.0001 osv osv osv Som du ser er alle faktorene referert ut i fra referanseenheten meter. Primærnøkkelen i tabellen er kolonnen id. Databasen er plassert på localhost, med brukernavn webside, passord drossap og databasenavn konvertering. (NB! Pass på å gjøre alt oppgaven spør etter i teksten under) var maaleenheter = [cm: 100, km: 0.001, m: 1, mil: 0.0001]; Lag et brukergrensesnitt (skjema) der brukeren kan skrive inn en verdi, velge enhet for verdien, velge enhet han ønsker å konvertere til og så trykke Konverter for å se resultatet. Nedtrekkslistene skal fylles med navnet på alle enhetene i databasen, og skal fylles dynamisk (dvs. hentes fra databasen når nettsiden vises). Resultatet skal så vises på følgende måte: Resultat: 200 centimeter tilsvarer 0.002 kilometer Om du viser resultatet på den samme eller en ny side velger du selv. Formelen for å konvertere er som følger: resultat = (verdi / faktor-for-fraenhet) * faktor-for-tilenhet Side 6 av 7
Beskriv hvorfor du velger hhv. POST eller GET for å overføre resultatet. Slutt Del 4 Side 7 av 7