• No results found

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

N/A
N/A
Protected

Academic year: 2022

Share "EKSAMENSFORSIDE Skriftlig eksamen med tilsyn"

Copied!
6
0
0

Laster.... (Se fulltekst nå)

Fulltekst

(1)

EKSAMENSFORSIDE

Skriftlig eksamen med tilsyn

Emnekode:

6108 + 6108N Emnenavn:

Programmering i Java Dato:

19.12.2016 Tid fra / til:

09:00-13:00 Ant. timer:

4 Ansv. faglærer:

Roy M. Istad Campus:

Fakultet:

Allmennvitenskapelige fag Antall oppgaver:

5 Antall vedlegg:

1 Ant. sider inkl. forside og vedlegg:

6 Tillatte hjelpemidler (jfr. emnebeskrivelse):

Alt trykt og skrevet materiale.

Opplysninger om vedlegg:

Ett ark merket «Min-klasse». Dette er en samling med klassemetoder/verktøymetoder som studentene kan referere til i sine løsninger uten å skrive programkoden i disse metodene på nytt.

Merknader:

Ingen

Kryss av for type eksamenspapir

Ruter Linjer X

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

(2)

int j = 1;

for (int z=1; z<10; z+=2) if ( z%2 == 0 )

j += z;

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 kun har 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 a etter tilordningen dersom verdien i c er 11.0?

int a = 4 + c/5;

a) 3 b) 5 c) 6.2

d) Ingen verdi pga. syntaksfeil

2. Hva er verdien i variabelen y etter tilordningen dersom verdien i t er 11?

int y = 3 + t%2;

a) 3 b) 4 c) 8.5

d) Ingen verdi pga. syntaksfeil

3. Hva blir utskriften i konsollet dersom innholdet i int-variabelen w er lik 5?

out.println("s = " + (w + 5));

a) s = 10 b) s = (10) c) s = (55)

d) Ingen utskrift pga. syntaksfeil

4. Hva er verdien i variabelen j umiddelbart etter at for-løkka er avsluttet?

a) 1 b) 25 c) 26

d) Ingen verdi pga. syntaksfeil

side 1

(3)

int[] p = {3, 1, 0, 2};

out.println(p[p[2]]+p[1]+p[3]);

private double met(double d) { if ( d <= 0 )

return d/3;

return -2.0 + d/3;

}

double k = 0.5;

do { k = k*2

double u = k+2;

} while (u < 10);

* * * SLUTT PÅ FLERVALG * * *

5. Hva blir skrevet i konsollet etter denne sekvensen av programsetninger?

double h = 0.0;

for (int i=1; i<v.length; i++) // Tabellen v har double-verdier

h += v[i]/2; // i samtlige komponenter out.println(h);

a) Gjennomsnittet av alle tallene i v-tabellen

b) Halvparten av summen av alle tallene i v-tabellen c) Halvparten av gjennomsnittet av alle tallene i v-tabellen d) En feilmelding pga. syntaksfeil

6. Hva blir skrevet i konsollet etter denne sekvensen av programsetninger?

a) 5 b) 6 c) 213

d) En feilmelding pga. syntaksfeil

7. Hva blir returverdien fra metodekallet met(6.0)? Metoden er gitt ved:

a) 0.0 b) -2.0 c) 2.0

d) Ingen verdi pga. syntaksfeil

8. Hvor mange ganger blir setningen i denne løkke-kroppen utført?

a) 4 b) 5

c) Ukjent antall pga. evig løkke d) Ingen utførelser pga. syntaksfeil

9. Hvilket alternativ vil du si omtaler modifikatoren private mest korrekt?

a) Variabler blir låst mot verdiendring ved å sette private i deklarasjonen.

b) En datastrøm til ekstern fil deklarert som private, blir kryptert som default.

c) For å hindre direkte tilgang til objektvariabler deklarerer vi dem som private. d) Returverdimetoder uten return-setning må være deklarert som private.

10. Hvordan vil du fullføre setningen: «En tabell … » a) inneholder mange verdier av ulike datatyper.

b) kan returnere sin lengde via kall på length()-metoden.

c) kan utvides ved å legge til nye komponenter.

d) blir nullstilt ved oppretting (new).

side 2

(4)

Oppgave 2 Vekting: 15 %

Skriv et komplett Java-program Vinkel som leser inn et heltall i området 2 – 9. Dette heltallet (antLinjer) uttrykker antall linjer i en figur formet som en rett vinkel oppe til høyre, og denne skal skrives ut i konsollet ved bruk av det aktuelle linjeantallet (2 – 9).

Eksempel på tre ulike utskrifter: Én med antall linjer lik 2, én med 3, og så én med 6 linjer.

2 2 3 3 3 6 6 6 6 6 6

2 3 6

3 6

6

6

6

Oppgave 3 Vekting: 25%

En liten robot beveger seg rundt omkring på et flatt gulv. Hvert sekund logger den posisjonen sin som en x- og y-verdi (målt i cm) i forhold til startposisjonen (0,0), som er i et hjørne av rommet. Når roboten avslutter en slik ”treningstur” oversender den en egen tekstfil med alle loggførte posisjoner, en posisjon pr linje, til en datamaskin som lagrer den som "turNr.txt" der Nr endres fra en tur til den neste.

På figuren til venstre ser vi data fra tur nr 25.

Hver linje på filen inneholder en x- og y-verdi, som altså er en registrert punktposisjon (xn, yn).

Vi minner om formelen til Pythagoras som kan gi oss avstanden d mellom to punkt (x1, y1) og (x2, y2) på en plan flate:

d = (x2 −x1)2+(y2−y1)2

Skriv et komplett Java-program som kan brukes til å beregne både tilbakelagt distanse for en slik treningstur med roboten, og hvor lang tid hele turen tok. Tilbakelagt distanse er summen av alle deldistansene fra ett punkt til det neste – se formelen for dette ovenfor. Tiden beregnes ut fra antall registreringer, i og med at roboten logger posisjon hvert sekund.

Programmet skal først be om og lese inn navnet på den aktuelle registreringsfilen, og deretter skrive både turnummeret og de to beregnede resultatene med korte ledetekster, til en egen fil kalt "robotres.txt", som samler opp alle slike resultat fra denne roboten. Du kan forutsette at alle aktuelle filer ligger i samme katalog/mappe som kjørende program.

0.0 0.0 2.3 1.4 3.1 2.0 2.8 3.7 : :

22.3 19.4 tur25.txt

side 3

(5)

Oppgave 4 Vekting: 15%

I et Java-program inneholder tabellen liste objekt fra klassen Sang. Tabellen er helt full, og har mer enn hundre Sang-objekt. Et objekt fra klassen har følgende informasjon om en aktuell sang: Sangtittel (String tittel), artist (String artist), spilletid i sekund (int tid) og antall ganger den er avspilt (int antall).

Det er direkte tilgang til alle objektvariablene i Sang-klassen. Klassen tilbyr som vanlig en toString-metode for å vise tilstanden til et spillerobjekt på formen: [tittel, artist, tid, antall].

Klassen skal ikke programmeres!

Skriv kun de Java-setningene (ikke et komplett program) som er nødvendige for å skrive ut i konsollet alle sanger (dvs. alle Sang-objekt i liste) som både er over gjennomsnittet lange i spilletid og som er spilt over gjennomsnittet antall ganger. Skriv ut all informasjon for hver av disse sangene. Begge de to gjennomsnittene må beregnes for sangene i denne lista.

Oppgave 5 Vekting: 25%

Et program skal lese inn et 11-sifret fødselsnummer på formen: d1d2m1m2å1å2 p1p2 p3p4p5

De fire første sifrene er dag og måned, mens å1å2 er de to siste sifrene i fødselsåret. De fem siste sifrene utgjør personnummeret, der sifferet p3 er kode for personens kjønn. Hvis p3 er et partall, så er dette en kvinne, ellers er det en mann. De fødselsnumrene som det er aktuelt å sjekke i dette programmet gjelder for personer som er født f.o.m. 1920.

Skriv et Java-program som i et GUI tilbyr et tekstfelt for innskriving av et fødselsnummer, og et meldingsfelt (en etikett) som kan gi informasjon om både fødselsår og kjønn for det aktuelle fødselsnummeret. Det skal være en knapp for å få utført ”beregningen” og en for å nullstille programmet igjen (slik at evt. flere fødselsnummer kan sjekkes).

Legg vekt på å utforme GUI-et i tråd med det som er gitt på figuren under, der tekstfeltets lengde er 8.

─ SLUTT ─

(360 x 100 pix)

Nullstilt GUI Beregning av fødselsår og kjønn

side 4

(6)

*******************************************************************

* 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 lager en sekvens av tegn som en String public static String sekvens(char t, int antall) { String ut="";

for (int i=1; i<=antall; i++) ut += t;

return ut;

}

// 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

Referanser

RELATERTE DOKUMENTER

Blir det noen skattemessig effekt på noen inntektsskattegrunnlag til Tore Toresen i X14 på grunn av han selv bor i familieleiligheten og at han leier ut de to hybelleilighetene?.

Lag et flytdiagram for et logistikksystem for produksjon og salg av Vossabrygg og mineralvann til forbruker- og bedriftsmarkedet på Voss og området rundt, og for sterkølet også

Hvilke forutsetninger bør være oppfylt for at man skal velge å verdsette foretak ved bruk av inntjeningsbasert

Spørsmål 1: Du står i katalogen «Leksjon1» (se figur 1) og skal flytte deg til «Linux-kurset». Hvilken kommando er riktig?.. a) cd Leksjoner/Linux-kurset b)

Hvor mange rader blir slettet hvis vi utfører spørringen DELETE FROM Ansatt WHERE Stilling = 'Selger' OR Leder = 4 (forutsatt at vi først fjerner eller deaktiverer

e) Administrator deler MappeD ut som en delt mappe (share) med sharenavnet Nettdata. Han gir Anne delingsrettigheten Full Control til sharet Nettdata. • Hvilke

At HTTP-klienten kan opprette to (eller flere) forbindelser til webtjeneren og sende flere forespørsler parallelt på disse?. Hvilken av disse protokollene brukes av IP-rutere

a) (15%) Beskriv begrepene eide, fortjente og betalte media og forklar hvilke typiske funksjoner hver av disse kan ha for en bedrift eller organisasjon. b) (15%) Forklar hvordan