EKSAMEN Eksamenstid: 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne) Faglærer: Per O Bisseberg Del 1 Kodeforståelse (25%) 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 var a=6; var b=7; if(a <= b) if( a > 5) else else if($b>5) console.log("c"); else console.log("d");
Oppgave 1.2 var a=10; var b=20; if(a > b &&!(b/2==a)) else if(a == b a!=b) else console.log("c"); Oppgave 1.3 for(var i = 0; i <= 5; i++) echo $i; Oppgave 1.4 var a=15; var i=0; while( i < a) i++; console.log(i); Oppgave 1.5 var a=10; while(a!= 5) a--; while($a==5) a++;
Oppgave 1.6 for( var i = 0 ; i < 5; i++) if(i%2==1) else Oppgave 1.7 var b = ["C","B","A"]; for(var i = 1; i < b.length; i++) console.log(b[i]); Oppgave 1.8 var listami = [45,67,23,45,43,23,12]; var min = listami[0]; for(var i = 0; i < listam.length; i++) if (listami[i] <= min) min = listami[i]; console.log(min); Oppgave 1.9 var bokstaver = ["A","B","C","D","E"]; var b = bokstaver.length; for(var i = 0; i < bokstaver.length; i++) if(bokstaver[i]!= $bokstaver[b-3]) console.log(bokstaver[i]);
Del 2 Grunnleggende programmering (15%) Oppgave 2.1 (10 %) Skriv ferdig følgende funksjoner: a) En funksjon som sjekker om tre tall er like, og returnerer true/false. function erlike(a,b,c) b) En funksjon som skriver ut (echo) en array bakvendt. function skrivutbakvendt(minarray) c) En funksjon som regner om (og returnerer) en verdi fra NOK til en bestemt valuta. Dersom omregningen ikke lot seg gjøre (ugyldig/ukjent valuta), skal funksjonen returnere verdien 0. Parameteret belop vil her inneholde verdien i NOK som skal regnes om, mens valuta inneholder navnet på valutaens vekslingskurs (f.eks SEK = 89,56) som beløpet skal regnes om til. function regnom(belop,valuta) Oppgave 2.2 (5 %) Gå ut i fra at du har følgende variabler definert i et program 1. var alder -> alder i hele år 2. var hoyde -> høyden i hele cm 3. var fornavn -> fornavnet til personen som en string 4. var etternavn -> etternavnet til en person som en string 5. var medlem -> true=er medlem / false=er ikke medlem Skriv logiske uttrykk for følgende påstander: a) Heter "Per" til fornavn og er mer enn 18 år gammel. b) Et medlem som heter "Per" til fornavn ELLER et ikke-medlem som heter "Hansen" til c) etternavn og er eksakt 150 cm høy. d) Heter "Per Hansen", "Per Olsen" eller "Per Nilsen".
Del 3 Skjema og lagringstrukturer (30%) Du skal nå lage ferdig et register for matoppskrifter. Systemet baserer seg på liste/array som har følgende format for EN oppskrift: [ navnpåoppskrift, [ingrediens,mengde,enhet], [ingrediens,mengde,enhet], fremgangsbeskrivelse ] Merk deg at det er et ukjent antall lelementer med ingredienser, og så én linje med beskrivelse som siste element. Deretter ligger alle disse oppskriftarrayene i en array som fungerer som et slags register var beskrivelse = 'Bland sammen alle ingrediensene. La deigen ese litt, og så lager du små runde boller. Stek disse i panna i 40 minutter, til de blir brune og fine.'; var oppskrift = ['navnpåoppskrift', [ 'Mel',4, 'dl' ],[ 'Smør', 100, 'gram' ], [ 'Gjær', 50, 'gram' ], [ 'Egg', 4, 'stykk' ], beskrivelse ]; var oppskriftregister = [oppskrift, oppskrift2, oppskrift3, etc]; Oppgave 3.1 (15%) a) Lag et skjema som lar oss lage en ny oppskrift i formatet vist over ( var oppskrift) og legger denne til i registeret (var oppskriftregister). b) Lag algoritmen (koden) som må til for å skrive ut alle oppskrifter på en nettside. Oppgave 3.2 (15%) Skriv algoritmen(koden) som lar oss hente ut EN oppskrift basert på oppskriftsnavnet.
Del 4 PHP og JSON (30%) Vegvesenet har startet målinger av bilpasseringer langs alle riks- og fylkesveier i landet. Alle disse målingene lagres i en database. Databasen er plassert på samme maskin(server) som en PHP-kode som returnerer måledata. PHP-scriptet heter getmaaledata.php, scriptet returnerer alle måledata for alle målestasjoner i JSON format (se JSON eksempel under). "stasjoner": [ "navn": "RV110-B114", "grense": 60, "maalinger": [ "tid": "2008-11-12 14:05:10", "hastighet": 52, "tid": "2008-11-12 14:05:15", "hastighet": 61 ], "navn": "E6-A12", "grense": 100, "maalinger": [ "tid": "2008-11-12 14:05:16", "hastighet": 117, "tid": "2008-11-21 14:05:15", "hastighet": 97 ] ] Forklaringer til JSON: Feltet stasjoner angir alle stasjoner i oversikten. Feltet navn angir hvilken målestasjon bilen passerte. Navnet består av veinavnet (f.eks RV110) sammensatt med en id på målestasjonen (f.eks B114). Feltet grense angir hva fartsgrensen på stedet er. Feltet maalinger angir alle fartsmålinger som er gjort ved stasjonen. Feltet tid angir når en bil passerte målestasjonen. Feltet hastighet angir hastigheten til bilen som passerte.
Oppgave 4.1 (10 %) Skriv AJAX-request som henter alle målinger fra getmaaledata.php. Oppgave 4.2 (20 %) Lag følgende funksjoner som benytter de hentede måledata: a) // hente alle farstovertredelser fra JSON function getallefartsovertredelser(data) b) //hente alle fartsovertredelser for en gitt stasjon fra JSON function getfartsovertredelserforstasjon(data, stasjonsnavn) c) //hente antall fartsovertredelser for en gitt stasjon fra JSON function getantallfartsovertredelserforstasjon(data,stasjon)