EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

Like dokumenter
EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Høgskolen i Telemark EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

EKSAMENSFORSIDE. Emnenavn: Programmering i Java Tid fra / til: 10:00-14:00. Fakultet: Handelshøyskolen Antall vedlegg: 1

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

6108 Programmering i Java. Leksjon 4. Metoder. Roy M. Istad 2015

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

UNIVERSITETET I OSLO

Leksjon 4. Metoder. Program, klasse og metode

Leksjon 3. Kontrollstrukturer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Leksjon 3. Kontrollstrukturer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Leksjon 2. Setninger og uttrykk

Leksjon 2. Setninger og uttrykk

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

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

UNIVERSITETET I OSLO

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

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.

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

Leksjon 7. Filer og unntak

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

INF1000 : Forelesning 4

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

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

UNIVERSITETET I OSLO

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

UNIVERSITETET I OSLO

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

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF Uke 10. Ukesoppgaver oktober 2012

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

INF1000: Forelesning 4. Mer om arrayer Metoder

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

UNIVERSITETET I OSLO

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

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

Programmeringsspråket C

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

De neste ukene. INF1000 Uke 12. Prøveeksamen. Nå - Prøveeksamen. Forelesning om IT og samfunn neste uke (13/11).

Blokker og metoder INF1000 (Uke 6) Metoder

Hva er en metode? INF1000 Forelesning 8. Hva skjer når vi kaller en metode? Hvorfor bruke metoder?

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder

HØGSKOLEN I SØR-TRØNDELAG

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

Introduksjon til objektorientert programmering

INF1000 Forelesning 8. Litt repetisjon: Metoder og klasser Innkapsling av variable og metoder Hvordan gripe an et stort problem?

Oblig4 - forklaringer. Arne og Ole Christian

UNIVERSITETET I OSLO

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Eksamensoppgaver 2014

Del 1 En oversikt over C-programmering

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Tuva Kristine Thoresen

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

INF 1000 høsten 2011 Uke september

UNIVERSITETET I OSLO

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

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

Programmering i C++ Løsningsforslag Eksamen høsten 2005

UNIVERSITETET I OSLO

INF1000 undervisningen INF 1000 høsten 2011 Uke september

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Forelesning inf Java 5

Fra problem til program

Forelesning inf Java 5

INF1000 Eksamen 2014 (modifisert)

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

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

Transkript:

Høgskolen i Telemark Fakultet for allmennvitenskapelige fag EKSAMEN I 6108/6108N PROGRAMMERING I JAVA 21. 12. 2015 Tid: 4 timer Sidetall: Hjelpemiddel: Merknader: Framside + 5 sider Alt trykt og skriftlig materiale. Vekting er gitt ved starten av hver oppgave. Kandidaten kan som en del av besvarelsen bruke kall på metoder i Min-klassen (se vedlegg). Vedlegg: Min-klasse. Se side 5. Sensuren publiseres via StudentWeb.

Oppgave 1 * * * FLERVALG * * * Vekting: 20% Angi spørsmålsnummer sammen med ditt svaralternativ, f.eks. slik: 1 a) Flervalgsdelen består av 10 spørsmål, der hvert spørsmål har kun ett riktig svaralternativ. Det er anledning til å gardere (dvs. angi flere svaralternativ). Riktig svaralternativ gir 3 poeng, (hvert) feil svaralternativ gir -1 poeng, mens et ubesvart spørsmål gir 0 poeng. NB! Du kan forutsette at nødvendige import-setninger er på plass i alle kodeutsnittene. 1. Hva er verdien i variabelen x etter tilordningen dersom verdien i y er 13? a) 4 b) 6 c) 6.25 int x = 3 + y / 4; 2. Hva er verdien i variabelen x etter tilordningen dersom verdien i y er 13? a) 3 b) 4 c) 6.25 int x = 3 + y % 4; 3. Hva blir utskriften i konsollet dersom innholdet i int-variabelen y er lik 2? out.println("x = " + (y + 5)); a) x = 7 b) x = (7) c) x = 25 d) Ingen utskrift pga. syntaksfeil 4. Hva er verdien i variabelen x umiddelbart etter at for-løkka er avsluttet? a) 02468 b) 10 c) 20 int x = 0; for (int y=2; y<10; y++) if ( y%2 == 0 ) x += y; side 1

5. Hva blir skrevet i konsollet etter denne sekvensen av programsetninger? double x = 0.0; for (int i=1; i<y.length(); i++) // Tabellen y har int-verdier x += y[i]/2; // i samtlige komponenter out.println(x); a) Desimalt gjennomsnitt av alle tallene i y-tabellen b) Desimal verdi for halve summen av alle tallene i y-tabellen c) En feilmelding pga. semantisk feil d) En feilmelding pga. syntaksfeil 6. Hva blir skrevet i konsollet etter denne sekvensen av programsetninger? a) 3 b) 1 c) En feilmelding pga. semantisk feil d) En feilmelding pga. syntaksfeil int[] t = {3, 2, 1, 1; out.println(t[1] / t[2] + t[t[0]]); 7. Hva blir returverdien fra metodekallet met(0.9)? Metoden er gitt ved: a) -0.3 b) 0.0 c) 0.2 private void met(double t) { return -0.3 + t / 3; 8. Hvor mange ganger blir setningen i denne løkke-kroppen utført? a) 4 b) 10 c) Ukjent antall pga. evig løkke d) Ingen utførelser pga. syntaksfeil int i = 0; do { i = i*2; while (i <= 10); 9. Hvilket alternativ vil du si omtaler konstanter mest korrekt? a) Variabler som er låst mot verdiendring ved bruk av modifikatoren final b) Typisk benyttes konstanter til å nullstille tabeller c) Klasser med konstanter skal ikke ha tostring-metoder d) Konstanter er synlige utenfor skopet til metoden der de er deklarert 10. Hvordan vil du fullføre setningen: «En klasse» a) kan ha flere return-setninger b) kan ikke ta mer enn én parameter c) kan ha flere konstruktører d) kan ikke ha void-metoder * * * SLUTT PÅ FLERVALG * * * side 2

Oppgave 2 Vekting: 15 % Skriv et komplett Java-program Vekant som leser inn et heltall i området 2 9. Dette heltallet (antlinjer) uttrykker antall linjer i en figur formet som bokstaven V, og denne skal skrives ut i konsollet ved bruk av de aktuelle linjenumrene 2 9. Eksempel på tre ulike utskrifter: Én med antall linjer lik 2, én med 3, og så én med 6 linjer. 1 1 1 1 1 1 2 2 2 2 2 3 3 3 4 4 5 5 6 Hver linje starter med innrykk (et antall blanke tegn), fortsetter med det sifferet som tilsvarer linjenummeret, fortsetter med blanke tegn som mellomrom, og avsluttes så med sifferet for linjenummeret. Innrykket øker (flere blanke tegn i starten), mens antall tegn i mellomrommet avtar, for hver linje nedover i figuren. Den siste linjen har kun én forekomst av linjenummeret, midtstilt i V-figuren. Oppgave 3 Vekting: 30% På sekvensielle tekstfiler er det lagret høydedata for elever på alle barneskolene i en kommune fra skoleåret 2014-15. Det er én fil for hver barneskole. Dataene er anonymisert slik at hver linje på en slik fil kun har lagret følgende data for en elev: Kjønn (kodet som Jente/Gutt), klassetrinn (1-7) og høyde i hele cm. På hver fil er dataene for en enkelt elev adskilt med bindestrek. Se et eksempel på figur A under til venstre. Figur A J-4-132 G-3-129 G-1-118 J-7-150 G-2-123 : (Datalinjene fortsetter) : skole1.txt Figur B 1: J-118 G-119 2: J-123 G-121 : : 6: J-144 G-143 7: J-150 G-148 snittskole1.txt Kommunens helseråd ønsker en oversikt over gjennomsnittshøydene (i hele cm) for hvert kjønn på hvert klassetrinn på en aktuell barneskole. Skriv et komplett Java-program som leser inn filnavnet for en aktuell skole, går gjennom hele tekstfilen, og linje for linje henter ut de relevante dataene slik at de ulike gjennomsnittene kan beregnes. Til slutt skal programmet skrive ut de to snitthøydene (Jente-snitthøyde og Guttsnitthøyde) for hvert enkelt klassetrinn, på hver sin linje, på en ny tekstfil med «snitt» satt foran navnet til inndatafila. Følg oppsettet på figur B ovenfor til høyre. side 3

Oppgave 4 Vekting: 10% I et Java-program inneholder tabellen tab objekt fra klassen Spiller. Tabellen er helt full, og har mer enn 300 Spiller-objekt. Et objekt fra klassen har følgende informasjon om en enkelt spill-deltager: Kallenavn (String nick), maksimum score (int score) i området 0-999 poeng, og antall gjennomførte spill (int spill). Det er ikke direkte tilgang til objektvariablene (innkapsling), så Spiller-klassen tilbyr set- og get-metoder på hver objektvariabel. Som vanlig tilbyr klassen en tostring-metode for å vise tilstanden til spillerobjektet på formen: [nick, score, spill]. Klassen skal ikke programmeres! Skriv kun de Java-setningene (ikke et komplett program) som er nødvendige for å skrive ut i konsollet en «topp-10-liste» over de beste spillerne etter score, med deres kallenavn, forutsatt at tabellen tab allerede er ferdig fylt. Oppgave 5 Vekting: 25 % Skriv et GUI-program som kan brukes til å hente ut informasjon fra en kort tekst skrevet inn av brukeren. Programmet skal kunne telle antall forekomster av ett enkelt tegn som brukeren angir. Programmet skal ha et tekstområde (3 linjer med 20 kolonner), et tekstfelt (lengde 2) for å kunne skrive inn det tegnet som det ønskes opptelling av i teksten, en knapp for å gjennomføre tellingen og en knapp for å nullstille programmet (klargjøre det til å håndtere neste tekst). I en etikett nederst i vinduet får brukeren tilbakemelding på den valgte opptellingen. Se figurene til venstre som viser GUI-et før og etter telling av et tegn i en aktuell tekst. 300 x 160 piksler NB! Tellingen skal ikke skille mellom store og små bokstaver. SLUTT side 4

VEDLEGG /* ******************************************************************* * Min: Verktøyklasse - dvs. samling av klassemetoder. Det er lov å * kalle på disse metodene fra program der det måtte være aktuelt. ******************************************************************* */ import static javax.swing.joptionpane.*; import static java.lang.integer.*; import static java.lang.system.*; import static java.lang.math.*; public class Min { // Metoden tegner en sekvens av tegn i konsollet public static void skrivtegn(char t, int antall) { for (int i=1; i<=antall; i++) out.print(t); // Metoden avgjør om et tegn er en (engelsk) bokstav public static boolean erbokstav(char tegn) { return ('A' <= tegn && tegn <='Z') ('a' <= tegn && tegn <='z'); // Metoden avrunder et tall til én desimal public static double avrund1(double tall) { return (int)(tall*10 + 0.5)/10.0; // Metoden avrunder et tall til to desimaler public static double avrund2(double tall) { return (int)(tall*100 + 0.5)/100.0; // Metoden leser inn et heltall i området (min-max) public static int lesheltall(int min, int max) { int antall=0; do { String inntekst = showinputdialog("gi heltall ("+min+"-"+max+"): "); antall = parseint(inntekst); if ( antall < min antall > max ) showmessagedialog(null,"ulovlig verdi!"); while (antall < min antall > max); return antall; // Metoden trekker et tilfeldig heltall i området min - max public static int trekktall(int min, int max) { return min + (int)( random()*(max-min+1) ); side 5