LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs En vakker dag i August 2007, 9.00 13.00



Like dokumenter
AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs En vakker dag i August 2007,

Avsluttende eksamen i TDT4110 Informasjonsteknologi, grunnkurs En vakker dag i august :00 13:00

AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 19. desember 2006,

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Torsdag 6. desember 2007,

AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Mandag 19. desember,

AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Torsdag 6. desember 2007,

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Mandag 19. desember,

Løsningsforslag: Avsluttende eksamen i TDT4110 Informasjonsteknologi, grunnkurs Torsdag 6. desember :00 13:00

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 19. desember 2006,

Kontinuasjonseksamen i TDT4110 Informasjonsteknologi, grunnkurs ONSDAG 10. august

LØSNINGSFORSLAG Kontinuasjonseksamen i TDT4110 Informasjonsteknologi, grunnkurs Onsdag 10. august

KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 8. august,

Løsningsskisse til kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs Onsdag 10. august

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

KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs 15. August 2008,

Avsluttende eksamen i TDT4110 og TDT4115 Informasjonsteknologi, grunnkurs 8. august :00 13:00

LØSNINGSFORSLAG KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs 15. August 2008,

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4110, TDT 4115 og IT1102 Informasjonsteknologi, grunnkurs Mandag 19. desember,

LØSNINGSFORSLAG KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 8. august,

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

ALGORITMER OG DATASTRUKTURER

Kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs XXXdag XX. august

Løsningsskisse til kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs Onsdag 10. august

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

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

Løsningsforslag: Avsluttende eksamen i TDT4110/IT1102 Informasjonsteknologi, grunnkurs Tirsdag 10. august :00 13:00

Avsluttende eksamen i TDT4110 Informasjonsteknologi, grunnkurs Mandag 8. desember :00 13:00

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Mandag 8. desember 2008,

AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Mandag 8. desember 2008,

ALGORITMER OG DATASTRUKTURER

Avsluttende eksamen i TDT4110/IT1102 Informasjonsteknologi, grunnkurs Snorsdag x. august :00 13:00

Eksamen i Internetteknologi Fagkode: IVA1379

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

HØGSKOLEN I SØR-TRØNDELAG

Web-programmering med JSP Løsningsforslag leksjon 3

Avsluttende eksamen i TDT4110/IT1102 Informasjonsteknologi, grunnkurs Tirsdag 21. desember

Avsluttende kontinuitetseksamen i TDT4110 Informasjonsteknologi, grunnkurs En vakker dag i august :00 13:00

HØGSKOLEN I SØR-TRØNDELAG

Oppgave 1 Flervalgsoppgaver (25%)

Løsningsforslag til kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs Mandag 13. august

HØGSKOLEN I SØR-TRØNDELAG

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

UNIVERSITETET I OSLO

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

ALGORITMER OG DATASTRUKTURER

UNIVERSITETET I OSLO

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

Avsluttende eksamen i TDT4105 Informasjonsteknologi, grunnkurs Tirsdag 21. desember

TDT4110 IT Grunnkurs Høst 2015

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

HØGSKOLEN I SØR-TRØNDELAG

Norsk informatikkolympiade runde

HØGSKOLEN I SØR-TRØNDELAG

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til avsluttende eksamen i TDT4105 Informasjonsteknologi, grunnkurs Torsdag 8. desember :00 13:00

Norsk informatikkolympiade runde

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

EKSAMEN 6102 / 6102N DATABASER

TDT4105 IT Grunnkurs Høst 2016

UNIVERSITETET I OSLO

KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs 5. august 2009,

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl

EKSAMEN I EMNA TDT4110 / TDT4115 INFORMASJONSTEKNOLOGI GK med Forslag til løysing. Fredag 12. august 2005 KL

UNIVERSITETET I OSLO

ALGORITMER OG DATASTRUKTURER

Eksamen i Internetteknologi Fagkode: ITE1526

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

TDT4110 IT Grunnkurs Høst 2016

Oppgaver Oppgave a: Sett opp mulige relasjoner

TDT4110 Informasjonsteknologi grunnkurs: Uke 48 Oppsummering/Spørretime. Professor Alf Inge Wang

TDT4110 IT Grunnkurs Høst 2012

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

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

Eksamen i IBE102 Webutvikling Våren 2017.

Høgskoleni østfold EKSAMEN

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

1. Innføring i bruk av MySQL Query Browser

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

EKSAMEN (Konvertert fra en gammel PHPeksamen)

Datamodellering og databaser SQL, del 2

En lett innføring i foreninger (JOINs) i SQL

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

UNIVERSITETET I OSLO

TDT4100 Objektorientert programmering

EKSAMENSOPPGAVE I TDT4110

TDT4110 IT Grunnkurs Høst 2014

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

TDT4110 IT Grunnkurs Høst 2016

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

HTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS

Datamodellering og databaser SQL, del 2

MySQL-database, php. Innhold. 8 MySQL-database, php. 8.1 Databasen MySQL

HØGSKOLEN I SØR-TRØNDELAG

1. Relasjonsmodellen Kommentarer til læreboka

EKSAMEN Web-publisering

INF106 Objektorientert programmering

Datamodellering og databaser SQL, del 2

Miniverden og ER- modell

1. SQL datadefinisjon og manipulering

Når en bruker skriver sitt navn ("Ole") i et form-element med name="fornavn" som attributt. klikker på submit-knappen

Transkript:

Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap BOKMÅL LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs En vakker dag i August 2007, 9.00 13.00 Faglig kontakt under eksamen: Jørn Amundsen, tlf 918 97 897 Hjelpemidler (C): Tilleggshefte I, Introduksjon til HTML, CSS, JSP og MYSQL (alle utgaver) Tilleggshefte II, introduksjon til: MATLAB (alle utgaver) Typegodkjent kalkulator HP30S. Sensurdato: September 2007. Resultater gjøres kjent på http://studweb.ntnu.no og sensurtelefon 81548014. Oppgavesettet inneholder 5 oppgaver. Det er angitt i prosent hvor mye hver oppgave og hver deloppgave teller ved sensur. Les igjennom hele oppgavesettet før du begynner å lage løsning. Disponer tiden godt! Gjør rimelige antagelser der du mener oppgaveteksten er ufullstig, skriv kort hva du antar. Svar kort og klart, og skriv tydelig. Er svaret uklart eller lenger enn nødvig trekker dette ned. Lykke til!

Oppgave 1 Flervalgsoppgaver (20 %) Bruk de to vedlagte svarskjemaene for å svare på denne oppgaven (ta vare på den ene selv). Du kan få nytt ark av eksamensvaktene dersom du trenger dette. Kun ett svar er helt riktig. For hvert spørsmål gir korrekt avkryssing 1 poeng. Feil avkryssing eller mer enn ett kryss gir -1/2 poeng. Blankt svar gir 0 poeng. Du får ikke mindre enn 0 poeng totalt på denne oppgaven. Der det er spesielle uttrykk står den engelske oversettelsen i parentes. 1. Hva er forskjellen på data og informasjon i følge læreboka? a) Data og informasjon er det samme b) Data er en kvantifiserbar opplysning mens informasjon inkluderer tolkning c) Data er en kvantifiserbar opplysning mens informasjon beskriver andre data 2. Hva kjennetegner innebygde datamaskiner (eng: embedded systems )? a) Datamaskiner som befinner seg inne i produkter med et annet hovedformål enn databehandlinger b) Små generelle datamaskiner som lett kan integreres i et kontorlandskap c) Store og kraftige datamaskiner som mange kan jobbe opp mot og må stå i egne rom 3. Hva kjennetegner programvare som er av typen skreddersøm? a) Skreddersøm er programvare som kan direkte brukes av mange, men kan også tilpasses hver enkelt kunde b) Skreddersøm er masseprodusert programvare som kan kjøpes ferdiglaget i forretning eller fra leverandør c) Skreddersøm er programvare laget for en bestemt kunde 4. Hvilke av disse alternativene beskriver ikke viktige oppgaver til kjernen i et operativ system i følge læreboka? a) Administrere minne og tildeling av prosessortid b) Tilby et grafisk og et tekstlig grensesnitt til maskinen c) Styring av eksterne enheter og filhåndtering 5. John har laget et genialt program i arbeidstiden hos firmaet Bøtta. Nå har han tenkt å slutte i bedriften og lage et egen firma baserte på dette programmet. John har ikke skrevet noe avtale med firma om slikte ting. Hvem eier programmet når John slutter i følge loven? a) John b) Bøtta c) Både John og Bøtta Side 2 av 14

6. Hva er forskjellen på fasene kravspesifikasjon og design i systemutvikling? a) Kravspesifikasjon beskriver HVA systemet skal gjøre, mens designet forklarer HVORDAN b) Kravspesifikasjon beskriver HVORDAN systemet skal lages, mens designet beskriver HVA som skal lages c) Kravspesifikasjon beskriver HVORDAN systemet skal lages på et overordnet nivå, mens designet beskriver detaljene 7. Hva er fordelen med inkrementell utviklingsmetode sammenliknet med vannfallsmetoden? a) Med inkrementell utvikling fullføres faser som f.eks. kravspesifikasjon helt ferdig før man går videre b) Med inkrementell utvikling deles prosjektet opp i mindre deler hvor man utfører flere faser (som kravspesifisering, design, koding) for hver del c) Med inkrementell utvikling begynner man å skrive koden først, og deretter dokumenterer man kravene og lager designet 8. Hvor mange bit du trenger til å kode et symbol i alfabetet Ω = {A, B, C, D, E, F, G, H, I, J} ved enkel koding hvor alle symbolene er representert med samme antall biter (bits)? a) 3 biter b) 4 biter c) 10 biter 9. I sammenheng med programvareutvikling er hyllevare (commercial off the shelf): a) Programmer som spesialutvikles til en kunde. b) Programmer som kjøpes ferdiglaget. c) Programmer spesielt laget for innebygde systemer. 10. Hvorfor krypteres data? a) For at det skal ta mindre plass. b) For at det skal kunne gjøres tilgjengelig for alle på Internett. c) For at data ikke skal kunne leses av uvedkomme. 11. Vannfallsmodellen/fossefallsmodellen (waterfall) passer normalt best: a) I alle omgivelser. b) I omgivelser med store ringer. c) I stabile omgivelser. Side 3 av 14

12. En protokoll er: a) Et sett av kommunikasjonsregler. b) Et program som oversetter kildekode til kode som kan kjøres på en datamaskin. c) Hovedkomponenten i en vanlig datamaskin. 13. Hva er 1011 2 + 0011 2? a) 1100 2 b) 10001 2 c) 1110 2 14. En bit av et program består av ei for-løkke inne i ei for-løkke. Begge løkkene løper igjennom tallverdiene 1:N. Tidsforbruket til denne programbiten vil være proporsjonalt med: a) N b) N log N c) N 2 15. Hva er usant om den generelle kommunikasjonsmodellen som er beskrevet i læreboka a) Mottaker og avser på samme lag/nivå må være enige om kjøreregler (protokoll) for kommunikasjonen b) Kommunikasjon skjer horisontalt, men ikke vertikalt i modellen. c) Protokoll-samlingen TCP/IP som det meste av kommunikasjonen over Internett bruker, er bygd opp etter samme prinsipp som på den generelle kommunikasjonsmodellen 16. Hva er usant om IP-adresser på Internett? a) En IP-adresse består av 32 biter (bits). b) Det finnes potensielt 2 32 unike IP-adresser på Internett. c) Domain Name System (DNS) er et program som må være installert på alle datamaskiner som skal koble seg til Internett. 17. Hva betyr begrepet metadata? a) Metadata er data som forklarer andre data. b) Metadata sier noe om hvor bra maskinen din er (antall GB RAM, antall GHz prosessor osv.) c) Metadata forteller hva slags tallsystem vi benytter inne i maskinen. Side 4 av 14

18. Hva inneholder instruksjonspekeren (IP) i en prosessor? a) Instruksjonene til et program b) Adressen til lagercellen hvor den første instruksjonen til programmet som utføres ligger lagret. c) Adressen til lagercellen hvor den neste instruksjonen til programmet som utføres ligger lagret 19. Hva menes med at all informasjon i en datamaskin er lagret digitalt? a) Informasjon som lagres vil få et etternavn (for eksempel.jpg,.gif,.doc) b) Datamaskinen må digimere bildene før de legges i minnet. c) Informasjonen som skal lagres (for eksempel et bilde) må konverteres til en tallrekke. Tallene i tallrekken er 0 er og 1 er. 20. Hvordan implementerer man en en-til-mange-relasjon i en relasjonsdatabase? a) Man inkluderer primærnøkkelen fra mange-siden som fremmednøkkel på en-siden. b) Man inkluderer primærnøkkelen fra en-siden som fremmednøkkel på mange-siden. c) Man lager en ny tabell, hvor man inkluderer primærnøklene fra begge sider som fremmednøkler. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 b a c b b a b b b c c a c c b c a c c b Side 5 av 14

Oppgave 2 Grunnlegge programmering (30 %) Deloppgavene skal besvares uten å bruke innebygde funksjoner (built-ins) som sum, max, min mv. a) (5 %) Lag en funksjon mysign(x) som returnerer fortegnet til en verdi x. Returner -1 hvis x < 0, 0 hvis x = 0 og 1 hvis x > 0. function s = mysign(x) if (x < 0) s = -1; elseif (x == 0) s = 0; else s = 1; b) (10 %) Skriv en funksjon interpol som interpolerer mellom to punkter a og b. Funksjonen skal ha inngangsverdier a, b, og N og skal returnere ei liste x(1:n+1) med koordinatverdiene til de N linjestykkene fra a til b, epunktene inkludert. Anta a < b, og at N > 0 er et heltall. Bruk figur 1 til støtte i programmeringen. a 1 2... N b x Figur 1: Eksempel på inndeling i N = 4 linjestykker function x = interpol(a, b, N) h = (b-a) / N; x = a:h:b; Side 6 av 14

c) (5 %) Anne skal bruke datamaskinen sin til å filtrere ut oppringinger fra telefonselgere. Hun har laget ei liste av numre fra telefonterror.no. Neste punkt er å skrive en funksjon antiterror som tar inn et innkomme nummer og ei liste av forhåndsinnlagte numre. Funksjonen skal returnere 1 eller sant hvis nummeret fins i lista, ellers 0 eller usant. Skriv antiterror. Anta at lista ikke er sortert og bare inneholder lovlige telefonnumre. Du trenger ikke å ta hensyn til numre som begynner med 0, f.eks. 08000. function svar = antiterror(nr, liste) svar = false; for i = 1:length(liste) if (nr == liste(i)) svar = true; return; d) (5 %) Ole har skrevet en funksjon for å glatte måleverdier ved å erstatte hvert punkt med gjennomsnittet av punktet og de to naboverdiene. Den fungerer imidlertid ikke som den skal. Rett opp feilen(e). function y = glatting(x) N = length(x); y = zeros(1,n); y(1) = (x(1) + x(2)) / 2; for i = 2:N y(i) = (x(i-1) + x(i) + x(i+1)) / 3; Side 7 av 14

function y = glatting(x) N = length(x); y = zeros(1,n); y(1) = (x(1) + x(2)) / 2; y(n) = (x(n-1) + x(n)) / 2; % setning UTEGLEMT! for i = 2:N-1 % -1 MANGLER y(i) = (x(i-1) + x(i) + x(i+1)) / 3; e) (5 %) Hva blir resultatet av å kalle den korrekte funksjonen glatting(x) med x = [2 7 9];? y = [4.5 6 8] Side 8 av 14

Oppgave 3 Matlab (30 %) Et annuitetslån på kr R 0 skal betales tilbake n terminer til en rentesats av r % per termin. Banken tar et etableringsgebyr på kr G som trekkes fra før utbetaling, og et termingebyr på kr g for hvert terminforfall. Terminbeløpet t kan uttrykkes ved formelen t = g + (R 0 + G)r. (1) 1 (1 + r) n a) (10 %) Skriv en funksjon alaan som tar inn verdiene på høyresiden i (1) og returnerer terminbeløpet t. Dropp sjekking for lovlige inngangsverdier. function t = alaan(n,r,r0,g,g) r = r / 100; % oppgitt i prosent t = g + (R0+G)*r / (1 - (1+r)^(-n)); b) (5 %) Vis hvordan du finner terminbeløpet for Arnes forbrukslån ved hjelp av funksjonen alaan. Lånet er på kr 20 000, med rentesats 8 % per år, kr 20 i termingebyr, kr 500 i etableringsgebyr og betales ned i månedlige terminer over 3 år (terminbeløpet blir kr 662.40). alaan(36,8/12,20000,20,500) c) (5 %) I et avdragsfritt annuitetslån betales bare renter av lånesummen de første m terminene av lånets løpetid (m < n). Etter den avdragsfrie perioden betales gjelda ned som et ordinært annuitetslån etter formelen (1), men over en kortere periode og med et høyere terminbeløp sammenlignet med et ordinært annuitetslån over hele perioden. Lag en ny funksjon aalaan som beregner terminbeløp for et avdragsfritt annuitetslån. Løs oppgaven ved å redusere til et ordinært annuitetslån og så kalle alaan fra aalaan. Funksjonen skal returnere 2 verdier, terminbeløpene i den avdragsfrie perioden og den ordinære avdragsperioden. Dropp sjekking for lovlige inngangsverdier. function [tm tn] = aalaan(m,n,r,r0,g,g) tm = g + (r/100)*(r0+g); tn = alaan(n-m,r,r0,g,g); Side 9 av 14

d) (10 %) Bruk funksjonene fra deloppgave a) og c) til å finne differansen i total lånekostnad mellom et avdragsfritt annuitetslån og et ordinært annuitetslån. Skriv Matlab-setninger for å regne ut dette (skript). Det er ikke nødvig å skrive en funksjon. Bruk tallverdier for et boliglån på kr 1 000 000, i månedlige terminer over 20 år, rentesats 5 % per år, kr 20 i termingebyr og kr 1000 i etableringsgebyr. Sammenlign kostnader mot et avdragsfritt lån med 5 års avdragsfrihet (merkostnad kr 89 624.29). format bank; %! gir penere utskrift m = 60; n = 240; r = 5; R0 = 1000000; g = 20; G = 1000; ta = alaan(n,r/12,r0,g,g); [taa_m taa_n] = aalaan(m,n,r/12,r0,g,g); % differanse = gebyr og rentekostnad avdragsfri periode % - differanse mellom annuitetslaan diff_kost = m*taa_m + (n-m)*taa_n - n*ta Side 10 av 14

Oppgave 4 HTML (10 %) I denne oppgaven får du oppgitt en html-fil med 10 mangler. Webskjemaet skal bruke metoden get og innholdet skal ses til programmet register.cgi. Overskriften skal være i store bokstaver og ha fargen rød. Setningen under overskriften (som begynner med Enter the information... ) skal ha fonten courier og ha fargen grønn. Teksten Publish skal ha fontstørrelse 16pt og ha fonten courier. Det skal være 10pt avstand mellom innholdet i en celle i tabellen (f.eks. tekst) og kanten av cellen. Tekstfeltene skal være 30 tegn brede. Tekstfeltet for Description:skal være 5 tegn høyt. Du skal kun fylle ut disse tomme feltene slik at nettleseren vil vise koden slik som vist i figur 2. Det er ikke nødvig å legge inn!doctype og meta merkelapper. Figur 2: Skjema for registrering av prosjektarbeider (oppgaven fortsetter på neste side) Side 11 av 14

1 <html> 2 <head> 3 <title>registration of Projects</title> 4 <style type="text/css"> 5 h1 {text-transform:uppercase; color:red} 6 td {font-size:16pt; font-family:courier} 7 p {font-family:courier; color:green} 8 </style> 9 </head> 10 <body> 11 <h1>registration of Projects</h1> 12 <p>enter the information in this form</p> 13 <form action="registrer.cgi" method="get"> 14 <table border="0" cellpadding="10"> 15 <tr> 16 <th>title</th> 17 <td><input type="text" name="title" value=" enter title here " size="30"/></td> 18 </tr> 19 <tr valign=top> 20 <th>description:<br>use HTML</th> 21 <td> 22 <textarea name="description" cols="30" rows="5"> Enter description here </textarea> 23 </td></tr> 24 <tr> 25 <th>area:</th> 26 <td> 27 <select name="area"> 28 <option>programming</option> 29 <option>graphics</option> 30 <option>other</option> 31 </select> 32 </td></tr> 33 <tr> 34 <td></td> 35 <td> 36 <input name="publish" type="checkbox"/> Publish 37 </td></tr> 38 <tr> 39 <td></td> 40 <td><input type="submit" value="submit"><input type="reset" value="reset form"></td> 41 </table> 42 </form> 43 </body> 44 </html> Side 12 av 14

Oppgave 5 Databaser (10 %) I tabellene er understrekede navn primærnøkler og uthevede navn fremmednøkler. Tom Buss ønsker å lage en enkel database for å ha en oversikt over sine sjåfører, busser og bussruter. Av informasjon om sjåfører ønsker han å lagre sjåførens navn, adresse, hjemmetelefon og mobiltelefon. Informasjon som skal lagres om busser må inneholde registreringsnummer, hvilket bilmerke bussen er, og hvor mange passasjerer bussen kan transportere. Ruteinformasjon skal inneholde et nummer på ruta, navn på ruta (typisk det som står frampå bussen) og en kort beskrivelse av ruta i form av de 3-5 viktigste stoppestedene. Videre skal databasen lagre informasjon om hvilken sjåfør som kjører en bestemt buss og hvilke busser som kjører ulike ruter. Tom Buss antar at en sjåfør kjører kun den samme bussen, men at en buss kan kjøres av flere sjåfører (flere skift). Man antar også at en buss kan kjøre flere ruter og at en rute kan kjøres av flere busser. a) Lag og opprett database (6 %) Skriv ned SQL-setningene som skal til for å opprette en database som passer beskrivelsen over. Lag databasen slik at du ikke bruker unødvige felter. Bruk create table. create table sjåfør ( id int AUTO_INCREMENT NOT NULL PRIMARY KEY, navn varchar(64), adresse varchar(255), telefon int, mobil int, bussregnr varchar(7)); create table buss ( regnr varchar(7) NOT NULL PRIMARY KEY, merke varchar(64), kapasitet int); create table rute ( nr int NOT NULL PRIMARY KEY, navn varchar(32), beskrivelse varchar(255)); create table bussogrute ( bussregnr varchar(7) NOT NULL PRIMARY KEY, rutenr int NOT NULL PRIMARY KEY); Side 13 av 14

Powered by TCPDF (www.tcpdf.org) b) SQL-spørring (4 %) I denne oppgaven skal du skrive en spørring for å hente ut data fra en database. Tabellene student, poststed, fag, foreleser, studentfag og foreleserfag har blitt opprettet ved hjelp av SQL-setningene create table student ( studnr int NOT NULL, navn varchar(32), gateadresse varchar(255), postnr int, PRIMARY KEY(studnr)); create table poststed ( postnr int NOT NULL, poststed varchar(32), PRIMARY KEY(postnr,poststed)); create table fag ( fagid varchar(8) NOT NULL, navn varchar(32), beskrivelse varchar(255), PRIMARY KEY(fagid)); create table foreleser ( id int AUTO_INCREMENT, navn varchar(32), alder int, grad varchar(32), PRIMARY KEY(id)); create table studentfag ( studnr int NOT NULL, fagid varchar(8), PRIMARY KEY(studnr,fagid)); create table foreleserfag ( foreleserid int NOT NULL, fagid varchar(8), PRIMARY KEY(foreleserid,fagid)); Anta at alle tabellene nå har innhold. Utfør følge oppgave: Skriv en SQL-spørring for å hente ut alle navn på og poststedet til studenter som har Petter Smart som foreleser. Husk å fjerne duplikater fra lista. select distinct student.navn,poststed from poststed, student, foreleser, studentfag, foreleserfag, fag where poststed.postnr = student.postnr and studentfag.studnr = student.studnr and studentfag.fagid = foreleserfag.fagid and foreleserfag.foreleserid = foreleser.id and foreleser.navn = Petter Smart ; Side 14 av 14