Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap BOKMÅL KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 8. august, 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: 29. august. 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 ufullstendig, skriv kort hva du antar. Svar kort og klart, og skriv tydelig. Er svaret uklart eller lenger enn nødvendig trekker dette ned. Lykke til!
Oppgave 1 Flervalgsoppgaver (20 %) Bruk vedlagt svarskjema for å svare på denne oppgaven. 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. Hvor mange forskjellige tall kan man representere ved hjelp av 8 bit? a) 127. b) 255. c) 256. 2. Hvilken av påstandene nedenfor om funksjoner er usann? a) Bruk av funksjoner gjør et program mer modulært. b) Bruk av funksjoner gjør at et program tar kortere tid å utføre. c) Bruk av funksjoner er en forutsetning for rekursive algoritmer. 3. Hvorfor vil nettverk få bedre ytelse av å bruke broer eller svitsjer, fremfor bare å bruke hub er? a) Fordi svitsjer og broer er raskere enn hub er, slik at pakkene kommer raskere frem. b) Fordi en svitsj/bro vil dele opp lokalnettet i mindre segmenter, slik at hver forsendelse ikke blokkerer hele nettet. c) Fordi en svitsj/bro bruker hele nettet som ett segment, og derfor er mer effektiv enn en hub. 4. Du er prosjektleder og skal ukentlig rapportere status til en kunde i en annen by. Prosjektet begynner å bli forsinket. Hvilken samarbeidsteknologi er best egnet: a) Oppslagstavle på web. b) Videokonferanse. c) Elektronisk tavle. 5. 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. 6. Når er binærsøk normalt raskere enn sekvensielt søk? a) Binærsøk er alltid raskere enn sekvensielt søk. b) Binærsøk er aldri raskere enn sekvensielt søk. c) Binærsøk fungere bare på sorterte datamengder og er her normalt raskere enn sekvensielt søk. Side 2 av 13
7. Vannfallsmodellen/fossefallsmodellen (waterfall) passer normalt best: a) I alle omgivelser. b) I omgivelser med store endringer. c) I stabile omgivelser. 8. 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. 9. Hvilke to akser bruker boka til å klassifisere samarbeidsteknologi? a) Opprinnelse og endring b) Tid og sted c) Tid og endring 10. 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. 11. Man må søke Datatilsynet om konsesjon: a) Man trenger aldri å søke Datatilsynet om konsesjon. b) Når man oppretter et personregister med sensitive personopplysninger. c) Alltid når man oppretter alle typer personregister. 12. En ulempe med åpen kildekode (open source) er: a) Det er vanligvis dyrt å anskaffe. b) Du har ingen mulighet til å endre på produktet selv. c) Du har normalt ikke krav på brukerstøtte. 13. ADSL har vanligvis: a) Like stor opp og nedlastingshastighet. b) Større nedlastingshastighet enn opplastingshastighet. c) Større opplastingshastighet enn nedlastingshastighet. Side 3 av 13
14. I det binære tallsystemet, hva er summen av 1101 og 1011? a) 1111. b) 10010. c) 11000. 15. Hvilket av følgende utsagn er usant? a) Protokollen HTTP befinner seg i applikasjonslaget og bygger på TCP/IP. b) Nettverkslaget har ansvaret for å rute (videresende) pakkene i nettet. c) En melding som skal sendes over Internett deles opp i pakker. Pakkene kobles så sammen og sendes sammen over nettet. 16. Hvilken lov forbyr endring og ødeleggelse av data, urettmessig innsyn i og bruk av data og ulovlig bruk av datautstyr? a) Straffeloven. b) Arbeidsmiljøloven. c) Lov om opphavsrett. 17. Gitt at vi skal søke etter Dum Dum Boys i følgende sorterte bandliste: AqPop, Beatles, Blå Himmel, Byrds, Loch Ness Mouse, New Pornographers, Shins, Tables. Hvilke bandnavn vil bli sjekket dersom vi anvender algoritmen binærsøk? (Bemerk: når man må runde av i denne algoritmen, runder man nedover, altså mot mindre verdi) a) Byrds Loch Ness Mouse. b) AqPop Beatles Blå Himmel Byrds. c) Byrds New Pornographers Loch Ness Mouse. 18. Hvilket utsagn vedrørende informasjonsteknologi og Lov om opphavsrett til åndsverk er usant? a) Dataprogrammer er i utgangspunktet opphavrettslig beskyttet. b) Iflg. Åndsverksloven 12, er det lovlig å ta private kopier av rettmessig anskaffet programvare så lenge den ikke brukes av andre. c) Iflg. Åndsverksloven 39h kan den som har rett til å bruke et datamaskinprogram fremstille sikkerhetseksemplarer i den utstrekning det er nødvendig for utnyttelsen av programmet. Side 4 av 13
19. Gitt at en melding M er kodet med følgende kodeskjema som vist i tabellen. I Bitmønster for I A 10100 B 000 C 100 D 1011 E 01 F 10101 G 11 H 001 Meldingen er da kodet som følger: 101001000100000110111010111. Hva er meldingen? a) ABCDEFGH. b) BDAFGHCE. c) ACEBHDFG. 20. Hva vil det si for en minnetype at den er av typen RAM (Random Access Memory)? a) At innholdet forsvinner når strømmen skrus av. b) At man bare kan lese data, i motsetning til ROM som også kan skrive data. c) At data skrives bestandig i samme rekkefølge (fra første lagercelle og utover). Side 5 av 13
Oppgave 2 Grunnleggende programmering (25 %) Deloppgavene skal besvares uten å bruke innebygde funksjoner sum, max og min. a) (5 %) Lag en funksjon indresum som summerer alle elementene i de indre radene og kolonnene i en tabell med m rader og n kolonner. Det vil si at radene langs kantene ikke skal være med. 1 1 n m Figur 1: Det indre av en tabell med m rader og n kolonner b) (10 %) Lag en funksjon pascal som tar inn ei liste av heltall og returnerer ei liste hvor hvert element er summen av to naboelementer i inngangslista. I tillegg skal du sette inn ett element med verdi 1 først og ett element med verdi 1 til slutt. Merk at returlista blir ett element lenger enn inngangslista. Eksempel: inngangsdata [2 3 4] gir resultat [1 5 7 1]. c) (5 %) Hva blir skrevet ut til skjermen når disse programsetningene kjøres? z = 0; for x = 1:4 for y = x:2*x z = z + 1; end end disp(z); d) (5 %) Gitt følgende funksjon for parvis å bytte om to og to tall i en en-dimensjonal tabell A. function A = bytt2(a) end n = length(a); for i = 1:2:n A(i) = A(i+1); A(i+1) = A(i); end Det er to klassiske programmeringsfeil i bytt2, forklar hvilke. Side 6 av 13
Oppgave 3 Matlab (30 %) a) (10 %) Du skal lage en funksjon gruveflytt som tar to innparametre (i, j). Bruk den innebygde funksjonen rand til tilfeldig å returnere (i, j + 1), (i + 1, j) eller (i + 1, j + 1), med lik sannsynlighet. Merk at selv om det bare er 3 mulige utfall her, skal gruveflytt ha to returverdier. b) (20 %) Vi skal bruke gruveflytt fra forrige deloppgave til å lete gull i ei gruve. Vår gruve er en to-dimensjonal tabell med m rader og n kolonner hvor hver rute angir hvor mange gram gull dette området inneholder. Anta at du starter i øverste venstre hjørne. Beveg deg i et tilfeldig mønster mot nederste høyre hjørne ved å gå i løkke og trekke neste rute med gruveflytt. Ta hensyn til at du kan havne på en av kantene før du kommer til nederste høyre hjørne. Du skal telle hvor mange gram gull du finner og til slutt returnere verdien i kroner. Skriv funksjonen gruvedrift med to inngangsparametre (gruve,kurs) og en returverdi, den samlede verdi av gullet i kroner. Anta at gruve er en tabell med m rader og n kolonner, og kurs ett tall (vil variere innenfor ca. 50-170 kroner/gram). Bruk figur 2 til støtte i programmeringen. 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 0 2 8 0 0 0 2 1 0 0 0 5 11 10 21 11 10 0 0 0 1 0 0 5 9 19 12 16 10 7 5 3 0 0 2 4 9 12 19 19 14 11 20 19 15 10 15 8 23 37 15 16 7 19 13 9 6 13 18 16 34 42 22 12 20 0 0 6 6 71 17 4 1 20 5 7 11 7 1 5 22 13 10 2 1 0 5 13 17 12 15 8 5 9 18 5 1 13 8 2 4 11 10 7 20 Figur 2: Eksempel på gruvedrift i ei gruve med 8 13 ruter. Side 7 av 13
Oppgave 4 HTML (10 %) I denne oppgaven får du oppgitt en html-fil, og en css-fil med 10 mangler. Du skal fylle ut disse tomme feltene slik at nettleseren vil vise koden slik som vist i figuren til høyre. Css-filen ligger i den samme mappen som htmlfilen og heter minstil.css. Skjemaet skal sendes til siden behandle.jsp og ligger i den samme mappen som html-filen. Bildet heter meg.jpg og ligger også i den samme mappen. Lenken går til http://www.14is.no. Bakgrunnen til siden er purple (lilla), bakgrunnen til tabellene er lightblue (lyseblå), og fargen på lenken er vanlig blå. Html-filen følger på neste side. minstil.css: linjenr tekst 1 body{background-color: purple} 2 Fyll inn 1 Side 8 av 13
linjenr tekst 1 <html> 2 <head> 3 <title>min profil</title> 4 Fyll inn 2 5 </head> 6 <body> 7 Fyll inn 3 8 <h1>min profil</h1> 9 Fyll inn 4 <tr> 10 <th>brukernavn</th> 11 <td>pwn</td> 12 <Fyll inn 5> Fyll inn 6 </td> 13 </tr><tr> 14 <th>virkelig navn</th> 15 <td>per Willy Nilsen</td> 16 </tr><tr> 17 <th>født</th> 18 <td>90-tallet</td> 19 </tr><tr> 20 <th>kjønn</th> 21 <td>mann</td> 22 </tr></table> 23 <h1>legg inn ny bruker</h1> 24 Fyll inn 7 25 <table><tr> 26 <td>brukernavn</td> 27 <td><input type= text name= brukernavn > </td> 28 </tr> 29 <td>navn</td> 30 Fyll inn 8 31 </tr> 32 <td>kjønn</td> 33 <td> 34 Fyll inn 9 35 </td> 36 </tr></tr> 37 <td>født</td> 38 <td> 39 Fyll inn 10 40 </td> 41 </tr></table> 42 </form> 43 </body> 44 </html> Side 9 av 13
Oppgave 5 Databaser (15 %) Følgende notasjon for tabeller inklusive primær- og fremmednøkler er brukt i oppgaven. tabellnavn(primærnøkkel, vanligfelt, fremmednøkkel) Du skal hjelpe den spillinteresserte foreleseren din med å lage en database over dataspillene hans. Foreleseren har gitt deg følgende skisse av en database. spill (id, navn, sjangerid, utgivelsesaar, beskrivelse) sjanger (id, navn, beskrivelse, aldersgruppe) plattform (id, navn, utgivelsesaar) spilltilplattform (spillid, plattformid) Et spill kan være fra kun en sjanger, men det kan utgis til flere plattformer. Feltene spill.beskrivelse og sjanger.beskrivelse skal kunne inneholde veldig lange beskrivelser. a) Skriv SQL-spørring (5 %) I denne deloppgaven skal du skrive SQL-spørringer for å opprette tabeller i en database. Velg hensiktsmessige felttyper, og skriv SQL-spørringer for å opprette de to tabellene plattform og spilltilplattform. b) Sett inn data i tabell (5 %) I denne oppgaven skal du skrive SQL-spørringer for å sette data inn i tabellene. Anta at alle tabellene er opprettet, at tabellen sjanger inneholder en (1) rad og at de andre tabellene er tomme. Innholdet i tabellen sjanger er vist i tabell 1. Id Navn Beskrivelse Aldersgruppe 1 rollespill Lage og utvikle din egen karakter i en eventyrverden. 12+ Tabell 1: Sjanger Utfør følgende to (2) oppgaver. 1. Skriv SQL-spørring(er) for å sette inn plattformene PC utgitt i 1981, og XBOX360 utgitt i 2005. 2. Skriv SQL-spørring(er) for å sette inn spillet The Elder Scrolls 4 : Oblivion fra sjangeren rollespill, utgitt i 2005 med beskrivelsen Oblivion er den fantastiske etterfølgeren til Morrowind til plattformene PC og XBOX360. Side 10 av 13
c) SQL-spørringer (5 %) I denne oppgaven skal du skrive spørringer for å hente data ut fra en database. Anta at alle tabellene nå har innhold. Utfør følgende to (2) oppgaver. 1. Skriv en SQL-spørring for å hente ut navnet til alle spillene i sjangeren rollespill, sortert på spillets utgivelsesår. 2. Skriv en SQL-spørring for å hente ut navnet til alle spillene som er utgitt på en plattform, utgitt etter 2000. Side 11 av 13
(blank side) Side 12 av 13
TDT 4105 Studentnummer: Dato: Side: / Oppgave a b c 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 Tabell 2: Svarark for flersvarsoppgave Side 13 av 13