INF1010. generiske metoder grensesni2 begrensende typeparametre grensesni2et Comparable grensesni2et Iterable

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Begynne med side:

Download "INF1010. generiske metoder grensesni2 begrensende typeparametre grensesni2et Comparable grensesni2et Iterable"

Transkript

1 INF1010 generiske metoder grensesni2 begrensende typeparametre grensesni2et Comparable<T> grensesni2et Iterable<T>

2 public sta>c <T> void test(string descrip>on, T expected, T actual) { if (expected!= null && expected.equals(actual)) { System.out.prinL("OK - %s%n", descrip>on); else if (expected == actual) { else { System.out.prinL("OK - %s%n", descrip>on); System.out.prinL("FEIL - %s. Skulle vaert: %s. Var: %s%n", descrip>on, expected, actual); Fra et av testprogrammene.l oblig2: Mengde<String> litenmengde = new Mengde<>(); litenmengde.leggtil("hei"); test("tom() paa ikke- tom mengde returnerer false", false, litenmengde.tom());

3 Grensesni2 Begrepet grensesni2 har flere betydninger grensesni2et >l et objekt eller en klasse: en mengde metoder og variable >lgjengelig utenfor objektet/klassen et navngi4 grensesni4 i Java definert med interface

4 public class LenkeListe <T> implements Stabel<T> { private Node foran; private int antall; private class Node { LenkeListe() { foran = null; antall = 0; public interface Stabel<E> { public void se2innforan(e e); public E tautforan(); private void testtype(t o) { /* Metoder som er påkrevd fra det navngi2e grensesni2et Stabel<E> */ public void se2innforan(t t) { public T tautforan() { /* Resten av grensesni2et >l listeobjektet */ public void skrivutinfoomalleobjekteneilista() { public void skrivutalleska2ebelagte() { Hvis vi gjør variabler.lgjengelige utenfra (;erner private eller deklarerer public) blir de også med i klassens grensesni4

5 public class LenkeListe <T> implements Stabel<T> { private Node foran; private int antall; private class Node { Node (T t) { obj = t; Node neste; T obj; LenkeListe(){ foran = null;. antall = 0; Tilstandspåstander i lenkelista: Invariante.lstandspåstander (skal gjelde før og e4er alle metodekall, uanse4 rekkefølge av kallene): foran peker på første node i lista Bare bakerste node har en nestepeker som er null Når lista er tom skal (.lstanden etableres av konstruktør): antall innholde tallet 0 foran peke på null

6 class TestProg { public sta>c void main (String[] a) { LenkeListe<Object> beholder = new LenkeListe<Object>(); Bil b = new Drosje(); beholder.se2innforan(b); b = new Personbil(); beholder.se2innforan(b); beholder.se2innforan(new Ka2("Fritz")); beholder.se2innforan(new Mus(47, true)); beholder.se2innforan(new Drosje()); beholder.se2innforan("mildvær"); beholder.se2innforan("26feb2015"); beholder.se2innforan(new Ost(250)); beholder.se2innforan(new String("Snøvær")); beholder.skrivutinfoomalleobjekteneilista(); beholder.skrivutalleska2ebelagte();

7 class Bil { public Bil() { pris = ; public Bil(int v) { pris = v; protected int pris; public int ska2( ) {return pris; class Personbil extends Bil { private int antallpassasjer; public int ska2( ) {return pris * 2; class Lastebil extends Bil { private double lastevekt; public int ska2 ( ) {return pris / 2; class Drosje extends Personbil { private String loyveid; public int ska2 ( ) {return pris / 4; Testobjektene Ka2 (String n, int vekt, boolean s) { navn = n; vektigram = vekt; syk = s ; Mus (int v, boolean s) { ++museteller; navn = "musnr" + museteller; vektigram = v; if (s) >lstand = 1; class Ost { private int innkjpris; Ost(int ip) { innkjpris = ip; public int ska2( ) { return innkjpris * 3;

8 public class LenkeListe<T> implements Stabel<T> {... public void se2innforan(t t) { if (t instanceof Bil) System.out.println("Se2er inn en bil: " + t); else System.out.println("Se2er inn noe annet: " + t); Node n = new Node(t); n.neste = foran; foran = n; antall++;

9 public class LenkeListe<T> implements Stabel<T> {... public T tautforan() { Node n = foran; if (n!= null) { foran = n.neste; return n.obj; else return null;

10 public class LenkeListe<T> implements Stabel<T> {... public void testtype(t o) { if (o instanceof Bil) System.out.println(". er en bil (Bil eller subklasse av Bil)!"); else if (o instanceof String ) else System.out.println("... tekststreng (String)!"); System.out.println("... noe ukjent!");

11 Hva vet vi om «T- ene»? Utdrag fra grensesni4et.l klassen Object, alle klassers superklasse: boolean equals(object obj) Indicates whether some other object is "equal to" this one. Class<?> getclass() Returns the run>me class of this Object. int hashcode() Returns a hash code value for the object. De4e kan vi se med Object- briller: String tostring() Returns a string representa>on of the object. Alle objekter har arvet disse metodene.

12 public class LenkeListe<T> implements Stabel<T> {... public void skrivutinfoomalleobjekteneilista() { Node n = foran; for (int i = antall; i > 0; i- - ) { System.out.print ( n.obj.tostring() + ", " + n.obj.hashcode() + ", " + n.obj.getclass().getname() ); testtype(n.obj); if (n.obj instanceof Bil) System.out.println(" De2e var fak>sk en bil med ska2: " + ((Bil)n.obj).ska2() ); if (n.obj.getclass().getname().equals("drosje")) { System.out.println(" De2e var fak>sk en drosje med ska2: " + ((Drosje)n.obj).ska2() ) ; n = n.neste;

13 Node foran Node neste Object obj public class LenkeListe<T> implements Stabel<T> {... public void skrivutinfoomalleobjekteneilista() { Node n = foran; for (int i = antall; i > 0; i- - ) { System.out.print ( n.obj.tostring() + ", " + n.obj.hashcode() + ", " + n.obj.getclass().getname() ); testtype(n.obj); if (n.obj instanceof Bil) System.out.println(" De2e var fak>sk en bil med ska2: " + ((Bil)n.obj).ska2() ); if (n.obj.getclass().getname().equals("drosje")) { System.out.println(" De2e var fak>sk en drosje med ska2: " + ((Drosje)n.obj).ska2() ) ; n = n.neste;

14 public void skrivutalleska2ebelagte() { System.out.println(" SKATTEBELAGTE: "); Node n = foran; for (int i = antall; i>0; i- - ) { if (n.obj instanceof Bil) System.out.println(" En bil (" + n.obj + ") med ska2: " + ((Bil)n.obj).ska2() ); else if (n.obj instanceof Ost) System.out.println(" En ost (" + n.obj + ") med ska2: " + ((Ost)n.obj).ska2() ); // else objekt uten ska2() n = n.neste;

15 public void skrivutalleska2ebelagte() { System.out.println(" SKATTEBELAGTE: "); Node n = foran; for (int i = antall; i>0; i- - ) { if (n.obj instanceof Ska2bar) { System.out.println("Et ska2ebelagt objekt (" + n.obj + ") med ska2: " + ((Ska2bar)n.obj).ska2() ); n = n.neste;

16 class Bil implements Ska2bar { public Bil() { pris = ; public Bil(int v) { pris = v; protected int pris; public int ska2( ) {return pris; public interface Ska2bar { public int ska2(); Med Ska4bar- briller ser vi bare metoden ska4() class Personbil extends Bil { private int antallpassasjer; public int ska2( ) {return pris * 2; class Lastebil extends Bil { private double lastevekt; public int ska2 ( ) {return pris / 2; class Drosje extends Personbil { private String loyveid; public int ska2 ( ) {return pris / 4; class Ost implements Ska2bar { private int innkjpris; Ost(int ip) { innkjpris = ip; public int ska2( ) { return innkjpris * 3;

17 public class LenkeListe <T extends Ska2bar> implements Stabel<T> {... public void skrivutalleska2ebelagte() { System.out.println(" SKATTEBELAGTE: "); Node n = foran; for (int i = antall; i>0; i- - ) { System.out.println("Et ska2ebelagt objekt (" + n.obj + ") med ska2: " + n.obj.ska2() ); n = n.neste;

18 class TestProg { public sta>c void main (String[] a) { LenkeListe<Ska2bar> beholder = new LenkeListe<Ska2bar>(); LenkeListe<Bil> bilbeholder = new LenkeListe<Bil>(); LenkeListe<Ost> OsteBeholder = new LenkeListe<Ost>(); LenkeListe<Drosje> drosjebeholder = new LenkeListe<Drosje>(); - - -

19 class Bil implements Ska2bar { public Bil() { pris = ; public Bil(int v) { pris = v; protected int pris; public int hentpris() { return pris; public int ska2( ) {return pris; public int sammenlignmedenannen ( Bil b ) { return hentpris() - b.hentpris() ; Bil minbil = new Bil ( ); Bil dinbil = new Bil ( ); int j = dinbil.sammenlignmedenannen ( minbil ) ; Hva blir verdien.l variabelen j?

20 class Bil implements Ska2bar, Sammenlignbar<Bil> { public Bil() { pris = ; public Bil(int v) { pris = v; protected int pris; public int hentpris() { return pris; public int ska2( ) {return pris; interface Sammenlignbar<T> { int sammenlignmedenannen ( T t ) public int sammenlignmedenannen ( Bil b ) { return hentpris() - b.hentpris() ; Bil minbil = new Bil ( ); Bil dinbil = new Bil ( ); int j = dinbil.sammenlignmedenannen ( minbil ) ; Hva blir verdien.l variabelen j?

21 interface Sammenlignbar<T> { int sammenlignmedenannen ( T t ) ; public class LenkeListe <T extends Sammenlignbar <T> > {... public T hentminste() { System.out.println(" Finner minste sammenlignbare objekt: "); Node n = foran; T hizlminste = n.obj; System.out.println(" Fant ny2 minste objekt: " + hizlminste); for (int i = antall; i>0; i- - ) { if (n.obj. sammenlignmedenannen(hizlminste) < 0 ) { hizlminste = n.obj; System.out.println(" Fant ny2 minste objekt: " + hizlminste); n = n.neste; System.out.println(); return hizlminste;

22 public interface Comparable<T> { int compareto( T t ) ; public class LenkeListe <T extends Comparable<T> > {... public T hentminste() { System.out.println(" Finner minste sammenlignbare objekt: "); Node n = foran; T hizlminste = n.obj; System.out.println(" Fant ny2 minste objekt: " + hizlminste); for (int i = antall; i>0; i- - ) { if (n.obj. compareto(hizlminste) < 0 ) { hizlminste = n.obj; System.out.println(" Fant ny2 minste objekt: " + hizlminste); n = n.neste; System.out.println(); return hizlminste;

23 Tenk på hvordan en for- løkke «går igjennom» alle objektene i en array

24 Iterator miniterator Object next() boolean hasnext() Iterator miniterator = new Iterator (beholder) ; while ( miniterator.hasnext() ) { Object o = miniterator.next(); <Gjør noe med objektet>

25 Iterator<Ska2bar> ska2eiterator Ska2bar next() boolean hasnext() Ska2bar sk = null; Iterator<Ska2bar> ska2eiterator = beholder.iterator(); while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2());

26 int teller Node pekertilneste Ska2bar next() class LenkeListeIterator { private int teller = 0; private Node pekertilneste = foran; boolean hasnext() public boolean hasnext() { return ( teller < antall ); public T next() { T returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne;

27 int teller Node pekertilneste Ska2bar next() boolean hasnext() class LenkeListeIterator implements Iterator<T> { private int teller = 0; private Node pekertilneste = foran; public boolean hasnext() { return ( teller < antall ); public T next() { T returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne;

28 int teller Node pekertilneste Ska2bar next() public Iterator<T> iterator() { return new LenkeListeIterator(); boolean hasnext() class LenkeListeIterator implements Iterator<T> { private int teller = 0; private Node pekertilneste = foran; public boolean hasnext() { return ( teller < antall ); public T next() { T returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne; Husk hvordan vi får tak i iteratorobjektet i testprogrammet: Iterator<Ska2bar> ska2eiterator = beholder.iterator();

29 public class LenkeListe <T> implements Iterable<T> {... public Iterator<T> iterator() { return new LenkeListeIterator(); T next() int teller Node pekertilneste private class LenkeListeIterator implements Iterator<T> { int teller = 0; Node pekertilneste = foran; public boolean hasnext() { return ( teller < antall ); public void remove() { public T next() { T returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne;... boolean hasnext() et slikt objekt finnes ikke

30 int Node Iterator<Ska2bar> ska2eiterator teller Ska2bar next() pekertilneste Men denne koden i testprogrammet gir oss et slikt objekt som kan iterere over ska4bare objekter boolean hasnext() public sta>c void main (String[] a) { LenkeListe<Ska2bar> beholder = new LenkeListe<Ska2bar>(); Iterator<Ska2bar> ska2eiterator = beholder.iterator(); Ska2bar sk = null; while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2());

31 LenkeListe<Ska2bar> beholder Node foran Iterator<Ska2bar> ska2eiterator int 6 antall int 0 teller Ska2bar next() boolean hasnext() Node pekertilneste public Ska2bar next() { Ska2bar returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne; while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2());

32 LenkeListe<Ska2bar> beholder Node foran Iterator<Ska2bar> ska2eiterator int 6 antall int 1 teller Ska2bar next() boolean hasnext() Node pekertilneste public Ska2bar next() { Ska2bar returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne; while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2());

33 LenkeListe<Ska2bar> beholder Node foran Iterator<Ska2bar> ska2eiterator int 6 antall int Node 2 teller pekertilneste Ska2bar next() boolean hasnext() public Ska2bar next() { Ska2bar returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne; while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2());

34 LenkeListe<Ska2bar> beholder Node foran Iterator<Ska2bar> ska2eiterator int 6 antall int Node 3 teller pekertilneste Ska2bar next() boolean hasnext() public Ska2bar next() { Ska2bar returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne; while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2());

35 LenkeListe<Ska2bar> beholder Node foran Iterator<Ska2bar> ska2eiterator int 6 antall int Node 4 teller pekertilneste Ska2bar next() boolean hasnext() public Ska2bar next() { Ska2bar returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne; while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2());

36 LenkeListe<Ska2bar> beholder Node foran Iterator<Ska2bar> ska2eiterator int 6 antall int Node 5 teller pekertilneste Ska2bar next() boolean hasnext() public Ska2bar next() { Ska2bar returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne; while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2());

37 LenkeListe<Ska2bar> beholder Iterator<Ska2bar> ska2eiterator int Node 6 teller pekertilneste Ska2bar next() Node foran int 6 antall null boolean hasnext() public Ska2bar next() { Ska2bar returnerdenne = pekertilneste.obj; teller++ ; pekertilneste = pekertilneste.neste; return returnerdenne; while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2());

38 Ska2bar sk = null; Iterator<Ska2bar> ska2eiterator = beholder.iterator(); while ( ska2eiterator.hasnext() ) { sk = ska2eiterator.next(); System.out.println("De2e er et ska2ebelagt objekt [" + sk + "] med ska2 NOK " + sk.ska2()); System.out.println("Alterna>v iterering: "); for (Ska2bar s: beholder) { System.out.println("De2e er et ska2ebelagt objekt [" + s + "] med ska2 NOK " + s.ska2());

INF1010. grensesni-et Comparable grensesni-et Iterable rekursjon

INF1010. grensesni-et Comparable<T> grensesni-et Iterable<T> rekursjon INF1010 grensesni-et Comparable grensesni-et Iterable rekursjon Tenk på hvordan en for- løkke «går igjennom» alle objektene i en array Iterator miniterator Object next() Iterator miniterator = new

Detaljer

< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4» < T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar

Detaljer

INF1010. Stein Michael Storleer (michael) Lenkelister

INF1010. Stein Michael Storleer (michael) Lenkelister INF1010 Stein Michael Storleer (michael) Lenkelister Lenke Datastrukturen lenkeliste class { = null ; foran foran = new () ; class { = null ; foran foran = new () ; foran. = new () ; class { = null ; foran

Detaljer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting

Detaljer

INF januar 2015 Stein Michael Storleer (michael) Lenkelister

INF januar 2015 Stein Michael Storleer (michael) Lenkelister INF1010 29. januar 2015 Stein Michael Storleer (michael) Lenkelister Lenke + lister = lenkelister Vi starter med lenkeobjektene Lager en kjede av objekter ved hjelp av pekere class { ; Legger Jl data innholdet

Detaljer

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 21. februar 2013 Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Ikke noe nytt her From the Java language specification (version 6): 14.14.2

Detaljer

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 26. februar 2014 1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Vi tar utgangspunkt i dette programmet for

Detaljer

INF1010 våren februar. Arv og subklasser, del 2. Repetisjon. Repetisjon - Biler. Repetisjon: Klasser - Subklasser

INF1010 våren februar. Arv og subklasser, del 2. Repetisjon. Repetisjon - Biler. Repetisjon: Klasser - Subklasser INF1010 våren 2009 3. februar Arv og subklasser, del 2 En forsmak på interface (grensesnitt) Stein Gjessing Repetisjon Vi har sett to former for gjenbruk av klasser: Gammel: Ved sammensetning (komposisjon)

Detaljer

INF1010 våren februar. Arv og subklasser, del 2

INF1010 våren februar. Arv og subklasser, del 2 INF1010 våren 2009 3. februar Arv og subklasser, del 2 En forsmak på interface (grensesnitt) Stein Gjessing Repetisjon Vi har sett to former for gjenbruk av klasser: Gammel: Ved sammensetning (komposisjon)

Detaljer

INF1010, 23. februar Parametriserte klasser Om å gå gjennom egne beholdere (subklasser og grensesnitt 3)

INF1010, 23. februar Parametriserte klasser Om å gå gjennom egne beholdere (subklasser og grensesnitt 3) INF1010, 23. februar 2012 Parametriserte klasser Om å gå gjennom egne beholdere (subklasser og grensesnitt 3) Stein Gjessing Inst for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder

Detaljer

klassen Vin må få en ny variabel Vin neste alle personvariable (personpekere) i listeklassen må byttes til Vin

klassen Vin må få en ny variabel Vin neste alle personvariable (personpekere) i listeklassen må byttes til Vin INF1010 forelesning Lenkelister II Dette skrivet inneholder en oversikt over det jeg planlegger å forelese på andre forlesning om lenkelister. Det inneholder stort sett programeksempler med kommentarer

Detaljer

INF Notater. Veronika Heimsbakk 10. juni 2012

INF Notater. Veronika Heimsbakk 10. juni 2012 INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N

Detaljer

INF1010. Grensesnittet Comparable

INF1010. Grensesnittet Comparable<T> INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd

Detaljer

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 9. juni 2011 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson

Detaljer

INF1010 våren Arv og subklasser - del 2

INF1010 våren Arv og subklasser - del 2 INF1010 våren 2013 Torsdag 14. februar Arv og subklasser - del 2 Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi Mer om arv / interface Mer om pekertilordninger

Detaljer

INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre

INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre INF1010 Rekursive metoder, binære søketrær Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter

Detaljer

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

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; } 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; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =

Detaljer

INF1010 våren 2014. Arv og subklasser - del 2

INF1010 våren 2014. Arv og subklasser - del 2 INF1010 våren 2014 Onsdag 19. februar Arv og subklasser - del 2 Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi Mer om arv / interface Mer om pekertilordninger

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister Lars Sydnes, NITH 5. februar 2014 I. Implementasjoner Tabell-implementasjon av Stakk Tabellen er den lettest tilgjengelige datastrukturen

Detaljer

Kapittel 9: Sortering og søking Kort versjon

Kapittel 9: Sortering og søking Kort versjon Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. "Taher" type: String : type: :... type: : inf1010student null michael@ifi.uio.no INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public

Detaljer

INF1010 - Seminaroppgaver til uke 3

INF1010 - Seminaroppgaver til uke 3 INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar

Detaljer

INF1010 våren 2016. Arv og subklasser - del 2

INF1010 våren 2016. Arv og subklasser - del 2 INF1010 våren 2016 Onsdag 10. februar Arv og subklasser - del 2 pluss litt om feil og unntak hvis tid Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi

Detaljer

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Løsningsforslag 1 Algoritmer og datastrukturer Løsningsforslag Eksamen 29. november 2011 Oppgave 1A Verdien til variabelen m blir lik posisjonen til den «minste»verdien i tabellen, dvs. bokstaven A, og det blir 6. Oppgave

Detaljer

INF1010 våren Arv og subklasser del 1

INF1010 våren Arv og subklasser del 1 INF1010 våren 2015 Torsdag 12. februar Arv og subklasser del 1 Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du programmere med: Første uke: Spesialisering

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler

Detaljer

INF1010 våren Arv og subklasser del 1

INF1010 våren Arv og subklasser del 1 INF1010 våren 2016 Torsdag 4. februar Arv og subklasser del 1 Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du programmere med: Første uke: Spesialisering

Detaljer

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Emneoversikt subklasser INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Stein Gjessing Institutt for informatikk Mange flere eksempler på fellesøvelsene og neste forelesning 1 Generalisering - spesialisering

Detaljer

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen Algoritmer og datastrukturer Eksamen 24.02.2010 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator som ikke kommuniserer. Faglærer: Ulf Uttersrud Råd og tips: Bruk ikke for

Detaljer

INF1010 våren Arv, subklasser og grensesnitt - del 2

INF1010 våren Arv, subklasser og grensesnitt - del 2 INF1010 våren 2012 Torsdag 16. februar Arv, subklasser og grensesnitt - del 2 Stein Gjessing Institutt for informatikk Dagens tema nummer 1 Norsk: Grensesnitt Engelsk: Interface 2 Hva er objektorientert

Detaljer

INF1010 våren Arv og subklasser, del 2

INF1010 våren Arv og subklasser, del 2 INF1010 våren 2010 Torsdag 4. februar Arv og subklasser, del 2 Stein Gjessing Institutt for informatikk Repetisjon Vi har sett to former for gjenbruk av klasser: Gammel: Ved sammensetning (komposisjon)

Detaljer

INF1010 Binære søketrær ++

INF1010 Binære søketrær ++ INF1010 Binære søketrær ++ Programeksempler med insetting, gjenfinning av noder i et binært søketre samt eksempler på hvordan lage en liste av et binærtre. Hva må du kunne om binære søketrær i INF1010

Detaljer

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

Kapittel 8: Sortering og søking INF100

Kapittel 8: Sortering og søking INF100 Forelesningsnotater for: Kapittel 8: Sortering og søking INF100 Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk, 2003. ISBN 82-02-23274-0 http://www.ii.uib.no/~khalid/jfps/

Detaljer

Lenkelister og beholdere av lenkelister

Lenkelister og beholdere av lenkelister Lenkelister og beholdere av lenkelister Et notat for INF1010 Stein Michael Storleer 17. mars 2014 2014-utgaven av notatet er utvidet med programeksemplene som brukes i forelesningene om lenkelister og

Detaljer

INF1010 våren 2017 Torsdag 2. februar. Arv og subklasser - del 2

INF1010 våren 2017 Torsdag 2. februar. Arv og subklasser - del 2 INF1010 våren 2017 Torsdag 2. februar Arv og subklasser - del 2 Stein Gjessing Dagens tema Virtuelle metoder som er det samme som Polymorfi Når bruker vi arv / når bruker vi komposisjon Konstruktører i

Detaljer

Dagens forelesning. Husk prøveeksamen Fredag 15/3-13 kl 12 i R1. Iterator-teknikken. Eksempel med bruk av Iterator og Iterable-grensesnittene

Dagens forelesning. Husk prøveeksamen Fredag 15/3-13 kl 12 i R1. Iterator-teknikken. Eksempel med bruk av Iterator og Iterable-grensesnittene Dagens forelesning Iterator-teknikken Hva er en Iterator og hvorfor bruke den? Hvordan virker en Iterator? Vi lager en Iterator for tegnene i en String Iterable-grensesnittet og for-løkker Eksempel med

Detaljer

INF1010 våren 2007 Uke 6, 6. februar Arv og subklasser, del 2

INF1010 våren 2007 Uke 6, 6. februar Arv og subklasser, del 2 Repetisjon INF1010 våren 2007 Uke 6, 6. februar Arv og subklasser, del 2 Stein Gjessing Institutt for informatikk Vi har sett to former for gjenbruk av klasser: Gammel: Ved sammensetning (komposisjon)

Detaljer

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

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004 Oppgave 1 Prøveeksamen i INF1000 Ole Christian og Arne 23. november 2004 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new

Detaljer

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 Oppgave 10 Tegning av datastrukturen (vekt 5% av del B) Tegn datastrukturen til

Detaljer

Liste som abstrakt konsept/datatype

Liste som abstrakt konsept/datatype Lister Liste som abstrakt konsept/datatype Listen er en lineær struktur (men kan allikevel implementeres ikke-lineært bak kulissene ) Hvert element har en forgjenger, unntatt første element i listen Hvert

Detaljer

Kapittel 8: Sortering og søking INF100

Kapittel 8: Sortering og søking INF100 Forelesningsnotater for: Kapittel 8: Sortering og søking INF100 Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk, 2003. ISBN 82-02-23274-0 http://www.ii.uib.no/~khalid/jfps/

Detaljer

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

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004 Prøveeksamen i INF1000 Ole Christian og Arne 23. november 2004 Oppgave 1 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new

Detaljer

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

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI Oppgave 1 INF1000 Uke 13 Gjennomgang av prøveeksamen fra høsten 2004 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new double[1];

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Mandag 30. november 2009 Tid for eksamen: 14.30 17.30

Detaljer

Kapittel 9: Sortering og søking Kort versjon

Kapittel 9: Sortering og søking Kort versjon Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til

Detaljer

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

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; } Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

INF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1.

INF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1. INF1010 Eksamenstips Løsningsforslag prøveeksamen del 1. michael@ifi.uio.no INF1010 FSE 25. mai 2011 (uke 21) 2 Les igjennom hele oppgaven. Les igjennom hele oppgaven en gang til, marker i teksten ting

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen

Detaljer

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak LISTER Vanligste datastruktur Mange implementasjonsmåter (objektkjeder, array...) Operasjoner på listen definerer forskjellige typer lister (LIFO, FIFO,...) På norsk bruker vi vanligvis ordet «liste» for

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program

Detaljer

Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:

Konstruktører. Bruk av konstruktører når vi opererer med enkle klasser er ganske ukomplisert. Når vi skriver. skjer følgende: Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i

Detaljer

INF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004

INF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004 INF1010 Arv Marit Nybakken marnybak@ifi.uio.no 2. februar 2004 Motivasjon Arv bruker vi så vi skal slippe å skrive oss i hjel. Når vi programmerer, prøver vi gjerne å modellere en del av verden ved hjelp

Detaljer

Kapittel 7: Mer om arv

Kapittel 7: Mer om arv Kapittel 7: Mer om arv Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,

Detaljer

INF1010 siste begreper før oblig 2

INF1010 siste begreper før oblig 2 INF1010 siste begreper før oblig 2 Sammenligning. Mer lenkede lister. Forskjellige listeimplementasjoner. Binære trær. Bittelitt om grensesnitt (interface). Dagens forelesning Flere temaer på grunn av

Detaljer

Kapittel 8: Sortering og søking

Kapittel 8: Sortering og søking Kapittel 8: Sortering og søking Forelesningsnotater for: Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk, 2003. ISBN 82-02-23274-0 http://www.ii.uib.no/~khalid/jfps/

Detaljer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.3

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.3 Delkapittel 3.3 En lenket liste side 1 av 12 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.3 3.3 En lenket liste 3.3.1 Lenket liste med noder En lenket liste (eller en pekerkjede som det også

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitskaplege fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 9. juni 2011 Tid for eksamen: 09.00 15.00 Oppgåvesettet er på 5 sider. Vedlegg:

Detaljer

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

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006 Husk å melde deg på prøveeksamen i INF1000! INF1000: Forelesning 11 Ole Christian Lingjærde 7.november 2006 Frist påmelding: 16. november Arrangementet er torsdag 23. november kl 1420 og omfatter: Oppgaven

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet LØSNINGSFORSLAG Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet

Detaljer

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

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

Detaljer

INF1010 - Objektorientert programmering. Datastrukturer i Java Klasser med parametre

INF1010 - Objektorientert programmering. Datastrukturer i Java Klasser med parametre INF1010 - Objektorientert programmering Datastrukturer i Java Klasser med parametre INF1010 våren 2015 Stein Gjessing (steing) Stein Michael Storleer (michael) 36 hjelpelærere Andreas Færøvig Olsen (andrefol)

Detaljer

Gjennomgang av eksamen H99

Gjennomgang av eksamen H99 Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares

Detaljer

Lenkelister og beholdere av lenkelister

Lenkelister og beholdere av lenkelister Lenkelister og beholdere av lenkelister Et notat for INF1010 Stein Michael Storleer 4. februar 2013 Lister er den vanligste datastrukturen. Vi treffer på den overalt. Når vi har mange objekter i et program,

Detaljer

OPPGAVE 5b og 8b Java Kode

OPPGAVE 5b og 8b Java Kode OPPGAVE 5b og 8b Java Kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene

Detaljer

Løsningsforslag til eksamen i INF1000 våren 2006

Løsningsforslag til eksamen i INF1000 våren 2006 Løsningsforslag til eksamen i INF1000 våren 2006 Oppgave 1 a) -1 false 7 b) 30 c) Verdien til j er: 4Verdien til k er: 3Verdien til n er: 7 d) Andre if-test er true Tredje if-test er true e) k = 4 k =

Detaljer

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER .9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00

Detaljer

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00 Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I FAG

Detaljer

Kapittel 9: Sortering og søking Kort versjon

Kapittel 9: Sortering og søking Kort versjon Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

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

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012 INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver

Detaljer

INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 15. januar 2014 2. time Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder med parametre En metode uten parameter:

Detaljer

INF Innleveringsoppgave 6

INF Innleveringsoppgave 6 INF1010 - Innleveringsoppgave 6 Frist: Onsdag 16. mars, 10:00 Maks 6 poeng Om obligatorisk oppgave 4, 6 og 7 i INF1010, våren 2016: "Leger og resepter" Du skal jobbe med en problemstilling omkring leger

Detaljer

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også

Detaljer

Forelesning inf Java 4

Forelesning inf Java 4 Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette

Detaljer

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet Eksamen i emnet INF101/INF101-F - Programmering 2 Fredag 10. juni 2011, kl. 09-14 Bokmål Tillatte hjelpemidler: alle skrevne og trykte.

Detaljer

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

INF 1000 Prøveeksamen. 23. november Ole Christian og Arne. Oppgave 1 (10 poeng) Er disse programsetningene lovlige i Java? Oppgave 2 (10 poeng) Oppgave 1 (1 poeng) Er disse programsetningene lovlige i Java? INF 1 Prøveeksamen 3. november 6 Ole Christian og Arne x int i, j = i+1; x int j=3, while(j-->) i = j; x int[]int[] int = new int[8]int[9];

Detaljer

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

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 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I

Detaljer

Seminaroppgaver IN1010, uke 2

Seminaroppgaver IN1010, uke 2 Seminaroppgaver IN1010, uke 2 1.a: Skriv en klasse HeiVerden.java. Klassen skal inneholde en main- metode (se på notatet fra tidligere). Inne i main -metoden skal programmet først la brukeren oppgi en

Detaljer

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen 1 Algoritmer og datastrukturer Eksamen 29.11.2011 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator som ikke kommuniserer. Faglærer: Ulf Uttersrud Råd og tips: Bruk ikke

Detaljer

INF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser

INF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser INF1010, 21. januar 2016 Klasser med parametre = Parametriserte klasser = Generiske klasser Stein Gjessing Inst. for Informatikk Universitetet i Oslo Først litt repetisjon fra i går class LagBiler { public

Detaljer

Inf1010 oppgavesamling

Inf1010 oppgavesamling Table of ontents Inf1010 oppgavesamling.. 1 Subklasser... 1 Grensesnitt.. 2 Rekursjon... 3 Datastrukturer... 3 GUI. 4 Sortering... 6 Tråder... 6 Inf1010 oppgavesamling Subklasser Klassehirarki for dyr

Detaljer

INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon

INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon INF1000 Forelesning 9 Hashmap Eksempel: Flyreservasjon HashMap Ofte har vi flere, mange objekter av en bestemt klasse - eks. : elever på en skole biler som har passert bomringen i Oslo telefonsamtaler

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet PRØVEEKSAMEN i INF1000 23. november 2004 kl. 14.00 17.00 Dine svar skal skrives på disse oppgavearkene, og ikke på separate ark. Dette gjelder

Detaljer

Algoritmer og datastrukturer Eksamen 22. februar 2011

Algoritmer og datastrukturer Eksamen 22. februar 2011 Side 1 av 5 Algoritmer og datastrukturer Eksamen 22. februar 2011 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator som ikke kommuniserer. Faglærer: Ulf Uttersrud Råd og

Detaljer

HashMap. INF1000 Forelesning 9. Ulike versjoner i Java 1.4 (gammel) og Java 1.5/1.6 av HashMap. Objekter lagres med en søkenøkkel

HashMap. INF1000 Forelesning 9. Ulike versjoner i Java 1.4 (gammel) og Java 1.5/1.6 av HashMap. Objekter lagres med en søkenøkkel HashMap INF1000 Forelesning 9 Hashmap Eksempel: Flyreservasjon Ofte har vi flere, mange objekter av en bestemt klasse - eks. : elever på en skole biler som har passert bomringen i Oslo telefonsamtaler

Detaljer

Abstrakte metoder og klasser. Abstrakte metoder og klasser. Uke 9 INF1010, 27. februar 2007, Abstrakte klasser og grensesnitt (interface)

Abstrakte metoder og klasser. Abstrakte metoder og klasser. Uke 9 INF1010, 27. februar 2007, Abstrakte klasser og grensesnitt (interface) Abstrakte metoder og klasser Uke 9 INF1010, 27. februar 2007, Abstrakte klasser og grensesnitt (interface) Stein Gjessing Inst for Informatikk Univ. i Oslo n Abstrakte metoder n abstract før deklarasjonen

Detaljer

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 15.

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 15. Forkurs INF1010 Dag 3 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 15. januar 2016 Forkurs INF1010 - dag 3 Strenger 2 Forkurs INF1010 - dag

Detaljer

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

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7 Gjennomgang prøveeksamen 2014 oppgave 1, 2, 4, 5, 7 1a: Hva er verdien til tall etter at følgende kode er utført: 17 int tall = 5; tall = (tall*3) + 2; 5 15 17 1b: Anta at følgende programsetninger utføres.

Detaljer

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer

Sortering med Comparable og Comparator

Sortering med Comparable og Comparator Sortering med Comparable og Comparator Denne siden forklarer hvordan grensesnittene java.util.comparable og java.util.comparator bidrar til sortering i Java. Comparable og Comparator er grensesnitt som

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO FASIT UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen :

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveksamen i INF1010 Objektorientert programmering Dato: 26. mai 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 6 sider.

Detaljer

Kapittel 9: Sortering og søking Kort versjon

Kapittel 9: Sortering og søking Kort versjon Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

Dagens tema INF1010 INF1010 INF1010 INF1010

Dagens tema INF1010 INF1010 INF1010 INF1010 I eksemplene om lister og binære trær har vi hittil hatt pekerne inne i objektene i strukturen. ( Innbakt struktur ).Eksempel: Dagens tema Implementasjon av strukturer (lister, binære trær) class { ; ;

Detaljer