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

Like dokumenter
EKSAMEN (Konvertert fra en gammel PHPeksamen)

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

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:

EKSAMEN (Konvertert fra en gammel PHPeksamen)

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

Høgskoleni østfold EKSAMEN

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

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

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

Høgskoleni østfold EKSAMEN

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

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. Emne: Algoritmer og datastrukturer

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. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

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

EKSAMEN. Emne: Algoritmer og datastrukturer

HØGSKOLEN I SØR-TRØNDELAG

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

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

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

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

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

Høgskoleni østfold EKSAMEN

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. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

EKSAMEN. Objektorientert programmering

EKSAMEN med løsningsforslag

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

EKSAMEN. Algoritmer og datastrukturer

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

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

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

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

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

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. Evaluering av IT-systemer. Eksamenstid: kl 0900 til kl 1300

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

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.

EKSAMEN. Tall og algebra, funksjoner 2

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

Høgskoleni Østfold. Ny/utsatt EKSAMEN

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

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

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

HØGSKOLEN I SØR-TRØNDELAG

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

Høgskoleni østfold NY/UTSATT EKSAMEN

SVARFORSLAG : Eksamen i IBE102 Webutvikling Våren 2017.

EKSAMEN. Bildebehandling og mønstergjenkjenning

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

EKSAMEN Emnekode: ITD13012

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

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

HØGSKOLEN I SØR-TRØNDELAG

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

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)

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

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

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

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

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

EKSAMEN Løsningsforslag

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

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

HØGSKOLEN I SØR-TRØNDELAG

Høgskoleni østfold EKSAMEN

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

r) Høgskoleni Østfold

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

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

EKSAMEN. Emne: Datakommunikasjon

Eksamen i Internetteknologi Fagkode: IVA1379

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

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

1. del av Del - EKSAMEN

UNIVERSITETET I OSLO

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

NY EKSAMEN Emnekode: ITD13012

UNIVERSITETET I OSLO

Emnenavn: Eksamenstid: 4 timer. Faglærer: Hans Kristian Bekkevard

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

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

Høgskoleni østfold EKSAMEN

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Joly. Brukerdokumentasjon for foreleser/administrator

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

INF Ekstrainnlevering

1,r H øgs kolen i Østfol d

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

Transkript:

EKSAMEN 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 12

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 %) $a = 2 + 4; $b = 2 + $a; $a = 3; $c = $a + $b; $c += $c; echo $a. " ". $b. " ". $c; Oppgave 1.2 (2 %) $a = 23; $b = 15; if($a < 40) echo "A"; if($b <30) echo "B"; else echo "C"; Side 2 av 12

Oppgave 1.3 (2 %) $a = (3<7); $b =!$a; if($a==true && $b==true) echo "A"; if($a==true $b==true) echo "B"; if($a!= $b) echo "C"; Oppgave 1.4 (2 %) for($i=2;$i<4;$i++) echo "A"; Oppgave 1.5 (2 %) for($i=0;$i<7;$i++) if($i<3) echo "A"; else echo "B"; Side 3 av 12

Oppgave 1.6 (2 %) $t = 0; for($i=4;$i>=0;$i-=2) $t+=$i*2; echo $t; Oppgave 1.7 (2 %) $h = array(3,5,2,6,7); $p=0; foreach($h as $e) $p = $e; echo $p; Oppgave 1.8 (2 %) function test($liste) $a = 0; foreach ($liste as $e) if($e > $a) $a = $e; return $a; $arr = array(3,5,2,3); echo test($arr); Side 4 av 12

Oppgave 1.9 (2 %) function tull($u) return $u+$u; function ball($p,$q) return $p-$q; echo 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 12

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 12

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 12

Del 4 Skjemaer og filbehandling (50 %) 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. 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 8 av 12

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 9 av 12

Oppgave 4.2 (20 %) 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.inc. 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 (dvs. fila gruppenummer.ukenummer.dat ikke finnes) Funksjonen ordner med andre ord alt av fillesing osv. Tips 1: Siden du vet at det kun er én linje i fila du skal lese, kan du droppe while-løkka og kun skrive noe lignende dette: $data = fgets($filreferanse); Tips 2: For å sjekke om en fil eksisterer kan du benytte koden: if(file_exists($filnavn)==true)... Tips 3: For enklest mulig kode, kan det være lurt å starte med sjekken på om fila ikke finnes (utfall 3), og deretter sjekke utfall 1 og 2 dersom fila fantes. Side 10 av 12

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). Selve genereringen foregår gjennom en parameter som gir en nettadresse lik dette: http://www.it.hiof.no/webprog1/retteliste.php?offset=1 Websiden vil med denne parameterverdien og 6 grupper, 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 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 11 av 12

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 og skriv ut elementet, samtidig som du skriver ut elementet som er "offset" elementer unna. Her kan det lønne seg å benytte en forlø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 12 av 12