Innhold. INF1000 (Uke 12) Sortering og eksamensoppgaver. Oversikt II. Oversikt I. Om sortering. Litt om dokumentasjon av kode. Deler av eksamen H03

Like dokumenter
Oversikt II. Innhold. INF1000 (Uke 12) Oversikt I. Sortering. Lære å lage proff programvare ved å lage. en generell klasse for sortering

INF Forelesning 10

INF1000-seminar lørd. 3 nov kl

Holde orden på objekter

Oppramstyper, HashMap og Innstikksortering, litt

Oppramstyper (enum) - motivasjon

Holde orden på objekter - HashMap

UML-diagrammer av programmene våre. Objekt-diagrammer. Et helt enkelt studentregister med kurs, studenter og registeret

INF1000 (Uke 12) Sortering

Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene.

MED SVARFORSLAG UNIVERSITETET I OSLO

! " ##$ % 4 2, &/ ( & +, )-. &* &/ ),* 0, 1 1 ( &/ 2& &, & &/ &,, &/" 2 &/ 2 ) *

( & ( &/ 2& , )-. &* &/ ),* 0, &/ 2 ) *

Brøkregning og likninger med teskje

Læringsmål og pensum. Forberdring vha preallokering. Oversikt

UNIVERSITETET I OSLO

Matematikk Øvingsoppgaver i numerikk leksjon 8 Numerisk integrasjon

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 13. desember HINDA / 98HINDB / 98HINEA ( 2DA / 2DB / 2EA ) TID:

Terminprøve Matematikk for 1P 1NA høsten 2014

Oppramstyper, HashMap og Innstikksortering, litt. 6. oktober 2009, Arne Maus Inst. for informatikk, UiO

Uke 8 - Oppramstyper, HashMap og Innstikksortering, litt javadoc. 17. oktober 2013, Arne Maus Inst. for informatikk, UiO

Løsningsforslag til avsluttende eksamen i HUMIT1750 høsten 2003.

Kapittel 4 Tall og algebra Mer øving

Numerisk derivasjon og integrasjon utledning av feilestimater

Pensumoversikt - kodegenerering. Maskinen det oversettes til. Kodegenerering del 2: tilleggsnotat, INF5110 v2006

Løsningsforslag til Obligatorisk oppgave 2

Temahefte nr. 1. Hvordan du regner med hele tall

x 1, x 2,..., x n. En lineær funksjon i n variable er en funksjon f(x 1, x 2,..., x n ) = a 1 x 1 + a 2 x a n x n,

IKT-trapp for Lade skole

Matematikk Øvingsoppgaver i numerikk leksjon 9 Numerisk integrasjon

Kapittel 8 TUTORIALS-CASES

UNIVERSITETET I OSLO

Kapittel 3. Potensregning

... JULEPRØVE 9. trinn...

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

Eksempeloppgaver 2014 Løsninger

1 Tallregning og algebra

Løsningsforslag til eksamen i INF2270

5: Algebra. Oppgaver Innhold Dato

Læringsmål og pensum. Funksjoner hittil (1) Oversikt. Læringsmål Anonyme og rekursive funksjoner Funksjoner som inn-argumenter Subfunksjoner

Faktorisering. 1 Hva er faktorisering? 2 Hvorfor skal vi faktorisere? Per G. Østerlie Senter for IKT i utdanningen 11.

UNIVERSITETET I OSLO

INF1010 våren januar. Objektorientering i Java

Sensorveiledning Oppgaveverksted 4, høst 2013 (basert på eksamen vår 2011)

Kvalitetssikring av elektronisk pasientjournal - Skjema 1

FASIT, tips og kommentarer

Fag: Matematikk 1T-Y for yrkesfag for elever og privatisterr. Eksamensdato: 16. januar 2012

EKSAMEN. ANTALL SIDER UTLEVERT: 7 (innkl. forside og 2 sider formelark)

Kapittel 4 Kombinatorikk og sannsynlighet. Løsninger til oppgaver i boka. Løsninger til oppgaver i boka

Integrasjon Skoleprosjekt MAT4010

1 k 2 + 1, k= 5. i=1. i = k + 6 eller k = i 6. m+6. (i 6) i=1

Microsoft PowerPoint MER ENN KULEPUNKTER

Del 2. Alle oppgaver føres inn på eget ark. Vis tydelig hvordan du har kommet frem til svaret. Oppgave 2

... JULEPRØVE

TFY4104 Fysikk. Institutt for fysikk, NTNU. Lsningsforslag til ving 8. a =

Nøtterøy videregående skole

ALTERNATIV GRUNNBOK BOKMÅL

IN1010 våren januar. Objektorientering i Java

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

2-komplements representasjon. Binær addisjon. 2-komplements representasjon (forts.) Dagens temaer

UNIVERSITETET I OSLO

Kom i gang med Perspektiver Smartbok! Vi veileder deg steg for steg!

MAT 1110: Løsningsforslag til obligatorisk oppgave 2, V-06

Løsningsforslag Kollokvium 6

Eneboerspillet. Håvard Johnsbråten

Regn i hodet. a) 15 : 3 = b) 24 : 6 = c) 36 : 4 = d) 48 : 8 = Regn i hodet. a) 21 : 3 = b) 28 : 7 = c) 49 : 7 = d) 64 : 8 =

INF Forelesning 10. Eksempler på Hashmap Oppramstyper Innstikksortering Javadoc

1 Geometri KATEGORI Vinkelsummen i mangekanter. 1.2 Vinkler i formlike figurer

... ÅRSPRØVE

1 Mandag 8. mars 2010

STATISTIKK, KOMBINATORIKK OG SANNSYNLIGHET

Løsningsforslag til ukeoppgaver i INF3110/4110

Hva er tvang og makt? Tvang og makt. Subjektive forhold. Objektive forhold. Omfanget av tvangsbruk. Noen eksempler på inngripende tiltak

Numerisk Integrasjon

addisjon av 2 og 3. Vi skriver da i alt: 2+3= og etter at likhetstegnet er skrevet så gir matcad oss svaret.

TFY4104 Fysikk. Institutt for fysikk, NTNU. Høsten Løsningsforslag til øving 8. a = e m E

Fasit. Oppgavebok. Kapittel 5. Bokmål

Bioberegninger - notat 3: Anvendelser av Newton s metode

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

Get filmleie. Brukerveiledning

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

Øvingsforelesning 9: Minimale spenntrær. Daniel Solberg

1 Tall og variabler. Oppgave Regn ut uten lommeregner. Oppgave Sett inn symbolet eller i de tomme rutene. a) 9 N b) π Q c) 3 R

Numerisk matematikk. Fra Matematikk 3MX (2002) Side

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

Integrasjon av trigonometriske funksjoner

M2, vår 2008 Funksjonslære Integrasjon

MATEMATIKKPRØVE 11. FEBRUAR.

Les Produktsikkerhetsguide før du kobler til maskinen. Les deretter Hurtigstartguide for korrekt konfigurering og installering.

INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012

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

! Dekoder: En av 2 n output linjer er høy, avhengig av verdien på n inputlinjer. ! Positive tall: Som før

1 Algebra. 1 Skriv disse uttrykkene så enkelt som mulig: a) 2(a + 3) (3 + 3a) b) 2(1 a) + a(2 + a) c) 1 + 2(1 3a) + 5a d) 4a 3ab 2(a 5b) + 3(ab 2b)

UNIVERSITETET I OSLO

LØSNINGSFORSLAG(Sensor) I TMA4140 og MA0302

R1 kapittel 7 Sannsynlighet. Kapitteltest. Oppgave 1. Oppgave 2. Oppgave 3. Del 1 Uten hjelpemidler. Løsninger til oppgavene i boka

R2 - Heldagsprøve våren 2013

Mer øving til kapittel 3

DELPRØVE 2 (35 poeng)

Transkript:

Innhold INF1000 (Uke 12) Sortering og eksmensoppgver Om sortering Sortering v heltll og tekster Litt om dokumentsjon v kode Grunnkurs i progrmmering Institutt for Informtikk Universitet i Oslo Deler v eksmen H03 Are Mgnus Bruset og Arild Wler 2 Oversikt I Oversikt II Lære å løse et vnskelig problem Sortering mnge metoder, her Innstikksortering Sortere hv: Heltll Tekster En tbell (2-dim) etter verdiene i første kolonne Eks : telefonktlogen (sortert på nvn) Lære bstrksjon Når vi hr løst ett problem, kn lignende problemer løses tilsvrende Lære å lge proff progrmvre ved å lge en generell klsse for sortering Hvordn deklrere en slik klsse Jvdoc lge dokumentsjon Testing Hvordn utvikle progrmmet 3 4

Sortering Mnge dttyper kn sorteres Krv: opertorer som <, <=, ==, >, >=,!= må h mening Eksempler Tll Tekster (leksikogrfisk = i smme rekkefølge de ville stått i et leksikon) Tbeller v tekster eller tll Sortering Vi må h en lgoritme (oppskrift) for sortering Det finns mnge titlls (hundretlls) metoder å velge blnt Vi skl se på innstikksortering Dette er den rskeste metoden når vi skl sortere få elementer (typisk færre enn 50 elementer) 5 6 Hvorfor sorterer vi Vi skl først lære å sortere heltll For å få noen tll i en bestemt (stigende eller synkende) rekkefølge Eksempel: lotto-tllene Sortere tekster (nvnelister) for rskere oppslg Sortere et sett v opplysninger som hører smmen, ved å sortere på en v opplysningene Eksempel: Telefonktlogen (nvn, dresse, telefonnummer informsjonen sortert på nvn) Dette skl vi (med minimle endringer) bruke til å sortere: String-rryer (tekster) Smmenhengende opplysninger i en 2-dim rry v tekster (hver linje er opplysninger om ett objekt) Eks : Telefonktlogen nvn dr. postnr. tlf. 7 8

En felles klsse for sortering Clss ISort Vi ønsker en klsse med tre vrinter v sortering: Heltll Tekster To-dimensjonl tekst-rrys (sortert på dt i 1. kolonne) public clss ISort { public sttic void sorter(int [] ) { public sttic void sorter(string [] ) { public sttic void sorteretterkol1(string [] [] ) { // end clss ISort 9 10 clss TestInnstikkSortering { public sttic void min ( String[] rgs) { int [] = {3,1,7,14,2,156,77; String [] nvn = {"Ol", "Kri", "Arne", "Jo"; String [][] telefonliste = { {"Per","22852451", {"Arne","33445566", {"Kri","44452611", {"Jo","55010102"; Heltlls-rry 3 1 7 14 2 156 77 "Ol "Kri "Arne "Jo" // sorter heltll - skriv ut ISort.sorter(); for (int i = 0; i <.length; i++) System.out.println("b[" + i +"]= " + [i]); System.out.println("\n Test tekst-sortering:"); // sorter Stringer - skriv ut ISort.sorter(nvn); for (int i = 0; i < nvn.length; i++) System.out.println("nvn[" + i +"]= " + nvn[i]); System.out.println("\n Test 2dim tekst-sortering:"); // sorter Tbell - skriv ut ISort.sorterEtterKol1(telefonliste); for (int i = 0; i < nvn.length; i++) System.out.println("nvn[" + i +"]= " + telefonliste[i][0] + ", med tlf.: " + telefonliste[i][1] ); 11 En-dimensjonl String-rry To-dimensjonl String-rry nvn telefonliste Pekere for lle rdene "Per "22852451" "Arne "33445566" "Kri "44452611" "Jo 55010102 Pekere for hvert element i rd nr. 3

>jv TestInnstikkSortering Test v test-progrmmet med tomme sortering-metoder b[0]= 3 b[1]= 1 b[2]= 7 b[3]= 14 b[4]= 2 b[5]= 156 b[6]= 77 Test tekst-sortering: nvn[0]= Ol nvn[1]= Kri nvn[2]= Arne nvn[3]= Jo Test 2dim tekst-sortering: telefonliste[0]= Per, med tlf.: 22852451 telefonliste[1]= Arne, med tlf.: 33445566 telefonliste[2]= Kri, med tlf.: 44452611 telefonliste[3]= Jo, med tlf.: 55010102 13 Sortering v heltll innstikksmetoden 3 1 7 14 2 156 77 Se på rryen element for element fr venstre Sorterer det vi hittil hr sett på ved : Hvis det nye elementet vi ser på ikke er sortert i forhold til de vi llerede hr sett på: T ut dette elementet (gjem verdien i en vribel t) Skyv de ndre elementene vi her sett på, en-etter-en, ett hkk til høyre. Slutt når elementet i t kn settes inn på sortert plss Den sorterte delen er nå ett element lenger (sett fr venstre) Når vi hr sett på lle elementene, er hele rryen sortert 14 Sorter 1 på plss i forhold til 3 7 og 14 står riktig, Sorter 2 på plss i forhold til : 1,3,7,14 steg 1 3 1 7 14 2 156 77 steg 4 1 3 7 14 2 156 77 t 1 steg 5 1 3 7 14 2 156 77 steg 2 3 3 7 14 2 156 77 steg 6 1 3 7 14 2 156 77 t 1 t 2 flytt: 3,7,14 ett hkk til høyre steg 7 1 3 3 7 14 156 77 steg 3 1 3 7 14 2 156 77 t 1 steg 8 t 2 1 2 3 7 14 156 77 t 2

i k+1 Kode for å flytte ett element på plss : public clss ISort { 1 3 7 14 2 156 77 i t 2 1 3 7 14 156 77 3 t 2 1 2 3 7 14 156 77 t 2 k+1 // [k +1 ] står muligens på // feil plss, t den ut int t = [k + 1], i = k; // skyv [i] mot høyre ett hkk til // vi finner riktig plss til t while (i >= 0 && [i] > t) { [i + 1] = [i]; i--; // sett t inn på riktig plss [i + 1] = t; public sttic void sorter(int [] ) { for (int k = 0 ; k <.length-1; k++) { // [k +1 ] står muligens på feil plss, t den ut int t = [k + 1], i = k; // skyv [i] mot høyre ett hkk til // vi finner riktig plss til t while (i >= 0 && [i] > t) { [i + 1] = [i]; i--; // sett t inn på riktig plss [i + 1] = t; // end heltll-sortering >jv TestInnstikkSortering b[0]= 1 b[1]= 2 b[2]= 3 b[3]= 7 b[4]= 14 b[5]= 77 b[6]= 156 Resultt v sortering med heltlls-metoden kodet, de to ndre tomme Sortering v tekster (String) "Ol "Kri "Arne "Jo" Test tekst-sortering: nvn[0]= Ol nvn[1]= Kri nvn[2]= Arne nvn[3]= Jo Test 2dim tekst-sortering: telefonliste[0]= Per, med tlf.: 22852451 telefonliste[1]= Arne, med tlf.: 33445566 telefonliste[2]= Kri, med tlf.: 44452611 telefonliste[3]= Jo, med tlf.: 55010102 Vi skl sortere denne ved å bytte om på pekerne (l [0] peker på Arne, osv.) med innstikkmetoden 20

Sortere de to første elementene ved å bytte om pekere t "Ol "Kri "Arne "Jo" t = [1]; "Ol "Kri "Arne "Jo" public sttic void sorter(int [] ) { // Sorterer heltllsrryen ''. for (int k = 0 ; k <.length-1; k++) { int t = [k + 1], i = k; while (i >= 0 && [i] > t) { [i + 1] = [i]; i--; [i + 1] = t; // end heltll-sortering t [1]= [0]; "Ol "Kri "Arne "Jo" t [0]= t; public sttic void sorter(string [] ) { // Sorterer String-rryen ''. for (int k = 0 ; k <.length-1; k++) { String t = [k + 1]; int i = k; while (i >= 0 && ( [i].compreto(t) > 0) ){ [i + 1] = [i]; i--; [i + 1] = t; // end String-sortering >jv TestInnstikkSortering b[0]= 1 b[1]= 2 b[2]= 3 Test med heltll og enkel String-sortering kodet, 2dim sortering tom b[3]= 7 b[4]= 14 b[5]= 77 b[6]= 156 Sortering v 2-dim String rry "Per "22852451" "Arne "33445566" Test tekst-sortering: nvn[0]= Arne nvn[1]= Jo nvn[2]= Kri nvn[3]= Ol "Kri "44452611" "Jo 55010102 Test 2dim tekst-sortering: telefonliste[0]= Per, med tlf.: 22852451 telefonliste[1]= Arne, med tlf.: 33445566 telefonliste[2]= Kri, med tlf.: 44452611 telefonliste[3]= Jo, med tlf.: 55010102 Vi kn sortere denne på to måter: Bytte om på pekerne til rdene (l [0] peker på Arne -rden,..osv) Enklest Bytte om på pekerne til hvert element i hver rd Mye mer rbeid, vnskeligere kode, lngsommere 24

public sttic void sorter(string [] ) { // Sorterer String-rryen ''. for (int k = 0 ; k <.length-1; k++) { String t = [k + 1]; int i = k; while (i >= 0 && ( [i].compreto(t) > 0) ){ [i + 1] = [i]; i--; [i + 1] = t; // end String-sortering public sttic void sorteretterkol1(string [] [] ) { // Sorterer den 2-dim String-rryen ' ettter verdi i kol.1. for (int k = 0 ; k <.length-1; k++) { String [] trd = [k + 1]; int i = k; while (i >= 0 && ( [i][0].compreto(trd[0]) > 0) ){ [i + 1] = [i]; i--; [i + 1] = trd; // end 2-dim String-sortering M:\INF1000\prog2>jv TestInnstikkSortering b[0]= 1 b[1]= 2 Alle sorterings metodene skrevet b[2]= 3 b[3]= 7 b[4]= 14 b[5]= 77 b[6]= 156 Test tekst-sortering: nvn[0]= Arne nvn[1]= Jo nvn[2]= Kri nvn[3]= Ol Test 2dim tekst-sortering: telefonliste[0]= Arne, med tlf.: 33445566 telefonliste[1]= Jo, med tlf.: 55010102 telefonliste[2]= Kri, med tlf.: 44452611 telefonliste[3]= Per, med tlf.: 22852451 Jvdoc proff dokumentsjon v klssene Legg inn spesielle kommentrer i progrmmet ditt (over hver metode og klsse) Kjør progrmmet jvdoc som utomtisk genererer en oversiktlig dokumentsjon 27 /** Klsse for sortering etter 'innstikk-metoden', se Rett på Jv - kp.5.7. Sortering v heltllsrry, tekster og en to-dimensjonl tekst-rry sortert etter verdiene i første kolonne.<br> N.B. Bre velegnet for mindre enn 100 elementer. * Copyright : A.Mus, Univ. i Oslo, 2003 **********************************************************/ public clss ISort { /** Sorterer heltll i stigende rekkefølge @prm heltllsrryen som sorteres * Endrer prmeter-rryen. ********************************************/ public sttic void sorter(int [] ) { /** * Sorterer String-rryer i stigende leksikogrfisk orden. @prm rryen som sorteres * Endrer prmeter-rryen ********************************************/ public sttic void sorter(string [] ) { /** * Sorterer en to-dimensjonle String-rry * etter verdiene i første kolonne. * Nytter pekerombytting v rdpekerne. * Antr t lle rdene hr minst ett element * @prm en to-dimensjonl rry som sorteres * Endrer prmeter-rryen. ******************************************************/ public sttic void sorteretterkol1(string [] [] ) { // end clss ISort

Dokumentsjon v klssen og metodene -jvdoc >jvdoc ISort.jv Loding source file ISort.jv... Constructing Jvdoc informtion... Stndrd Doclet version 1.4.2 Generting constnt-vlues.html... Building tree for ll the pckges nd clsses... Building index for ll the pckges nd clsses... Generting overview-tree.html... Generting index-ll.html... Generting deprected-list.html... Building index for ll clsses... Generting llclsses-frme.html... Generting llclsses-nofrme.html... Generting index.html... Generting pckges.html... Generting ISort.html... Generting pckge-list... Generting help-doc.html... Generting stylesheet.css... 29 Eksmen høsten 2003 Den store bøygen i INF1000 er de obligtoriske oppgvene Hovedformålet med eksmen er å skille ut de som hr skjønt litt om progrmmering fr de som ikke hr skjønt noe For de som hr løst de obligtoriske oppgvene uten mye hjelp, bør eksmen være gnske enkel 32

Eksmen høsten 2003 I dg tr vi oppgve 1 Resten v oppgvesettet gjennomgås senere Oppgve 1.1 Hvilke utsgn er riktige om en vribel deklrert i en objektmetode? Før vi foretr en tilordning til vribelen hr den ingen verdi Den kn h en ksessmodifiktor (f eks privte eller public) Andre objektmetoder i smme klsse hr tilgng (ksess) til vribelen Objektmetoder i ndre klsser hr tilgng (ksess) til den vi prikk-notsjon 33 34 Oppgve 1.1 vurderinger NB! Les oppgveteksten nøye!... i en objektmetode? Vrible i metoder er lltid utilgjengelige utenfr. Derfor er det også uktuelt med ksessmodifiktor Oppgve 1.1 svr Svret på oppgve 1.1 er ltså lterntiv 1: Før vi foretr en tilordning til vribelen hr den ingen verdi Som lle vrible er metodevrible uten verdi i strten. De kn initieres ved deklrsjonen: int x = 0; eller ved en tilordning senere 35 36

Oppgve 1.2 Hvilke utsgn er riktige om en objektvribel? Før vi foretr en tilordning hr den ingen verdi Den kn h en ksessmodifiktor (f eks privte eller public) Objektmetoder i smme klsse hr tilgng (ksess) til vribelen Objektmetoder i ndre klsser hr tilgng (ksess) til den vi prikk-notsjon dersom vribelen er deklrert som public Oppgve 1.2 vurderinger Vi hr følgende ksessmodifiktorer: Privte: skjult for lle ndre klsser Protected: skjult for lle ndre klsser (unnttt subklsser) kun tilgjengelig for klsser i smme pkke public åpen for lle Dere vet ikke hv pkker og subklsser er; det kommer i INF1010 Dere trenger bre å vite: privte skjult public åpen 37 38 Oppgve 1.2 svr Oppgve 1.3 Svret på oppgve 1.2 er d lle lterntivene 1, 2, 3, 4 Hvor mnge heltll settes det v plss til (rrylengde) i setningen int[] tllene = new int[100]; Alterntiver: 99, 100, 101 heltll Svr: 100 heltll 39 40

Oppgve 1.4 Oppgve 1.5 Hvor mnge gnger skrives Eksmen ut? for (int i = 0; i < 100; i++) { for (int j = 0; j < 99; j++) { System.out.println( Eksmen ); Hvor mnge gnger skrives INF 1000 ut? for (int i = 0; i < 3; i++) { for (int j = 0; j <= i; j++) { System.out.println("INF 1000"); Svr: 100 * 99 = 9900 gnger 41 42 Oppgve 1.5 svr Oppgve 1.6 i 0 1 2 Svr: 6 gnger j 0 0, 1 0, 1, 2 Hvilken verdi hr lder etter denne koden? int lder = 4; int nylder = lder--; // A lder += nylder; // B lder++; // C 43 44

Oppgve 1.6 svr Utskrift A B C lder 3 7 8 nylder Svr: lder hr verdien 8 etter t lle setningene er utført 4 4 4 Oppgve 1.7 Ant t vi hr et progrm hvor en v klssene blnt nnet hr følgende objektvribeldeklrsjon: HshMp personer = new HshMp(); Klssen inneholder blnt nnet metoder for å legge inn objekter v klssen Person (med en pssende nøkkel, f eks personnummer) i HshMp-en og for å løpe gjennom lle Person-objektene i HshMpen. Sistnevnte metode, som skl klle på en metode SkrivUt() i hvert v objektene i HshMp-en, ser slik ut: void skrivalle () { Itertor liste = personer.vlues().itertor(); while (liste.hsnext()) {... b.skrivut(); 45 46 Oppgve 1.7 Innholdet i while-løkken ovenfor er ikke ferdig utfylt. Hvilke(t) v følgende lterntiver kn vi ersttte... med slik t metoden virker slik den skl? Person b = it.next(); Person b = (Person)it.next(); Person b = liste.next(); Person b = (Person)liste.next(); Bil b = (Bil)it.next(); Oppgve 1.7 vurderinger NB! En del spørsmål vil være formet slik t de sjekker forståelse. Målet er t de som kopierer blindt fr læreboken eller lysrk, skl tbbe seg ut De fleste eksemplene kller itertoren for it, men i dette eksemplet heter den liste Determnge eksemplermed Bil i læreboken, men de hr ingenting med dette eksemplet å gjøre Derimot demonstrerer eksemplene t mn må typekonvertere når mn bruker en itertor Ingen v lterntivene ovenfor 47 48

Oppgve 1.7 svr Oppgve 1.8 Svret på oppgve 1.7 blir d lterntiv 4: Person b = (Person)liste.next(); 49 Hv skrives ut? int i = 11; int j = i; int k = 32; j er 11, j*i er 121 if (k > j * i k < i) { System.out.println("A"); else { if (k < j * i && k > i) { System.out.println("B"); else { System.out.println("C"); Svr: B 32 > 121 er flse 32 < 11 er flse 32 < 121 er true 32 > 11 er true 50 Oppgve 1.9 Oppgve 1.9 svr Hvordn beregne summen v tllene i? int[] = new int[77]; int sum = 0; int i = 0; while (i <.length) { sum = [i]; i++; int i = 0; while (i <.length) { sum += [i]; ++j; int i = 0; while (i <.length) { sum += [i]; i++; Feil sum, får sum = [76] Feil sum, evig løkke, sum = [0]+[0]+ JA riktig sum 51 int i = 0; while (i++ <.length) { sum += [i-1]; JA riktig sum 52

Oppgve 1.9 svr Oppgve 1.10 Hvilken verdi får k? for (int i = 0; i <.length; i++) { sum += [i]; for (int i = 1; i <=.length; i++) { sum += [i-1]; JA riktig sum JA riktig sum int i = 11; int k = i/3; Alterntiver: 3, 3.67, 4, ingen v lt. Svr: k blir 3 (heltllsdivisjon) for (int i = 0; i <.length; ++i) { sum = sum + [i]; JA riktig sum 53 54 Oppgve 1.11 Oppgve 1.12 void dobleverdi(int k) { k = k * 2; Hv blir k? Alterntiver: 12, 24, 6 Svr: 12 (ikke retur) Ant t følgende progrm utføres: clss Studentregister { public sttic void min (String[] rg) { Student s = new Student("Ole", "Krl Johns gt 1"); Student p = new Student("Mrit","Krl Johns gt 2"); System.out.println(s.fåNvn()+" og "+p.fånvn()); clss Student { String nvn = "Grete"; String dresse = "Blindernveien 3"; int k = 12 dobleverdi(k) System.out.println( Verdien til k er + k); Student (String nvn, String dresse) { this.nvn = nvn; this.dresse = dresse; String fånvn () {return nvn; 55 56

Oppgve 1.12 Hv blir utskriften på skjermen? Grete og Grete Ole og Ole Mrit og Mrit nvn og nvn Ole og Mrit s.fånvn() og s.fånvn() Mrit og Ole Ingen v lterntivene over Oppgve 1.12 vurderinger Det er ingen klssevrible (ngitt med sttic) i denne oppgven, kun vnlige objektvrible Deklrsjonene String nvn = "Grete"; String dresse = "Blindernveien 3"; utføres først hver gng et nytt objekt lges, men overskrives så v det som skjer i konstruktøren: Student (String nvn, String dresse) { this.nvn = nvn; this.dresse = dresse; Metoden fånvn er en vnlig objektmetode og utføres inne i det objektet som ngis i kllet: 57 s.fånvn() og p.fånvn() 58 Oppgve 1.12 svr Det riktige svret på oppgve 1.12 blir d lterntiv 5: Ole og Mrit 59