Oppgave 1 (Programtolkning) INF1000 Eksamen V06. Oppgave 1 (Programtolkning) Oppgave 1 (Programtolkning)

Like dokumenter
UNIVERSITETET I OSLO

Løsningsforslag til eksamen i INF1000 våren 2006

UNIVERSITETET I OSLO

Oppgave 1 - Kortsvarsoppgave. INF1000 eksamen V05. Oppgave 1 (c) Oppgave 1 (b) Svar: a = 9, b=10

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

INF1000 Metoder. Marit Nybakken 16. februar 2004

UNIVERSITETET I OSLO

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

Repetisjon. INF gruppe 13

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

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

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

Løsningsforslag eksamen in105, høsten 2000

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

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

"Nelsons kaffebutikk"

UNIVERSITETET I OSLO

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

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

TOD063 Datastrukturer og algoritmer

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

Klasser, objekter, pekere og UML. INF gruppe 13

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

Løsningsforslag, inf101, våren 2001

Oversikt. INF1000 Uke 3. Repetisjon Program. Repetisjon Program. Litt repetisjon Program Variabler og Uttrykk Presedens Matematiske funksjoner

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

Løse reelle problemer

Gjennomgang av eksamen H99

UNIVERSITETET I OSLO

Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

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

INF Uke 10. Ukesoppgaver oktober 2012

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

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

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

Blokker og metoder INF1000 (Uke 6) Metoder

INF1000 oppgaver til uke 38 (17 sep 23 sep)

Inf1000 (Uke 10) HashMap og ArrayList

OPPGAVE 5b og 8b Java Kode

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Innlesning fra tastatur med easyio. INF1000 høst Vi må først skrive i toppen av programmet: import easyio.*;

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

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

INF Løsning på seminaropppgaver til uke 8

Seminaroppgaver IN1010, uke 2

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

Ukeoppgaver INF1000: 12. feb 16. feb

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

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.

(MVC - Model, View, Control)

IN Notat om I/O i Java

Endret litt som ukeoppgave i INF1010 våren 2004

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

IN105-javaNelson-2. array, evt. flere dimensjoner. Institutt for informatikk Jens Kaasbøll sept En funksjon om gangen En klasse om gangen

INF1000: Forelesning 4. Mer om arrayer Metoder

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

INF1000: noen avsluttende ord

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

Inf 1000 høst 2005 Løsningsforslag ordinær eksamen

INF1000 Behandling av tekster

Løsningsforslag INF desember 2007

Forelesning inf Java 5

Forelesning inf Java 5

INF Seminaroppgaver til uke 3

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

UNIVERSITETET I OSLO

INF1000 : Forelesning 4

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

INF1000-SIKT - Notat om I/O i Java

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

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

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

INF1000 (Uke 6) Mer om metoder, tekster

Generelt om oblig 3. Oppgaveteksten kort sammendrag. Deloppgaver/menyvalg 15/03/2010. INF1000 Forelesning 9

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

Oblig 4Hybelhus litt mer tips enn i oppgaven

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

KONTINUASJONSEKSAMEN

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

INF Notat om I/O i Java

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

UNIVERSITETET I OSLO

PRØVEEKSAMEN (rettet versjon 27/11)

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

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

UNIVERSITETET I OSLO

INF1000 (Uke 14) Resten av eksamen H03 + del av V05

Transkript:

INF1000 Eksamen V06 1a: Hva blir skrevet ut når programmet nedenfor kjøres? class stringhåndtering{ public static void main (String[] args){ String s = "Lykke til på eksamen"; String t = "Eksamen"; System.out.println(s.indexOf(t)); System.out.println(s.endsWith(t)); System.out.println(s.compareTo(t)); Svar: Negativt tall (-1) False Positivt tall (7) 2 1b: Hvor mange ganger skrives teksten hei ut når programmet nedenfor kjøres? class skrivhei{ public static void main(string[] args){ for (int i = 0; i < 10; i=i+2){ for (int j = i; j < 10; j++){ System.out.println("hei"); i j antall 0 0..9 10 Svar: 2 2..9 8 30 ganger 4 6 4..9 6..9 6 4 i=1, j=1+3=4 1c: Hva blir skrevet ut når programmet nedenfor kjøres? class enkelregning { public static void main(string[] args) { int i = 0; i=3, j=4, int j = ++i + 3*i; k=(3*3-2)/3+1 = 3, m=1 i = 3; int m = 2; int k = (3*i - m--) / 3 + m; i=3, j=4, k=3, m=2 i = 2; m = i++; int n = 2 * i + 2 * m - i; System.out.print("Verdien til j er: " + j); System.out.print("Verdien til k er: " + k); i=3, j=4, k=3, m=2, System.out.print("Verdien til n er: " + n); n=2*3+2*2-3=7 Svar: Verdien til j er: 4Verdien til k er: 3Verdien til n er: 7 8 8,9 2 3 4

1d: Hva blir skrevet ut når programmet nedenfor kjøres? 1e: Hva blir skrevet ut når programmet nedenfor kjøres? class logiskeutrykk{ public static void main(string[] args){ int i = 1; double j = 1/3; char c = B ; if (i > j && c!= B ){ System.out.println("Første if-test er true"); if (i > j c!= B ){ System.out.println("Andre if-test er true"); if (! (i < j) ){ System.out.println("Tredje if-test er true"); Svar: Andre if-test er true Tredje if-test er true 5 class whiletest { public static void main (String[] args) { boolean fortsett= true; int k = 2; while (fortsett) { k += 2; fortsett =!fortsett (k < 10) ; System.out.println("k = " + k); Svar: k = 4 k = 6 k = 8 k = 10 6 Oppgave 2 (Metoder) 1f: Hva er en konstruktør? Hvorfor kan en klasse ha flere konstruktører? Svar: En konstruktør er en metode med samme navn som den klassen den ligger i. Den skal verken ha noen returtype eller void. Den blir alltid utført når et nytt objekt av klassen blir dannet ved hjelp av new. 2a: Skriv en metode som leser en tekst fra fil, og teller opp hvor mange ganger et gitt ord forekommer i filen. Både navnet på innfilen og søkeordet skal sendes som argument ved metodekallet. Metoden skal returnere antall forekomster av søkeordet. Siden Java skiller på hvilke typer parametere det er i kallet vil man kunne ha mange forskjellige konstruktører så lenge det er en entydig forskjell mellom typene eller antall parametere. 7 8

Svar på 2a Oppgave 2 (Metoder) int tellord(string filnavn, String ord) { In inn = new In(filnavn) int ant = 0; while (!inn.endoffile()) { String s = inn.inline(); while (s.contains(ord)) { int i = s.indexof(ord); s = s.substring(i+1); ant++; inn.close(); return ant; 2b: Lag en metode som finner den minste verdien i en array hvor elementene er av typen double. Metoden skal motta arrayen som parameter i metodekallet. Metoden skal returnere den minste verdien. 9 10 Svar på 2b Oppgave 3 (Program med klasser) double minste(double[] a) { int n = a.length; double minst = a[0]; for (int i = 1; i < n; i++) { if (a[i] < minst) { minst = a[i]; return minst; Oversikt over boksamlinger Bok = forfatter, tittel, utgivelsesår, ISBN-nummer (unikt nummer for hver bokutgivelse), bokens eier og navn på eventuell låner Java-program Lån og retur av bok Legge inn opplysninger om nye bøker Ved avslutning, skriv filen boksamling.txt Ved oppstart, les boksamling.txt 11 12

Filformat 3a: klassen Bok FORFATTER: J. R. R. Tolkien TITTEL: Ringenes herre UTGIVELSESÅR: 1955 ISBN: 0-393-01183-6 EIER: Ola LÅNT AV: Kari FORFATTER: Stephen Donaldson TITTEL: Fyrst Nids varsel UTGIVELSESÅR: 1997 ISBN: 0-387-94766-3 EIER: Hans LÅNT AV: Klassen Bok = alle opplysningene om en gitt bok Alle Bok-objekter skal få fornuftige verdier for sine variabler ved opprettelsen av objektet Utskriftsrutine som skriver ut bokens tittel, forfatter, utgivelsesår, ISBN, eier og eventuell låner Samme metode skal kunne brukes både for skjermog papirutskrift. Det er alltid en blank linje i filen mellom hver blokk med opplysninger, og hver blokk beskriver en bok. 13 14 Svar på 3a Svar på 3a, konstruktør med utlån class Bok{ String forfatter; String tittel; String utgivelsesår; String isbnnr; String eier; String låntav; Bok (String f, String t, String u, String i, String e, String l) { Bok(String f, String t, String u, String i, String e){ Bok(String f, String t, String u, String i, String e, String l){ forfatter = f; tittel = t; utgivelsesår = u; isbnnr = i; eier = e; låntav = l; void utskrift(out ut){ 15 16

Svar på 3a, konstruktør uten utlån Svar på 3a, utskrift Bok(String f, String t, String u, String i, String e) { forfatter = f; tittel = t; utgivelsesår = u; isbnnr = i; eier = e; låntav = " "; void utskrift(out ut){ ut.outln("forfatter: " + forfatter); ut.outln("tittel: " + tittel); ut.outln("utgivelsesår: " + utgivelsesår); ut.outln("isbn: " + isbnnr); ut.outln("eier: " + eier); ut.outln("lånt_av: " + låntav); ut.outln(" "); // blank linje hver bok 17 18 3b: klassen Bibliotek Svar på 3b Klassen Bibliotek = informasjon om alle de registrerte bøkene Programmer hele klassen Bibliotek og sørg spesielt for å implementere: En metode for å registrere en ny bok En metode for å liste opp alle de registrerte bøkene En metode for å liste opp alle bøkene av en bestemt forfatter Utskriftrutinene skal kunne skrive både til skjerm og til fil. class Bibliotek{ Hashmap bib = new Hashmap(); void registrerbok (Out ut, In inn) { void registrerbok (In inn) { void utskrift (Out ut) { 19 void utskrift (Out ut, String forfatter) { 20

Svar på 3b, registrering av bok Svar på 3b, innlesing fra fil void registrerbok (Out ut, In inn) { ut.outln("skriv inn forfatter: "); String forfatter = inn.inline(); ut.outln("skriv inn tittel: "); String tittel = inn.inline(); ut.outln("skriv inn utgivelsesår: "); String utgivelsesår = inn.inline(); ut.outln("skriv inn ISBN nummer: "); String isbnnr = inn.inline(); ut.outln("skriv inn eier: "); String eier = inn.inline(); ut.outln("skriv inn låner: "); String låntav = inn.inline(); Bok b = new Bok(forfatter, tittel, utgivelsesår, isbnnr, eier, låntav); String nøkkel = isbnnr + eier; bib.put(nøkkel, b); 21 void registrerbok (In inn) { while(!inn.endoffile()) { inn.inword()); String forfatter = inn.inline(); inn.inword(); String tittel = inn.inline(); inn.inword(); String utgivelsesår = inn.inline(); inn.inword(); String isbnnr = inn.inline(); inn.inword(); String eier = inn.inline(); inn.inword(); String låntav = inn.inline(); inn.inline(); Bok b = new Bok(forfatter, tittel, utgivelsesår, isbnnr, eier, låntav); String nøkkel = isbnnr + eier; bib.put(nøkkel, b); 22 Svar på 3b, utskrift Svar på 3b, utskrift av forfatter void utskrift (Out ut) { Iterator it = bib.values().iterator(); while(it.hasnext()) { Bok b = (Bok) it.next(); b.utskrift(ut); void utskrift (Out ut, String forfatter) { forfatter = forfatter.touppercase() String f; Iterator it = bib.values().iterator(); while(it.hasnext()) { Bok b = (Bok) it.next(); f = b.forfatter.touppercase(); if (f.equals(forfatter)) { b.utskrift(ut); 23 24

3c: meny Svar på 3c, metode i Bibliotek Utvid programmet med metoder som viser en meny over de tilgjengelige arbeidsoppgavene, leser brukerens valg og sørger for at riktig oppgave utføres. 25 void meny(out ut, In inn, Out utfil){ ut.outln( Biblioteksmeny"); ut.outln("##############"); boolean stopp = false; while(!stopp){ ut.outln("r: Her kan du regitrere nye bøker."); ut.outln("s: Skrive ut alle bøkene I biblioteket."); ut.outln("f: Skrive ut bøker av en bestemt forfatter."); ut.outln("a: Avslutte"); ut.outln("tast inn ditt valg (R, S, F, eller A):"); char valg = inn.inchar(); switch(valg){ case 'R': registrerbok(ut, inn); break; case 'S': utskrift(ut); break; case 'F': ut.outln("skriv inn forfatternavn: "); String f = inn.inline(); utskrift(ut,f); break; case 'A': utskrift(utfil); stopp = true; break; default: ut.outln("du må taste inn en av bokstavene R, S, F eller A"); 26 3d: hovedprogrammet Svar på 3d Lag en klasse som inneholder main-metoden for systemet La metoden lese inn tilgjengelige opplysninger fra filen boksamling.txt, før den sørger for menyvalg Umiddelbart før programmet avslutter kjøringen, skal alle registrerte opplysninger lagres ved bruk av tidligere programmerte metoder public static void main(string[] a) { String filnavn = boksamling.txt Bibliotek B = new Bibliotek(); Out skjerm = new Out(); In innfil = new In(filnavn); // leser fra fil In tastatur = new In(); B.registrerBok(innfil); innfil.close(); Out utfil = new Out(filnavn); B.meny(skjerm, tastatur, utfil); // skriver til fil utfil.close(); 27 28