EKSAMEN I EMNET INF100/INF100-F Grunnkurs i programmering (Programmering 1) Fredag 16. desember 2005 Tid: 09:00 14:00

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

UNIVERSITETET I OSLO

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

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; }

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

Forelesning inf Java 4

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000 (Uke 4) Mer om forgreninger, While-løkker

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator

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

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

UNIVERSITETET I OSLO

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

Endret litt som ukeoppgave i INF1010 våren 2004

UNIVERSITETET I OSLO

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

INF1000 : Forelesning 4

TDT4110 IT Grunnkurs Høst 2016

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.

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

Gjennomgang av eksamen H99

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

TDT4110 IT Grunnkurs Høst 2016

Eksamensoppgave i IFUD1025 Programmering i Java

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

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

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

UNIVERSITETET I OSLO

INF1000 oppgaver til uke 38 (17 sep 23 sep)

UNIVERSITETET I OSLO

Forelesning inf Java 5

Forelesning inf Java 5

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

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

Blokker og metoder INF1000 (Uke 6) Metoder

UNIVERSITETET I OSLO

INF 1000 høsten 2011 Uke september

Seminaroppgaver IN1010, uke 2

UNIVERSITETET I OSLO

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

INF1000 undervisningen INF 1000 høsten 2011 Uke september

UNIVERSITETET I OSLO

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

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

INF1000: Forelesning 4. Mer om arrayer Metoder

UNIVERSITETET I OSLO

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

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder

INF1000 (Uke 6) Mer om metoder, tekster

UNIVERSITETET I OSLO

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

Rep: Metoder. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. 3 typer variable: Klassevariable. Java-programmene så langt i kurset:

UNIVERSITETET I OSLO

INF1010 våren 2018 tirsdag 23. januar

INF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt

Eksempel: Body Mass Index (BMI)

En klasse er noe - en metode gjør noe (! / # <= (! * +!! ",-' %. "- -/ %.!#) )! " 0'%! * *$! "1-)) '' % '. 22!'( 7/ /! * 2 2! "*"% 8"%% 9 - -!

Eksamen IN1010/INF1010 våren 2018

Java 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004

MAT-INF 1100: Obligatorisk oppgave 1

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

INF1000 : Forelesning 3

Eksempel: Body Mass Index (BMI) Forelesning inf Java 3. Ferdig program (første del) Ferdig program (siste del)

for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(i*j); System.out.println();

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

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program

Blokker. Uke 4, INF 1000, 13 sept Løkker og arrayer. Eksempel. Deklarasjoner inne i blokker. Institutt for Informatikk Universitet i Oslo

Transkript:

Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 6 BOKMÅL EKSAMEN I EMNET INF100/INF100-F Grunnkurs i programmering (Programmering 1) Fredag 16. desember 2005 Tid: 09:00 14:00 Tillatte hjelpemiddel: Alle trykte og skrevne hjelpemiddel er tillatt. I hele oppgavesetttet antar vi at klassen Terminal (se vedlegg A for de viktigste metodene) er tilgjengelig. Du kan også gjøre bruk av klassen i besvarelsen. Oppgave 1 (5 %) Hvilke verdier får følgende Java-uttrykk? Det er ikke nødvendig med begrunnelse av svarene. a) 7-13 % 12.0 b) "ab" + "c".length() c) 5 / 2-1 d) 2 == 1 + 1 0 / 0 == 1 / 0 e) "a".compareto("b") > 0 Oppgave 2 (15 %) I denne oppgaven er det gitt en del kjørbare program som skriver ut noe på skjermen. I hver deloppgave skal du finne ut hva programmet skriver ut. Det er ikke nødvendig med begrunnelse av svarene.

INF100/INF100-F Grunnkurs i programmering (Programmering 1) Side 2 av 6 a) (3%) Hva vises på skjermen når Oppgave2a kjøres? class Oppgave2a{ int i = 0; System.out.println(i++); System.out.println(++i); System.out.println(i++ + --i); b) (3%) Hva vises på skjermen når Oppgave2b kjøres? class Oppgave2b{ int[] t1 = {4,3,2,1,0; int[] t2 = {3,2,1,0; int i1 = 0; while (i1 < t1.length && i1!= t1[i1]) i1++; System.out.println(i1); int i2 = 0; while (i2 < t2.length && i2!= t2[i2]) i2++; System.out.println(i2); System.out.println(t1[t1[i1]]); c) (3%) Hva vises på skjermen når Oppgave2c kjøres? class Oppgave2c{ int j = 2; metode2c(heltall2c.i,j); System.out.println(Heltall2c.i); System.out.println(j); public static void metode2c(int i, int j){ int k = i; i = j; j = k;

INF100/INF100-F Grunnkurs i programmering (Programmering 1) Side 3 av 6 class Heltall2c{ public static int i = 1; d) (3%) Hva vises på skjermen når Oppgave2d kjøres? class Heltall2d{ public int i; public Heltall2d(int j){i = j; class Oppgave2d{ Heltall2d tall1 = new Heltall2d(1); Heltall2d tall2 = new Heltall2d(2); metode2d(tall1,tall2); System.out.println(tall1.i); System.out.println(tall2.i); public static void metode2d(heltall2d x, Heltall2d y){ int k = x.i; x.i = y.i; y.i = k; e) (3%) Hva vises på skjermen når Oppgave2e kjøres? public class Oppgave2e{ for (int i = 0; i < 4; ++i) { for (int j = 0 ; j < 7 ; j++) if (j - 3 <= i && j - 3 >= -i) System.out.print( * ); else System.out.print( ); System.out.println(); System.out.println("o H o\n H\n H");

INF100/INF100-F Grunnkurs i programmering (Programmering 1) Side 4 av 6 Oppgave 3 (20%) Lag et Java-program som leser inn heltall mellom 1 og 20. Når bruker oppgir et tall mindre enn 1 eller større enn 20, skal dette tolkes som et signal om at innlesing er ferdig. Når innlesingen er ferdig skal programmet skrive ut det tallet som har blitt lest inn oftest. Hvis det er flere slike tall så skal programmet skrive ut det største av disse. Forslag til brukerdialog (alt som står bak tegnet : på en linje er inndata fra bruker, alt annet er utdata fra programmet): Gi heltall mellom 1 og 20 (< 1 eller > 20 for å avslutte): 1 Gi heltall mellom 1 og 20 (< 1 eller > 20 for å avslutte): 20 Gi heltall mellom 1 og 20 (< 1 eller > 20 for å avslutte): 5 Gi heltall mellom 1 og 20 (< 1 eller > 20 for å avslutte): 1 Gi heltall mellom 1 og 20 (< 1 eller > 20 for å avslutte): 5 Gi heltall mellom 1 og 20 (< 1 eller > 20 for å avslutte): 0 Størst blant de tallene som forekommer oftest er 5 Oppgave 4 (60 %) Butikker selger vanligvis flere varer. I et program som holder orden på lagerføring finnes det to sentrale klasser, en for varene og en for butikkene. I denne oppgaven skal vi lage disse to klassene. Objekt av klassen Vare er kjennetegnet med et unikt varenummer (heltall), et navn (tegnstreng) og en pris (flyttall). Deloppgavene a-c nedenfor skal besvares i form av en fullstendig deklarasjon av klassen Vare. Les gjennom alle deloppgavene før du begynner å svare. a) (3%) Foreslå feltvariabler for klassen. b) (6%) Lag hent-metoder for hver feltvariabel. c) (6%) Lag en konstruktør som får varenummer som parameter. Konstruktøren skal spørre brukeren etter navn og pris og lese inn verdier til disse feltene fra tastaturet. Ved forsøk på å tildele en negativ pris, skal brukeren bli varslet og bedt om en ny pris. Vi skal nå lage en klasse for butikker. Hver butikk er kjennetegnet av et navn, en tabell med varer og en tabell som viser hvor mange stykker av disse varene som er på lager. Deloppgavene d-l nedenfor skal besvares i form av en deklarasjon av klassen Butikk. Les gjennom alle deloppgavene før du begynner å svare.

INF100/INF100-F Grunnkurs i programmering (Programmering 1) Side 5 av 6 d) (3%) Foreslå feltvariabler for klassen. e) (6%) Lag en konstruktør med butikkens navn og maksimalt antall varer som parametre. f) (6%) Lag en metode finnvare(int varenr) som returnerer posisjonen i tabellen hvor varen finnes, eller -1 hvis den ikke finnes. g) (5%) Lag en metode finnledigplass() som returnerer en posisjon i tabellen hvor det finnes ledig plass, eller -1 hvis det ikke finnes ledig plass. h) (6%) Lag en metode legginnnyvare(int varenr) som legger en ny vare til butikken. Hvis varen allerede forekommer eller lageret er fullt skal dette meldes til brukeren. i) (4%) Lag en metode slettvare(int varenr) som sletter en vare fra butikken. Hvis varen ikke forekommer skal dette meldes til brukeren. j) (4%) Lag en metode detaljsalg(int varenr) som minsker antall stykker av varen med 1. Hvis varen ikke er registrert skal dette meldes til brukeren. Hvis det er 0 stykker igjen på lager skal dette meldes til brukeren. k) (5%) Lag en metode grossinkjøp(int varenr, int antall) som øker antall stykker av varen med antall. Hvis varen ikke forekommer eller hvis antall ikke er positiv skal dette meldes til brukeren. l) (6%) Lag en metode salgsverdi() som beregner total salgsverdi av hele lageret. Karl Johan Holmås Marc Bezem

INF100/INF100-F Grunnkurs i programmering (Programmering 1) Side 6 av 6 Vedlegg A: Nyttige metoder som finnes i klassen Terminal /** Leser en int-verdi fra terminalen. */ public static int lesint() /** Leser en double-verdi fra terminalen. */ public static double lesdouble() /** Leser en linje fra terminalen og returnerer * denne som et objekt av typen String */ public static String lesstring()