Oppgave 1. Oppgavenr A B C

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

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

Pensum: Starting out with Python

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

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 10. august 2010,

Web-programmering med JSP Løsningsforslag leksjon 4

Web-programmering med JSP Løsningsforslag leksjon 3

OPPGAVE 5b og 8b Java Kode

INF januar 2015 Stein Michael Storleer (michael) Lenkelister

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

UNIVERSITETET I OSLO

Grunnleggende om websider og HTML-kode

Eksamensoppgaver 2014

INF1000 Eksamen 2014 (modifisert)

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oppgave 2: def a (x): x = x + 1 y = 1 + x * 2

Oppgave 2: def a (x): x = x + 1 y = 1 + x * 2

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag

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

UNIVERSITETET I OSLO

Løpende strekmann Erfaren Videregående Python PDF

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

UNIVERSITETET I OSLO

JavaServer Pages (JSP)

Oppgave 1. Oppgave 2. Høgskolen i Østfold Avdeling for informasjonsteknologi

Løsningsforslag til eksamen i INF1000 våren 2006

<HTML Koder> Enkle HTML koder for bruk til bl.a cachebeskrivelser. Ver. 2.01

Kodetime for Nordstrand barneskole

INF Uke 10. Ukesoppgaver oktober 2012

Rammer. Mer om Javascript

UNIVERSITETET I OSLO

EKSAMEN med løsningsforslag

INF Løsning på seminaropppgaver til uke 8

UNIVERSITETET I OSLO

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

UNIVERSITETET I OSLO

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

UNIVERSITETET I OSLO

Steg 1: Vi starter fra toppen

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013

Kanter, kanter, mange mangekanter

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

UNIVERSITETET I OSLO

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006

LO191D/LC191D Videregående programmering

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

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

G høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato:

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

Norsk informatikkolympiade runde

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

PG 4200 Algoritmer og datastrukturer Innlevering 1. Frist: 2.februar kl 21.00

UNIVERSITETET I OSLO

INF1000 Eksamen 2014 (modifisert)

TDT4100 Objektorientert programmering

Forsvunnet katt webside

Norsk informatikkolympiade runde

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

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

1. XHTML. Innhold Innledning

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

Programmering Høst 2017

INF1000 Uke 14. Løsningsforslag - prøveeksamen. Institutt for Informatikk Fredrik Sørensen og Arne Maus

En bedre verden med AJAX

/** *Kamp klassen inneholder kampfakte og hoveddelen av kampmotoren. young */

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

Visuell Programmering: Kom i gang med Processing

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

Løsnings forslag i java In115, Våren 1998

Informasjon Eksamen i IN1000 høsten 2017

Algoritmer og datastrukturer Kapittel 2 - Delkapittel 2.1

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man

Løse reelle problemer

UNIVERSITETET I OSLO

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:

I denne oppgaven forventer vi at du har vært gjennom HTML- og CSS-oppgavene så langt og/eller er kjent med <div> - og HTML5-taggene.

INF1010 våren januar. Objektorientering i Java

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

Oppgave 2 (20 poeng) float og long i oppgave 2:

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

INF100 Institutt for informatikk Universitetet i Bergen Øving 5

INF 1000 Prøveeksamen. 23. november Ole Christian og Arne. Oppgave 1 (10 poeng) Er disse programsetningene lovlige i Java? Oppgave 2 (10 poeng)

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

UNIVERSITETET I OSLO

TDT4110 IT Grunnkurs Høst 2016

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2015

Transkript:

Side 1 av 6 Oppgave 1 Oppgavenr A B C 1.1 O 1.2 O 1.3 O 1.4 O 1.5 O 1.6 O 1.7 O 1.8 O 1.9 O 1.10 O 1.11 O 1.12 O 1.13 O 1.14 O 1.15 O 1.16 O 1.17 O 1.18 O 1.19 O 1.20 O

Side 2 av 6 Oppgave 2 Programmering (70 %) a) (5%) Skriv metoden lag_tomt_brett som genererer (lager) et tomt kvadratisk spillbrett (tabell bestående av bare 1 ere) av en gitt størrelse bestemt av inn-parameteren storrelse. int[][] lag_tomt_brett(int storrelse) { int[][] tabell = new int[storrelse][storrelse]; for (int i=0;i<storrelse;i++) { for (int j=0;j<storrelse;j++) { tabell[i][j] = 1; return tabell; b) (10%) Skriv metoden legg_ut_epler som tar inn spillbrettet (en tabell av vilkårlig størrelse), samt antallet epler som skal legges ut på vilkårlige posisjoner på brettet. Et eple blir representert av tallet 5. Merk at metoden ikke skal legge flere epler ( 5 tall) på samme posisjon. void legg_ut_epler(int[][] tabell, int antall) { while (antall>0) { int x = (int) (Math.random()*tabell.length); int y = (int) (Math.random()*tabell.length); if (tabell[y][x]==1) { tabell[y][x] = 5; antall = antall - 1; c) (5%) Skriv metoden sjekk_eple som tar inn en x- og en y-posisjon (typisk hodet på ormen), samt spillbrettet. Metoden skal returnere true hvis et eple befinner seg på den angitte posisjonen (dvs. tallet 5 ), og false hvis det ikke gjør det. boolean sjekk_eple(int x, int y, int[][] table) { if (table[y][x]==5) { return true; else { return false; d) (15%) Skriv metoden tegn_orm som tar inn spillbrettet (en tabell av vilkårlig størrelse) samt de to tabellene som representerer ormen (orm_x og orm_y) og tegner ormen inn i spillbrettet representert med 0 ere. Halen på ormen skal tegnes som en 1 er. void tegn_orm(int[][] table, int[] orm_x, int[] orm_y) { for (int i=0; i<orm_x.length-1;i++) { table[ orm_y[i] ][ orm_x[i] ]=0; // Tegner 0 for ormen table[ orm_y[orm_y.length-1] ][ orm_x[orm_x.length-1] ]=1; // Tegner inn 1 for siste del av ormen

Side 3 av 6 e) (15%) Skriv metoden sjekk_krasj som tar inn tabellene for ormen (orm_x og orm_y), samt retningen ormen skal bevege seg i ( N, E, S eller V ). Metoden skal sjekke om ormen krasjer i seg selv hvis den beveger seg i angitt retning. Metoden skal returnere true hvis den krasjer og false hvis den ikke gjør det. boolean sjekk_krasj(int[] orm_x, int[] orm_y, String retning) { int sjekk_x=orm_x[0]; int sjekk_y=orm_y[0]; if (retning.equals("n")) { sjekk_y--; else if (retning.equals("e")) { sjekk_x++; else if (retning.equals("s")) { sjekk_y++; else if (retning.equals("v")) { sjekk_x--; boolean krasj = false; for (int i=0;i<orm_x.length-1;i++) { if (sjekk_x==orm_x[i] && sjekk_y==orm_y[i]) { krasj = true; return krasj; f) (10%) Skriv metoden flytt_orm som tar inn tabellene for ormen (orm_x og orm_y), samt retningen ormen skal bevege seg i ( N, E, S eller V ). Metoden skal flytte posisjonene i de to tabellene slik at ormen beveger seg i riktig retning. Hvis vi tar utgangspunkt i verdiene gitt i tabellene orm_x og orm_y ovenfor, så vil for eksempel en forflyttning i retning N (Nord) gi tabellene: orm_x = {3,3,3,3,2 og orm_y = {1,2,3,4,4 Dette betyr at alle posisjonene for x og y i ormen flyttes bakover i tabellen (foruten siste posisjon) og at orm_x[0] og orm_y[0] får ny posisjon som er lik forflytningen. void flytt_orm(int[] orm_x, int[] orm_y, String retning) { int temp_x = orm_x[0]; // ta vare på fremste x-posisjon på ormen int temp_y = orm_y[0]; // ta vare på fremste y-posisjon på ormen for (int i=orm_x.length-1;i>0;i--) { orm_x[i] = orm_x[i-1]; // flytt ormen framover x-posisjon orm_y[i] = orm_y[i-1]; // flytt ormen framover y-posisjon orm_x[0] = temp_x; // Gi tilbake orginal fremste posisjon x orm_y[0] = temp_y; // Gi tilbake orginal fremste posisjon y if (retning.equals("n")) { orm_y[0]--; else if (retning.equals("e")) { orm_x[0]++; else if (retning.equals("s")) { orm_y[0]++; else if (retning.equals("v")) { orm_x[0]--;

Side 4 av 6 g) (10%) Bruk metodene ovenfor for å skrive kode som gjør følgende (trenger ikke å definere en egen metode for denne koden): 1. Opprett en heltalls variabel score som tar vare på antall poeng i spillet og sett denne variabelen lik 0 2. Opprett et spillbrett (tabell) med størrelsen 10 x 10 og fyll tabellen med 1 er 3. Opprett tabellene orm_x og orm_y for å representere ormen med størrelse 3 4. Legg inn følgende punkter i ormen: Hodet er punktet (3,4), midten er punktet (2,4) og halen er punktet (1,4) 5. Legg ut 5 epler på spillbrettet 6. Sjekk om posisjonen til hodet på ormen på spillbrettet har mat (tallet 5), og øk variabelen score med 10 hvis dette er tilfellet 7. Sjekk om ormen krasjer i seg selv hvis den beveger seg nordover ( N ) og minsk variabelen score med 5 hvis dette er tilfelle 8. Flytt ormen en posisjon i retning nordover ( N ) 9. Tegn ormen inn i spillbrett (tabellen) 10. Skriv ut spillbrettet (tabellen) til skjerm ved hjelp av out.println() Løsning: <% int score = 0; //#1 int hode = 0; int[][] spillbrett = lag_tomt_brett(10); //#2 int[] orm_x = new int[3]; //#3 int[] orm_y = new int[3]; orm_x[0] = 3; orm_y[0] = 4; //#4 orm_x[1] = 2; orm_y[1] = 4; orm_x[2] = 1; orm_y[2] = 4; legg_ut_epler(spillbrett, 5); //#5 if(sjekk_eple(orm_x[hode],orm_y[hode], spillbrett)) { //#6 score = score + 10; if(sjekk_krasj(orm_x,orm_y,"n")) { //#7 score = score - 5; flytt_orm(orm_x,orm_y,"n"); //#8 tegn_orm(spillbrett, orm_x, orm_y); //#9 for (int i = 0 ; i<spillbrett.length; i++) { //#10 for (int j = 0; j<spillbrett.length; j++) { out.println(spillbrett[i][j]); out.println("<br>"); %>

Side 5 av 6 Oppgave 3: HTML (10%) I denne oppgaven får du oppgitt en html-fil med 10 mangler. Du skal skrive HTML-koden for å lage en webside som vist under. Merk følgende opplysninger: 1. Alle innslag i tabellen er i utgangspunktet (default) venstrejustert horisontalt og midtjustert vertikalt. 2. Bildet geek.jpg skal brukes i venstre kolonne og har størrelsen 310 x 310 punkter (pixels). 3. Bildet header.jpg skal brukes i midtkolonnen og har størrelsen 825 x 105 punkter (pixels). 4. Venstre kolonne skal ha bredde på 120 punkter (pixels). 5. Header i midtkolonnen skal ha høyde på 70 punkter (pixels). Du skal kun skrive HTML-kode for de tomme feltene slik at nettleseren vil vise koden slik som vist i skjermbildet under: (oppgaven fortsetter på neste side)

Side 6 av 6 Løsning: Html-filen 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>hjemmeside layout</title> 5 </head> 6 <body> 7 <table border="1" cellpadding="5"> 8 <tr> 9 <td rowspan="3" valign="top"> 10 <img alt="geek.jpg" width="120" src="geek.jpg"> 11 <h3>meny</h3> 12 <a href="http://www.vg.no">verdens Gang</a><br> 13 <a href="http://www.dn.no">dagens Næringsliv</a><br> 14 <a href="http://www.vl.no">vårt Land</a><br> 15 <a href="http://www.dagbladet.no">dagbladet</a><br> 16 <a href="http://www.nrk.no">nrk</a><br> 17 </td> 18 <td> 19 <img alt="header.jpg" src="header.jpg" height="70"> 20 </td> 21 <td align="right"> 22 Dato: 25.mai 2010 23 </td> 24 </tr> 25 <tr> 26 <td colspan="2" valign="top"> 27 <h1>velkommen til hjemmesiden min!</h1> 28 <p>her skal hoveddelen av websiden være.<br>her kommer det mye rart...<br></p> 29 <p>lurer på om studentene i ITGK klarer layouten...<br>håper det...</p> 30 </td> 31 </tr> 32 <tr> 33 <td colspan="2" align="center"> 34 Ta kontakt på epost: <b><u>hjalmar.pjalle@mysilgoerra.uff</u></b> 35 </td> 36 </tr> 37 </table> 38 </body> 39 </html>