Veilede løsningsforslag (TDT4105; TDT4110; TDT4115) Oppgave 1 Flervalgsoppgaver (25%) 1 c 2 a 3 c 4 b 5 c 6 b 7 c 8 a 9 b 10 a 11 c 12 b 13 b 14 b 15 c 16 b 17 c 18 c 19 a 20 a (2.680887779051578) 21 d 22 d 23 b 24 b 25 d Oppgave 2 Programforståelse (20%) 1 svar=5 2 c 3 d 4 a 5 c 6 c 7 b 8 d 9 svar={3,6,18 10 svar={4,8,24,96
Oppgave 3 Database (20%) ANMELDER navn gjør INTERVJU tittel dato lager med ANMELDELSE terningkast overskrift dato får PLATE nr tittel utgittår produsent plateselskap format brar ARTIST navn fødselsår nasjon hovedinstr Her bør vel egentlig primærnøklene understrekes. b) Her regner vi IKKE med at studentene kjenner INT UNSIGNED og SMALLINT, men kun INT CREATE TABLE anmelder ( nr INT UNSIGNED NOT NULL, navn VARCHAR(50), PRIMARY KEY() CREATE TABLE intervju ( INT UNSIGNED NOT NULL, tittel VARCHAR(50), dato VARCHAR(15), anmelder INT UNSIGNED, artist INT UNSIGNED, PRIMARY KEY() CREATE TABLE anmeldelse ( INT UNSIGNED NOT NULL, terningkast SMALLINT, overskrift VARCHAR(50), dato VARCHAR(15), anmelder INT UNSIGNED, plate INT UNSIGNED, PRIMARY KEY() CREATE TABLE plate ( nr INT UNSIGNED NOT NULL, tittel VARCHAR(50), utgittår SMALLINT, produsent VARCHAR(50), plateselskap VARCHAR(20), format VARCHAR(10), PRIMARY KEY(nr)
CREATE TABLE brar ( plate UNSIGNED NOT NULL, artist UNSIGNED NOT NULL, PRIMARY KEY(plate, artist) CREATE TABLE artist ( INT UNSIGNED NOT NULL, navn VARCHAR(), fødselsår SMALLINT, nasjon VARCHAR(), hovedinstr VARCHAR(), PRIMARY KEY() c) select navn from PERSON where gruppe=4; d) select GRUPPE.navn, PERSON.navn from GRUPPE, PERSON where PERSON.nr=GRUPPE.leder; e) select GRUPPE.navn, PROSJEKT.nr from GRUPPE, PERSON, DELTAR, OPPGAVE, PROSJEKT where GRUPPE.nr=PERSON.gruppe and PERSON.nr=DELTAR.person and DELTAR.oppgave=OPPGAVE.nr and OPPGAVE.prosjekt=PROSJEKT.nr;
Oppgave 4 HTML (10%) (kun tdt4105) <html> Bentes skruer-html skal inn her. Ikke laget ennå </html> Oppgave 4 JSP (10%) (kun tdt4110/tdt4115) <%! String gangen(int tall, int antall){ String svar = ""; for (int i=1; i<=antall; i++){ int uttall = tall*i; svar = svar + uttall + "<br>"; return svar; <% //for å teste ut metoden out.println(gangen(5,3) b) //kan også skrives som ei enkel for-løkke hvis man hele ten adderer til en String-variabel som hver gang inneholder ei stjerne ekstra. <%! String stjerne(int antall){ String svar=""; for (int rad=1; rad<=antall; rad++){ for (int kol=1; kol<=rad; kol++){ svar = svar + "*"; svar = svar + "<br>"; return svar; <% //for å teste ut metoden out.println(stjerne(6) Oppgave 5 Matlab (10%) (kun tdt4105) plot(x,y
b) function var = absoluttverdi( if( a < 0 ) var = -1*a; else var = a; Eventuellt: function var = absoluttverdi( if a>0 var = a; var = -1*a; Må også godta, ettersom annet ikke er sagt i oppgaven: function var = absoluttverdi( var = abs(a c) Her er poenget at de skal vise at de klarer å fylle inn verdier i en tabell, så hvilke verdier og hvilket intervall de bruker for å fylle X er ikke så nøye. x=[-10:25]; y = -x.^3 + 7*x - 5 Eventuellt: x = [-10:25]; y = []; for i = 1:length(x) y(i) = -x(i)^3 + 7*x(i) - 5 Noen kommer sikkert til å skrive: for i = -10:25 y(i) =......som seff er bambus. Men de er egentlig ikke så langt unna, og ville vel i og for seg fått full score om de hadde sagt i=1:25 i steden, så jeg er ikke helt keen på å gi dem null poeng... :-)
d) function f = glatting(x) f = []; f(1) = x(1 for i=2:length(x)-1 f(i)=(x(i-1)+x(i)+x(i+1))/3; f(length(x)) = x(length(x) Mange kommer sikkert til å svare noe som trunkerer lengden på den returnerte tabellen - og da har de åpenbart ikke forstått oppgaven. Likevell kan det være greit med litt skjønnsmessige vurderinger også i slike tilfeller. e) function f = avstand(x,y) tab = []; for i = 1:length(X) tab(i) = absoluttverdi( X(i) - Y(i) f = sum(tab Eventuellt: function f = avstand(x,y) f = 0; for i = 1:length(X) f = f + absoluttverdi( X(i) - Y(i) Begge gir full score. oppgave 5 JSP (25%) (kun tdt4110/tdt4115) <%@include file="database.jsp" <html><head><title>bentes skruer</title></head><body> <h1>bentes skruer</h1> <table border=1><tr><td valign="top"> <h3>kategorier</h3> <% rs = st.executequery("select * FROM kategori" out.println("<ul>" while (rs.next()){ int katid = rs.getint("" String kat = rs.getstring("tittel" out.println("<li><a href=nettbutikk.jsp?katid="+katid+">"+kat+"</a>"
Powered by TCPDF (www.tcpdf.org) out.println("</ul>" </td> b) <td valign="top"> <% String katidtekst = request.getparameter("katid" if (katidtekst==null){ out.println("klikk på en av kategoriene til venstre." else{ int katid = Integer.parseInt(katIdTekst rs = st.executequery("select tittel FROM kategori WHERE ="+katid rs.next( String kat = rs.getstring("tittel" out.println("<h3>varer fra kategorien "+kat+":</h3>" rs = st.executequery("select,navn FROM vare WHERE kategori="+katid out.println("<ul>" while(rs.next()){ String navn = rs.getstring("navn" String vareid = rs.getstring("" out.println("<li><a href=nettbutikk.jsp?katid="+katid+"&vareid="+vareid+">"+navn+"</a>" out.println("</ul>" out.println("</td></tr></table>" c) <% String vareidtekst = request.getparameter("vareid" if (vareidtekst!=null){ int vareid = Integer.parseInt(vareIdTekst rs = st.executequery("select * FROM vare WHERE ="+vareid rs.next( String navn = rs.getstring("navn" String tekst = rs.getstring("reklametekst" out.println("<h3>"+navn+"</h3>" out.println(tekst db.close(