EKSAMEN (Konvertert fra en gammel PHPeksamen)

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

Eksamessett Høst 2009 Robin Sværen og Simen Arvesen

EKSAMEN (Konvertert fra en gammel PHPeksamen)

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

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

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

Høgskoleni østfold EKSAMEN

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

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

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

Høgskoleni østfold EKSAMEN

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

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

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

Oblig 4. Alternativ A: Alternativ B: Denne obligen har 3 ulike alternativ: Alternativ A: For de som har lyst til å gjøre et eget prosjekt

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

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.

EKSAMEN. Emne: Algoritmer og datastrukturer

EKSAMEN ITF Innføring i programmering Dato: Eksamenstid: 11/

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

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

EKSAMEN. Emne: Algoritmer og datastrukturer

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

Høgskoleni østfold EKSAMEN

Her er eksamenssett fra Vår '09. Av Robin Sværen og Simen Arvesen.

EKSAMEN Løsningsforslag. med forbehold om bugs :-)

EKSAMEN. Emnekode: Emne: Matematikk for IT ITF Eksamenstid: Dato: kl til kl desember Hjelpemidler: Faglærer:

EKSAMEN med løsningsforslag

HØGSKOLEN I SØR-TRØNDELAG

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

EKSAMEN. Algoritmer og datastrukturer

EKSAMEN. Oppgavesettet består av 9 oppgaver med i alt 21 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

EKSAMEN. Objektorientert programmering

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

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

EKSAMEN. Oppgavesettet består av 9 oppgaver med i alt 20 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Emne: Emnekode: Matematikk for IT ITF Dato: Eksamenstid: til desember Hjelpemidler: Faglærer:

Løsningsforslag. Emnekode: Emne: Matematikk for IT ITF Eksamenstid: Dato: kl til kl desember Hjelpemidler: Faglærer:

EKSAMEN. Oppgavesettet består av 11 oppgaver med i alt 21 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

EKSAMEN. Evaluering av IT-systemer. Eksamenstid: kl 0900 til kl 1300

EKSAMEN. Oppgavesettet består av 16 oppgaver. Ved sensur vil alle oppgaver telle like mye med unntak av oppgave 6 som teller som to oppgaver.

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

Høgskoleni østfold EKSAMEN. ITF10213 Innføring i programmering (Høst 2013)

Høgskoleni Østfold. Ny/utsatt EKSAMEN

EKSAMEN. Tall og algebra, funksjoner 2

Høgskoleni østfold NY/UTSATT EKSAMEN

EKSAMEN. Bildebehandling og mønstergjenkjenning

Høgskoleni østfold EKSAMEN. Hjelpem idler: Faglærer: Kåre Sorteberg Ingen hjelpemidler. Monica Kristiansen

Høgskoleni østfold EKSAMEN. LSV1MAT12 Matematikk Vl: Tall, algebra og funksjoner 1

K O N T I N U A S J O N S E K S A M E N

Høgskoleni østfold EKSAMEN. Ikke-programmerbar lommeregner uten grafisk skjerm Monica Nordbakke Marianne Maugesten

Høgskoleni østfold EKSAMEN. LSVIMAT12 Matematikk 1, V 1: Tall og algebra. funksjoner 1. Dato: 16. desember Eksamenstid: kl til kl 15.

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

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

Emnenavn: Matematikk for IT. Eksamenstid: Faglærer: Christian F Heide

består av 7 sider inklusiv denne forsiden og vedlegg. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Høgskoleni østfold EKSAMEN

lfæ~~~~:::j~~:~l -.~=:~-t::-d I Alle trykte og håndskrevne EKSAMENSOPPGA VE Side l av 5 Eksamenstid:

Emnenavn: Datateknikk. Eksamenstid: 3 timer. Faglærer: Robert Roppestad. består av 5 sider inklusiv denne forsiden, samt 1 vedleggside.

EKSAMEN (Del 1, høsten 2015)

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

Høgskoleni østfold EKSAMEN. V3: Tall og algebra, funksjoner 2 ( trinn) Dato: Eksamenstid: Fra kl til kl

Eksamen i Internetteknologi Fagkode: IVA1379

Høgskoleni østfold EKSAMEN. Oppgavesettet består av 7 oppgaver. Alle oppgavene skal besvares. Oppgavene teller som oppgitt ved sensurering.

EKSAMEN Emnekode: ITD13012

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

Emnenavn: Matematikk for IT. Eksamenstid: Faglærer: Christian F Heide

EKSAMEN. Emne: Innføring i informasjons- og kommunikasjonsteknologi

Høgskoleni østfold EKSAMEN. Dato: Eksamenstid: kl til kl. 1200

EKSAMEN Løsningsforslag

HØGSKOLEN I SØR-TRØNDELAG

Løsningsforslag. Oppgavesettet består av 9 oppgaver med i alt 20 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

UNIVERSITETET I OSLO

SVARFORSLAG : Eksamen i IBE102 Webutvikling Våren 2017.

Emnenavn: Objektorientert programmering. Faglærer: Lars Emil Knudsen

HØGSKOLEN I SØR-TRØNDELAG

r) Høgskoleni Østfold

UNIVERSITETET I OSLO

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

EKSAMEN. Emne: Innføring i informasjons- og kommunikasjonsteknologi

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Emne: Datakommunikasjon

Høgskoleni østfold EKSAMEN. Emnekode: Emne: ITD13012 Datateknikk (deleksamen 1, høstsemesteret) Dato: Eksamenstid: kl til kl.

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

Høgskoleni østfold EKSAMEN

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

Emnenavn: Matematikk for IT. Eksamenstid: Faglærer: Christian F Heide

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

EKSAMEN. Emne: V1: Tall og algebra, funksjoner 1. Eksamenstid: 6 timer, kl til kl

NY EKSAMEN Emnekode: ITD13012

Oblig 5 Webutvikling. Av Thomas Gitlevaag

INF Ekstrainnlevering

TDT4110 IT Grunnkurs Høst 2012

Transkript:

EKSAMEN (Konvertert fra en gammel PHPeksamen) Emnekode: Emne: ITF10208 Webprogrammering 1 Dato: Eksamenstid: 08/12-2009 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 12 sider inklusiv denne forsiden, og er inndelt i 4 deler med henholdsvis 10, 2, 2 og 3 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 svare noe i det hele tatt. God jul, og takk for et hyggelig semester! Lykke til! Sensurdato: 08/01-2010 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 13

Del 1 Kodeforståelse (20 %) 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 = 2 + 4; var b = 2 + $a; a = 3; var c = a + b; c += c; console.log(a + " " + b + " " + c); Oppgave 1.2 (2 %) var a = 23; var b = 15; if(a < 40) console.log("a"); if(b < 30) console.log("b"); else console.log("c"); Side 2 av 13

Oppgave 1.3 (2 %) var a = (3 < 7); var b =!a; if(a === true && b === true) console.log("a"); if(a === true b === true) console.log("b"); if(a!== b) console.log("c"); Oppgave 1.4 (2 %) for(i=2; i<4; i++) console.log("a"); Oppgave 1.5 (2 %) for(i=0; i<7; i++) if(i < 3) console.log("a"); else console.log("b"); Oppgave 1.6 (2 %) var t = 0; for(i=4; i>==0; i-=2) t += i*2; console.log(t); Side 3 av 13

Oppgave 1.7 (2 %) var h = [3,5,2,6,7]; var p = 0; for(e in h) p = h[e]; console.log(p); Oppgave 1.8 (2 %) function test(liste) var a = 0; for(e in liste) if(liste[e] > a) a = liste[e]; return a; var arr = [3,5,2,3]; console.log(test(arr)); Side 4 av 13

Oppgave 1.9 (2 %) function tull(u) return u+u; function ball(p,q) return p-q; console.log(tull(ball(8,3))); Oppgave 1.10 (2 %) function magisk(tall) if(tall%2===0) return tall; else return 0; for(i=1; i<5; i++) echo magisk(i); Slutt Del 1 Side 5 av 13

Del 2 Grunnleggende programmering (15 %) Oppgave 2.1 (9 %) Skriv ferdig følgende funksjoner: a) En funksjon som returnerer om et tall er partall eller ei function partall(tall) b) En funksjon som returnerer summen av en liste function sum(liste) c) En funksjon som returnerer om to lister (parameterne) har samme sum (Tips: Benytt funksjonen fra deloppgave b) function sammesum(listea,listeb) Oppgave 2.2 (6 %) Gå ut i fra at du har følgende variabler definert i et program (verdiene er eksempelverdier) som forteller om ulike sider ved været for foregående time (gjennomsnittsverdier). temperatur = 12.3; // i C vindhastighet = 4.6; // i m/s vindretning = "NØ" // forkortelse for NordØstlig nedbor = 3.7 // i antall mm Skriv logiske uttrykk for følgende påstander: a) Det regner og er vindstille b) Det blåser nord-, nordøst- eller nordvestlig vind c) Det regner mer enn 5 mm ELLER det er frost og sørøstlig vind d) Det er kuling (13.9-17.1 m/s) ELLER orkan (over 32.6 m/s) Slutt Del 2 Side 6 av 13

Del 3 Databaser og PHP (15 %) Oppgave 3.1 (8 %) En foreleser ønsker å ha en oversikt over sine "Top Gear"-klipp som benyttes til "pauseunderholdning". Han har registrert klippene i følgende databasetabell med navn klipp, men trenger litt hjelp til å lage spørringer: klipp: id tittel morsomhet lengde 1 Reliant Robin space shuttle 10 590 2 Car Dart 6 319 Her er morsomhet en skala fra 1 til 10 (10=morsomst), og lengde er tid målt i antall sekunder. Lag følgende spørringer (SELECT-setninger): a) Tittel og lengde på klipp som er morsommere enn 5. b) All informasjon om klipp som vi rekker å vise i en pause (maks 900 sekunder) sortert slik at de morsomste kommer først. c) Total lengde på alle "Top Gear"-klipp (dvs. hvor mye videomateriale har foreleseren). d) Total lengde for hvert morsomhetsnivå (dvs. hvor mye videomateriale har foreleseren på hvert av nivåene 1-10). Oppgave 3.2 (7 %) Ved hjelp av et PHP-script, list ut informasjon om alle klipp på en webside med følgende form, der klippene er sortert synkende på morsomhet: Reliant Robin space shuttle(590) 10 Car Dart (319) 6 osv... Databasen har følgende tilkoblingsinformasjon: Kjøres på "localhost" i forhold til PHP-scriptet. Brukernavn: foreleser Passord: drossap Databasenavn: topgear Slutt Del 3 Side 7 av 13

Del 4 Skjemaer og filbehandling (50 %) Gitt at du har følgende JSON ferdig parset som variabelen: var godkjenningsliste "gruppe": [ "Gruppenummer": 1, "Oppgaver": [ "Ukenummer": 1, "Levert": true, "Godkjent": true, "Retter": 3, "Ukenummer": 2, "Levert": true, "Godkjent": false, "Retter": 5 ], "Gruppenummer": 2, "Oppgaver": [ "Ukenummer": 1, "Levert": true, "Godkjent": false, "Retter": 4, "Ukenummer": 2, "Levert": true, "Godkjent": true, "Retter": 1 ] ] En foreleser skulle prøve ut et nytt system for innleveringer i faget sitt. Dette innebar at studentene skulle evaluere hverandres oppgaver. Etter hvert innså foreleseren at mye av hans arbeidstid gikk med til å behandle dette systemet, så han ønsket å automatisere det. Side 8 av 13

Det er her du kommer inn i bildet, da du (heldig som du er) har fått i oppgave å lage deler av dette systemet. Hovedelementet i systemet vil være en webside som presenterer status for ukesoppgavene. Denne statussiden kan se slik ut: Gruppe 1 Uke 1 Uke 2 Uke 3 Uke 4 Uke 5 Uke 6 Uke 7 Uke 8 Uke 9 Uke 10 Gruppe 2 Gruppe 3 Foreleseren har imidlertid sagt at han selv skal lage denne statussiden. Det du skal gjøre er å lage omkringliggende funksjoner. Dette består i tre oppgaver der du først skal lage et registreringsskjema for å registrere status, så lage en hjelpefunksjon for statussiden og til slutt lage en side som automatisk genererer lister over hvilke grupper som skal evaluere hvilke. Disse tre oppgavene kan løses uavhengig av hverandre. Merk deg at godkjent/ikke godkjent registreres på gruppenivå. Tross dine iherdige forsøk på å overbevise foreleseren om at en database ville være en bedre løsning for dette, tviholder han på at du skal benytte filer til å lagre statusen for de ulike gruppene. NB! Hver av oppgavene vil inneholde mange opplysninger om løsningen. Pass på å lese oppgavene så grundig at du løser alle de problemene som oppgaveteksten ber deg om. NB! Informasjon som gis i en deloppgave kan være viktig også i påfølgende deloppgaver. Side 9 av 13

Oppgave 4.1 (20 %) Foreleseren ønsker et webbasert skjema, der gruppene selv kan registrere godkjenningene. Dette skjemaet skal se ut som følger (enkel layout): Registreringen foregår ved at en fil med navnet gruppenummer.ukenummer.dat blir opprettet. Typisk kan filnavnet være 7.4.dat, dersom registreringen gjelder gruppe 7 i uke 4. Innholdet i denne fila vil være G eller IG for hhv. godkjent og ikke godkjent. Systemet bygger i stor grad på tillitt, men en gruppe skal ikke kunne registrere noe på seg selv (dvs. gruppenummer og evaluert av må være ulike). Derfor krever websiden en kontroll av evaluert av mot passord. Logisk sett blir denne sjekken da som følger: Dersom gruppenummer er det samme som evalueringsgruppe => Feilmelding Dersom evaluert av ikke stemmer med passord => Feilmelding I alle andre tilfeller => Utfør skriving til fil Kontrollen av passord foregår ved å kalle funksjonen passordok i funksjonsbiblioteket hjelpefunksjoner.inc. Denne funksjonen returnerer en boolsk verdi: function passordok($gruppenummer,$passord) Husk å ta stilling til hvordan du åpner fila for skriving, da en gruppe skal kunne endre sin oppfatning av godkjent/ikke godkjent dersom besvarelsen blir forbedret. Du kan gå ut i fra at skjemaet er definert med følgende kode, og dermed kun skrive koden i fila skjemabehandler.php: <form action="skjemabehandler.php" method="post"> Gruppenummer: <input type="text" name="gruppenummer" /><br /> Godkjent: <input type="radio" name="godkjent" value="ja" checked="true">ja</input> <input type="radio" name="godkjent" value="nei" >Nei</input><br /> Ukenummer: <input type="text" name="ukenummer" /><br /> Evaluert av: <input type="text" name="evalgruppe" /><br /> Passord: <input type="password" name="passord" /><br /> <input type="submit" name="registrer" value="registrer" /> </form> Side 10 av 13

Oppgave 4.2 (20 %) NB: Oppgaven er opprinnelig basert på lesing og skriving til fil og er derfor litt kortere Foreleseren har sagt at han skal lage opplistingen av statusen til ukesoppgavene selv, men trenger hjelp av deg til å lage en bestemt funksjon for funksjonsbiblioteket hjelpefunksjoner.js Denne funksjonen skal benyttes for å hente ut status for en bestemt gruppe på en bestemt ukesoppgave: function hentstatuskode(gruppenummer,ukenummer) Skriv derfor en funksjon som returner følgende tallverdier: 1 dersom oppgaven er godkjent 2 dersom oppgaven ikke er godkjent 3 dersom det ikke finnes informasjon om oppgaven Side 11 av 13

Oppgave 4.3 (10 %) En kjedelig side av dette innleveringssystemet er å hver uke generere nye "rettelister" slik at hvem som evaluerte hvem blir rotert. Du skal derfor automatisere dette. Hver retteliste er bestemt ved å "forskyve" gruppene et visst antall plasser (en såkalt offset. Websiden der gruppe 4 er blitt borte i løpet av året, bli seende slik ut: Gruppe 1 vurderer gruppe 2 Gruppe 2 vurderer gruppe 3 Gruppe 3 vurderer gruppe 5 Gruppe 5 vurderer gruppe 6 Gruppe 6 vurderer gruppe 7 Gruppe 7 vurderer gruppe 1 Du skal lage en funksjon som skriver ut en liste over alle grupper som har levert og hvilken gruppe de skal rette. Funksjonen skal ta imot ukenummer som parameter. Utskriften skal legges i et html-element med id="retteliste". Sentralt i systemet vil en fil kalt grupper.dat være. Denne fila inneholder alle aktive gruppenummer, og kan se slik ut: 1 2 3 5 6 7 Merk deg altså at gruppenumrene ikke nødvendigvis er en kontinuerlig liste med tall, men snarere en registrering av "aktive" grupper. Du må derfor håndtere hver linje i fila som et "element" og ikke som et siffer. I teorien kunne vi gitt gruppene navn istedenfor nummer, og systemet skulle fungert like bra. Du kan med andre ord også gå ut i fra at fila inneholder elementene i samme rekkefølge som de skal listes opp (og forskyves). Ingen sortering er altså nødvendig. MERK: Du trenger kun ta høyde for en positiv offset i denne oppgaven. NB! Fortsetter neste side Side 12 av 13

Du skal få noen tips til en mulig løsning på denne oppgaven: 1. Les inn alle linjene (gruppenumrene) i en array 2. Iterer gjennom denne arrayen JSON-objektet og skriv ut elementet, samtidig som du skriver ut elementet som er "offset" elementer unna. Her kan det lønne seg å benytte en for-løkke, slik at du har tilgang til index. 3. Håndter flippingen rundt listen (f.eks. gruppe 7 evaluerer gruppe 1) ved å teste om indeksen går utenfor gyldige indekser i arrayen, og gjør i så tilfelle et fratrekk i indeksen tilsvarende listens lengde. Eksempel med offset=1 og den samme grupper.dat-fila Index Element i array Index med offset Element i array 0 $array[0]: 1 0+1 = 1 $array[1]: 2 1 $array[1]: 2 1+1 = 2 $array[2]: 3 2 $array[2]: 3 2+1 = 3 $array[3]: 4 3 $array[3]: 5 3+1 = 4 $array[4]: 6 4 $array[4]: 6 4+1 = 5 $array[5]: 7 5 $array[5]: 7 5+1 = 6 NB! Trekk fra lengde(6) = 0 $array[0]: 1 Tips: Følgende kode leser inn alle linjer i en fil som en array (trenger ingen lukking osv.): $grupper = file("grupper.dat"); Slutt Del 4 Side 13 av 13