INF1010 våren mai 2005 Et større eksempel: kabal (solitaire)

Størrelse: px
Begynne med side:

Download "INF1010 våren mai 2005 Et større eksempel: kabal (solitaire)"

Transkript

1 Det ferdige spillet INF1010 våre mai 2005 Et større eksempel: kabal (solitaire) Stei Michael Storleer Istitutt for iformatikk Dette er et sett lysark for e forelesig. Noe sider er ufullstedige og vil ku være yttig som grulag for selvstudium påført studetes merkader fra forelesige. Særlig gjelder dette e del eksempler og figurer. 2 Oversikt over forelesige Klassediagram UML klassediagram MVC/MUK-oppdelige Desig av gresesittet Basis-modelle iitialiserig av spillet Selve spillet Temaer som dekkes: l utsy kotroll (MVC) Subklasser GUI + Litt lister og iterface Dekkes ikke: Rekursjo Med utgagspukt i Timothy Budd: Uderstadig objectorieted programmig with Java, updated editio. Addiso- Wesley, Solitaire 1 Cotrol SolitaireCotrol 1 Solitaire Buke 0..* Kort Hovedprogrammet Buke Kort 4

2 MVC-samspillet Klasse Kort Cotrol Defierer de ulike kort-fargee som kostater: KLØVER, RUTER, HJERTER, SPAR Private variable: private it farge; Brukeriput l edret Be om data private it verdi; private boolea sylig = false; // Billedside opp? Kostruktør: Cotrol public Kort(it farge, it verdi) Ekle aksess-metoder: Passede metodekall l edret Be om data public it getfarge() public it getverdi() public boolea ersylig() Metodee public void su() sur et kort ved å sette sylig =! sylig 5 public boolea svart() gir true hvis farge er kløver/spar 6 Klasse Kort Cotrol Kort vs Kort Defierer e del kostater: fial static it KORTBREDDE = 50; fial static it KORTHØYDE = 70; Hvorfor to så (i hvert fall tilsyelatede) like klasser? De ulike kort-fargee: BAKSIDE, KLØVER, RUTER, HJERTER, SPAR Private variable: private it farge; private Strig verdi; Kostruktør: public Kort(it farge, Strig verdi) Ekle aksess-metoder: public it getfarge() public Strig getverdi() Metode tegkort(graphics g, it x, it y) for å vise frem ett ekelt kort på skjerme. 7 8

3 Solitaire exteds Jframe (BorderLayout) WEST: Jpael pp1 (FlowLayout) GUI-desig Buke exteds JPael Jbutto ewgame Cotrol NORTH: Jpael p1 (FlowLayout) CENTER: Jpael p2 (BorderLayout) EAST: Jpael pp2 (FlowLayout) SOUTH: Jpael p3 (GridLayout(1,7)) 9 Klasse Buke Cotrol Subklasse av JPael Private variable: private Kort[ ] kortee; private it id; private boolea vertikal; Kostruktør: public Buke(it id, boolea vertikal) Aksess-metode: public it getid() Set-metode public void setkort(kort[ ] kortee) Metode setsize() som bereger hvor stor plass buke treger på skjerme, avhegig av atall kort som skal vises frem og om disse skal vises horisotalt eller vertikalt. Metode paitcompoet(graphics g) for å vise frem buke på skjerme (kaller tegkort for hvert Kort som skal vises). 10 SolitaireCotrol import java.awt.*; import java.awt.evet.*; import javax.swig.*; Skal lytte etter museklikk på de ulike bukee (implemets MouseListeer) class SolitaireCotrol exteds MouseAdapter implemets ActioListeer { Solitaire model = ew Solitaire(); Solitaire view = ew Solitaire(this); public static void mai(strig[] args) { SolitaireCotrol c = ew SolitaireCotrol(); public void mouseclicked(mouseevet e) { // < Ikke implemetert eda > Cotrol Skal lytte etter trykk på New game Solitaire public class Solitaire exteds JFrame { Buke[] buker; SolitaireCotrol cotrol; Hovedviduet public Solitaire(SolitaireCotrol c) { super("solitaire"); cotrol = c; iit(); // Oppretter viduskompoetee Cotrol public void actioperformed(actioevet e) { // < Ikke implemetert eda > 11 12

4 public void iit() { JButto ewgame = ew JButto("New game"); ewgame.addactiolisteer(cotrol); // Oppretter de ulike grafiske bukee. buker = ew Buke[13]; buker[0] = ew Buke(0, false); // hådbuke buker[1] = ew Buke(1, false); // avkastbuke for (it i = 0; i < 4; i++) { buker[2+i] = ew Buke(2+i, false); // grubuker for (it i = 0; i < 7; i++) { buker[6+i] = ew Buke(6+i, true); // bordbuker // Kotrolle skal lytte etter museklikk på bukee for (it i = 0; i < 13; i++) { buker[i].addmouselisteer(cotrol); // < Orgaiser bukee: på este foil > oppdater(); // Oppdaterer bukees data og størrelse Cotrol Cotaier lerret = getcotetpae(); lerret.setlayout(ew BorderLayout()); Jpael p1 = ew JPael(); // Kapp p1.add(ewgame); JPael pp1 = ew JPael(); // hådbuke og avkastbuke pp1.add(buker[0]); pp1.add(buker[1]); JPael pp2 = ew JPael(); // grubuker for (it i = 0; i < 4; i++) pp2.add(buker[2+i]); JPael p2 = ew JPael(); p2.setlayout(ew BorderLayout()); p2.add(pp1, BorderLayout.WEST); p2.add(pp2, BorderLayout.EAST); JPael p3 = ew JPael(); // bordbuker p3.setlayout(ew GridLayout(1,7)); for (it i = 0; i < 7; i++) p3.add(buker[6+i]); Cotrol setdefaultcloseoperatio(jframe.exit_on_close); setvisible(true); 13 lerret.add(p1, BorderLayout.NORTH); lerret.add(p2, BorderLayout.CENTER); lerret.add(p3, BorderLayout.SOUTH); 14 Cotrol // I Solitaire public void oppdater() { for (it i = 0; i < buker.legth; i++) { // < Het buke-data fra modelle (via kotrolle) > buker[i].setsize(); // Setter grafisk størrelse på buke pack(); repait(); Status: Tomt gresesitt Cotrol // I Buke public void paitcompoet(graphics g) { super.paitcompoet(g); if (kortee == ull) { // Tom buke g.drawrect(0, 0, Kort.KORTBREDDE, Kort.KORTHØYDE); else { // < Kommer seere... > 15 16

5 Avkastbuke De ulike bukee le Cotrol Hådbuke Grubuker Bordbuker Vi ser av vi har ulike typer buker, der fellesevere er at hver buke har e liste med kortee i buke. Side kort alltid legges til og fjeres fra toppe av e buke, er dette e LIFO-kø. De øyaktige reglee for å legge til/fjere kort vil derimot variere med type buke. De ulike bukee ka aturlig modelleres som subklasser av e geerell Buke-klasse: Buke 17 HadBuke AvkastBuke GruBuke BordBuke 18 E geerell Buke Cotrol Klasse HadBuke Cotrol import java.util.*; Selve kortstokke public class Buke { protected LikedList buke = ew LikedList(); public boolea ertom() { retur buke.isempty(); public void leggtil(kort kortet) { buke.addlast(kortet); public Kort fjer() { if (ertom()) retur ull; retur (Kort) buke.removelast(); public boolea kata(kort kortet) { retur false; Brukes som e FIFO-liste, LIFO-kø, med isettig/fjerig sist 19 import java.util.radom; public class HadBuke exteds Buke { public HadBuke() { // Oppretter e buke med 52 kort for (it i = 0; i < 4; i++) { for (it j = 1; j <= 13; j++) { leggtil(ew Kort(i, j)); // Stokker kortee ved hjelp av e radom-geerator. Radom geerator = ew Radom(); for (it i = 0; i < 52; i++) { it j = Math.abs(geerator.extIt() % 52); Object tmp = buke.get(i); buke.set(i, buke.get(j)); buke.set(j, tmp); 20

6 Klasse AvkastBuke Cotrol Klasse GruBuke Cotrol public class AvkastBuke exteds Buke { Metode kata: Ige begresiger på hvilke kort som ka ligge i buke. Metode leggtil: Alle kortee i buke skal være sylige. public boolea kata(kort kortet) { retur true; public void leggtil(kort kortet) { if (!kortet.ersylig()) { kortet.su(); super.leggtil(kortet); 21 public class GruBuke exteds Buke { Metode kata: Må følge farge, i stigede verdi fra essee og oppover. public boolea kata(kort kortet) { if (ertom()) { retur kortet.getverdi() == 1; Kort toppkort = øverste(); retur (kortet.getfarge() == toppkort.getfarge() && kortet.getverdi() == toppkort.getverdi() + 1); 22 Klasse BordBuke Metode kata: Ku koger ka flyttes til e ledig buke. Ellers bygges bukee i avtagede verdi, med altererede rød/svart farge. Cotrol public class BordBuke exteds Buke { public boolea kata(kort kortet) { if (ertom()) { retur kortet.getverdi() == 13; else { Kort toppkort = øverste(); if (!toppkort.ersylig()) retur false; retur (kortet.svart()!= toppkort.svart() && kortet.getverdi() == toppkort.getverdi() - 1); 23 public class Solitaire { private Buke[] buker; public Solitaire() { iit(); public void iit() { buker = ew Buke[13]; buker[0] = ew HadBuke(); buker[1] = ew AvkastBuke(); for (it i = 0; i < 4; i++) buker[2+i] = ew GruBuke(); for (it i = 0; i < 7; i++) buker[6+i] = ew BordBuke(); Cotrol Kort kortet = ull; for (it i = 0; i < 7; i++) { // Legger ut kortee i é buke. Buke i skal ha i+1 kort. for (it j = 0; j <= i; j++) { kortet = buker[0].fjer(); buker[6+i].leggtil(kortet); kortet.su(); // Nederste kort skal være sylig. 24

7 Fra modell til view Hvorda hete data fra modelle i i viewet? 1. Metode oppdater i Solitaire kaller cotrol.getkort(id) for hver ekelt buke (med idetifikator id) i viewet. 2. Kort[ ] getkort(it id) i SolitaireCotrol: 1. Fier idetifikatore til de tilsvarede buke i modelle (her: samme id). 2. Kaller model.getkort(id). 3. Svaret fra modelle er e array med Kort-objekter (de kortee i buke som skal vises frem). Dee oversettes til e array med Kort-objekter, som så retureres til viewet. 3. Metode oppdater i Solitaire tilorder så Kort-arraye til buke ved hjelp av dees set-metode setkort(). 4. Til slutt kaller viewet repait() for å tege viduet på ytt. Solitaire: getkort public Kort[] getkort(it id) { if (buker[id].ertom()) { retur ull; else if (id >= 6) { // bordbuke, returer alle kortee retur buker[id].getkort(); else { // ae type buke, returer bare øverste kort Kort[] returkort = ew Kort[1]; returkort[0] = buker[id].øverste(); retur returkort; Cotrol Buke: getkort Cotrol // I SolitaireCotrol public Kort[] getkort(it id) { Kort[] kortee; Kort[] retur; Cotrol kortee = model.getkort(id); // Het kortee fra modelle if (kortee == ull) retur ull; // Tom buke public Kort øverste() { if (ertom()) { retur ull; retur (Kort) buke.getlast(); public Kort[] getkort() { Kort[] kortee = (Kort[]) buke.toarray(ew Kort[0]); retur kortee; retur = ew Kort[kortee.legth]; it farge, yfarge, verdi; Strig yverdi; for (it i = 0; i < kortee.legth; i++) { Kort k = kortee[i]; farge = k.getfarge(); verdi = k.getverdi(); if (!k.ersylig()) yfarge = Kort.BAKSIDE; else if (farge == Kort.KLØVER) yfarge = Kort.KLØVER; else < Tilsvarede for de adre fargee > if (verdi == 1) yverdi = "A"; else if (verdi == 11) yverdi = "J"; else if (verdi == 12) yverdi = "D"; else if (verdi == 13) yverdi = "K"; else yverdi = Iteger.toStrig(verdi); 27 retur[i] = ew Kort(yfarge, yverdi); retur retur; 28

8 Buke: paitcompoet public void paitcompoet(graphics g) { super.paitcompoet(g); if (kortee == ull) { // Tom buke g.drawrect(0, 0, Kort.KORTBREDDE, Kort.KORTHØYDE); else { for (it i = 0; i < kortee.legth; i++) { if (vertikal) { kortee[i].tegkort(g, 0, i*35*2); else { kortee[i].tegkort(g, i*20, 0); Cotrol 29 // I Kort public void tegkort(graphics g, it x, it y) { g.clearrect(x, y, KORTBREDDE, KORTHØYDE); // Teger bakgrue på kortet if (getfarge()!= BAKSIDE) g.setcolor(color.white); else g.setcolor(color.gray); g.fillrect(x, y, KORTBREDDE, KORTHØYDE); // Teger ramme rudt kortet g.setcolor(color.black); g.drawrect(x, y, KORTBREDDE, KORTHØYDE); // Teger selve kortet switch(getfarge()) { case RUTER: g.setcolor(color.red); g.drawstrig(""+getverdi(), x+3, y+15); g.drawlie(x+25, y+20, x+40, y+40); g.drawlie(x+40, y+40, x+25, y+60); g.drawlie(x+25, y+60, x+10, y+40); g.drawlie(x+10, y+40, x+25, y+20); break; < Tilsvarede for de adre fargee, samt bakside > Cotrol 30 Status: Ferdig iitiert, magler spillig "New game" Cotrol // I SolitaireCotrol public void actioperformed(actioevet e) { if (e.getactiocommad().equals("new game")) { model.iit(); view.oppdater(); 31 32

9 Flyttig av ett kort mellom buker I viewet: 1. Brukere klikker på buke det skal flyttes fra. 2. Det øverste kortet her merkes grafisk med e ae farge. 3. Brukere klikker på buke det skal flyttes til. I kotrolle: 1. Ved første museklikk huskes hvilke buke som ble valgt. 2. Ved adre museklikk gjøres et passede kall på metode boolea flytt(it fra, it til) i modelle. 3. Reture fra modelle agir om flyttige ble utført (modelle edret) eller om det skal gis feilmeldig til brukere. 33 SolitaireCotrol: mouseclicked private it source = -1; public void mouseclicked(mouseevet e) { Buke buke = (Buke) e.getsource(); if (source == -1) { source = buke.id; view.marker(buke.id); else { if (buke.id!= source) flytt(source, buke.id); view.umarker(source); source = -1; public void flytt(it fra, it til) { boolea ok = model.flytt(fra, til); if (ok) view.oppdater(); else view.feilmeldig("ulovlig operasjo"); Cotrol 34 Solitaire: feilmeldig+merkig public void feilmeldig(strig meldig) { JOptioPae.showMessageDialog(this, meldig); public void marker(it id) { buker[id].marker(); repait(); public void umarker(it id) { buker[id].umarker(); repait(); De øyaktige merkige av bukee tas ikke med her. Cotrol Solitaire: flytt boolea flytt(it fra, it til) { Buke frabuke = buker[fra]; Buke tilbuke = buker[til]; // Kort som flyttes fra hådbuke må flyttes til avkastbuke if (frabuke istaceof HadBuke &&! (tilbuke istaceof AvkastBuke)) retur false; // Kort som flyttes til avkastbuke må komme fra hådbuke if (tilbuke istaceof AvkastBuke &&! (frabuke istaceof HadBuke)) retur false; if (frabuke.ertom()) retur false; // Tom buke // Flytt ett kort fra e buke til e ae hvis mulig Kort kortet = frabuke.øverste(); if (tilbuke.kata(kortet)) { frabuke.fjer(); tilbuke.leggtil(kortet); retur true; Cotrol 35 // Fortsetter este foil... 36

10 Solitaire: flytt (forts.) Cotrol Buke: bygg Cotrol < Fortsettelse fra forrige foil... > // Flytt evetuelt et helt bygg mellom to bordbuker if (frabuke istaceof BordBuke && tilbuke istaceof BordBuke) { Kort[] kortee = frabuke.bygg(); for (it i = 0; i < kortee.legth; i++) { // Forsøk å flytte alle kortee i bygget fra og med ideks i if (tilbuke.kata(kortee[i])) { for (it j = i; j < kortee.legth; j++) { frabuke.fjer(); tilbuke.leggtil(kortee[j]); retur true; public fial Kort[] bygg() { it førstesylige = -1; for (it i = 0; i < buke.size(); i++) { Kort kortet = (Kort) buke.get(i); if (kortet.ersylig()) { førstesylige = i; break; List bygg = buke.sublist(førstesylige, buke.size()); Kort[] kortee = (Kort[]) bygg.toarray(ew Kort[0]); retur kortee; retur false; // Ige flytt mulig Ae brukeriput Ved klikk på hådbuke: Ta av ett kort til avkastbuke Ved klikk på bordbuke der det øverste kortet ligger med billedside ed: Su dette kortet slik at billedside ligger opp // I SolitaireCotrol public void mouseclicked(mouseevet e) { Buke buke = (Buke) e.getsource(); it id = buke.getid(); if (source == -1) { if (id == 0) { // hådbuke, flytt kort til avkastbuke flytt(0, 1); else if (id >= 6 && sukort(id)) { // bordbuke, øverste kort skjult // sukort gjør jobbe selv... else { source = id; view.marker(id); else { // Som før... Cotrol 39 public boolea sukort(it id) { boolea svar = model.sukort(id); if (svar) { view.oppdater(); retur svar; 40

INF1010 våren 2006 Uke 19: 9. mai 2006 Et større eksempel: Solitaire (kabal)

INF1010 våren 2006 Uke 19: 9. mai 2006 Et større eksempel: Solitaire (kabal) Det ferdige spillet INF1010 våren 2006 Uke 19: 9. mai 2006 Et større eksempel: Solitaire (kabal) Stein Michael Storleer Institutt for informatikk Dette er kopier av lysark for en forelesning. Sidene er

Detaljer

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det, to typer av vinduer? GUI (Graphical User Interface)-programmering

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det, to typer av vinduer? GUI (Graphical User Interface)-programmering Uke9. mars 2005 rafisk brukergresesitt med Swig og awt Litt Modell Utsy - Kotroll Del I Stei jessig Ist for Iformatikk Uiv. i Oslo UI (raphical User Iterface)-programmerig I dag Hvorda få laget et vidu

Detaljer

Hvordan gjør vi det, to typer av vinduer? Om Grafiske Bruker-Grensesnitt (GUI) GUI (Graphical User Interface)-programmering

Hvordan gjør vi det, to typer av vinduer? Om Grafiske Bruker-Grensesnitt (GUI) GUI (Graphical User Interface)-programmering GUI (Graphical User Iterface)-programmerig Uke 11 13. mars 2007 Grafisk brukergresesitt med Swig og awt Litt Modell Utsy - Kotroll Del I Stei Gjessig Ist for Iformatikk Uiv. i Oslo I dag (så lagt vi kommer)

Detaljer

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf 1010-2007 GUI - del 2

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf 1010-2007 GUI - del 2 GUI (Graphical User Iterface)-programmerig If 1010-2007 GUI - del 2 Stei Gjessig Ist for Iformatikk Uiv. i Oslo Tidligere Hvorda få laget et vidu på skjerme Grafikk (tegig i viduet) Hvorda legge ulike

Detaljer

Tråder i Java Parallelle programmmer og programbiter

Tråder i Java Parallelle programmmer og programbiter Oversikt Tråder i Java Parallelle programmmer og programbiter Stei Gjessig, Ist. for iformatikk, Uiv. i Oslo Hva er parallelle programmer? Hvorfor parallelle programmer? Hvorda ka dette skje i e maski

Detaljer

INF1010 våren 2017 Torsdag 26. januar. Arv og subklasser del 1. Stein Gjessing Institutt for informatikk Universitetet i Oslo

INF1010 våren 2017 Torsdag 26. januar. Arv og subklasser del 1. Stein Gjessing Institutt for informatikk Universitetet i Oslo INF1010 våre 2017 Torsdag 26. jauar Arv og subklasser del 1 Stei Gjessig Istitutt for iformatikk Uiversitetet i Oslo 1 Når du har lært om subklasser ka du programmere med: Første uke: Spesialiserig (og

Detaljer

n / ($$ n 0$$/ $ " 1! <! ')! $ : ; $.+ $.5.+ .!)/!/ ) $.) 6$ 7$, $.5.,.9+- 5.+ 8$ 7$, + - 5.

n / ($$ n 0$$/ $  1! <! ')! $ : ; $.+ $.5.+ .!)/!/ ) $.) 6$ 7$, $.5.,.9+- 5.+ 8$ 7$, + - 5. "# %% & ' ()*,"""). / " %% &%% / ( 0/ " 1 /(232.,..5. 6 7,.5.,. / : ; 5.. )// ).) 8 < ') < 6 6 8 < 8 8 7,.5.,.9 5. 5. 5. 5. 5.. 5..9 /.> DB(?/ ( / (.?/. /?(5@"""6(?( 5@""6 &. A8 6 (."B 3 8 6 ) ("?/& =

Detaljer

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 GUI (Graphical User Interface)- programmering Hvordan lage et vindu på skjermen Hvordan legge ulike komponenter i vinduet (trykknapper, tekseelter, tekst,

Detaljer

INF1010 våren 2005 Uke 3, 25. januar Arv og subklasser del I

INF1010 våren 2005 Uke 3, 25. januar Arv og subklasser del I Emeoversikt subklasser INF1010 våre 2005 Uke 3, 25. jauar Arv og subklasser del I Stei Gjessig Istitutt for iformatikk 1 Geeraliserig - spesialiserig Gjebruk av klasser Ved sammesetig (komposisjo) Ved

Detaljer

IN1010 våren 2018 Tirsdag 13. februar. Interface - Grensesnitt

IN1010 våren 2018 Tirsdag 13. februar. Interface - Grensesnitt IN1010 våre 2018 Tirsdag 13. februar Iterface - Gresesitt Stei Gjessig Dages hovedtema Egelsk: Iterface (også et Java-ord) Norsk: Gresesitt Les otatet Gresesitt i Java av Stei Gjessig To motivasjoer for

Detaljer

INF1010 våren 2017 Torsdag 9. februar. Interface - Grensesnitt

INF1010 våren 2017 Torsdag 9. februar. Interface - Grensesnitt INF1010 våre 2017 Torsdag 9. februar Iterface - Gresesitt og litt om geeriske klasser og geeriske iterface hvis tid Stei Gjessig Dages hovedtema Egelsk: Iterface (også et Java-ord) Norsk: Gresesitt Les

Detaljer

INF våren 2005 Uke 1, 11 jan - Praktisk, oversikt og forutsetninger

INF våren 2005 Uke 1, 11 jan - Praktisk, oversikt og forutsetninger INF1010 - våre 2005 Uke 1, 11 ja - Praktisk, oversikt og forutsetiger Stei Gjessig og Stei Michael Storleer Ist. for iformatikk Om INF1010 Forutsetter INF1000 (eller tilsvarede som Humit1700?) Lærebok

Detaljer

Stabler, Køer og Lister. ADT er

Stabler, Køer og Lister. ADT er Stabler, er og Lister I. STEL OG QUEUE DT I.1 DT I.2 rray implemetasjo I.3 Liket-Liste implemetasjo II. DQUEUE DT III.IMPLEMENTSJON V EN DT MED EN NNEN DT Kap. 3 (kursorisk: 3.1.3, 3.2.3, 3.4; utatt: 3.2.4,

Detaljer

INF3030 Uke 6, våren Eric Jul PSE Inst. for informatikk

INF3030 Uke 6, våren Eric Jul PSE Inst. for informatikk INF3030 Uke 6, våre 2019 Eric Jul PSE Ist. for iformatikk 1 Å dele opp algoritme Kode består e eller flere steg; som oftest i form av e eller flere samliger av løkker (som er ekle, doble, triple..) Vi

Detaljer

INF1010 - våren 2007 16. januar, uke 3 - Oversikt og forutsetninger Java datastruktur-tegninger

INF1010 - våren 2007 16. januar, uke 3 - Oversikt og forutsetninger Java datastruktur-tegninger INF1010 - våre 2007 16. jauar, uke 3 - Oversikt og forutsetiger Java datastruktur-tegiger Stei Gjessig Ist. for iformatikk Nye temaer i INF1010 Fra problem til program Software Egieerig light, fasee i

Detaljer

IN1010 våren 2019 Onsdag 15. mai. Rask repetisjon av subklasser og tråder (pluss µ nytt)

IN1010 våren 2019 Onsdag 15. mai. Rask repetisjon av subklasser og tråder (pluss µ nytt) IN1010 våre 2019 Osdag 15. mai Rask repetisjo av subklasser og tråder (pluss µ ytt) Stei Gjessig Istitutt for iformatikk Uiversitetet i Oslo 1 Iledig Dette er 41 lysark som det ikke er mulig å gå gjeom

Detaljer

import javax.swing.*; import java.awt.*;

import javax.swing.*; import java.awt.*; import javax.swing.*; import java.awt.*; import javax.swing.*; import java.awt.*; Pluss mange Implementasjoner av forskjellige grensesnitt class RammeDemo { public static void main(string[] args) { JFrame

Detaljer

6108 Programmering i Java. Leksjon 8. GUI: Grafisk brukergrensesnitt. Del 2: 8.3 8.4 Roy M. Istad 2015

6108 Programmering i Java. Leksjon 8. GUI: Grafisk brukergrensesnitt. Del 2: 8.3 8.4 Roy M. Istad 2015 6108 Programmering i Java Leksjon 8 GUI: Grafisk brukergrensesnitt Del 2: 8.3 8.4 Roy M. Istad 2015 // Programforklaring // Noen nye import-setninger GUIprogram.java public class GUIprogram + vindu/hendelser

Detaljer

INF2440 Uke 5, våren2018. Eric Jul PSE Inst. for informatikk

INF2440 Uke 5, våren2018. Eric Jul PSE Inst. for informatikk INF2440 Uke 5, våre2018 Eric Jul PSE Ist. for iformatikk 1 Hva så vi på i Uke4 1. Kommetarer om matrise-multiplikasjo 2. Hvorfor vi ikke bruker PRAM modelle for parallelle beregiger som skal gå fort. 3.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering

Detaljer

Grafisk Brukergrensesnitt

Grafisk Brukergrensesnitt Grafisk Brukergrensesnitt Repetisjonskurs Hva må kunnes? JFrame JPanel JComponents Layouts Listeners jframe Representerer et vindu JComponents legges på vinduet Har en tittel og størrelse Komponenter struktureres

Detaljer

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk INF1010 - Våren 2015 Li' repe$sjon om Tråder og GUI Stein Gjessing,, Universitetet i Oslo 1 GUI, tråder og hendelser Op-sys (Win, Linux,..) Ditt Program sin Event Dispatch Thread Hver ting brukeren gjør

Detaljer

INF2440, Uke 3, våren 2018 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Eric Jul PSE, Inst. for informatikk

INF2440, Uke 3, våren 2018 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Eric Jul PSE, Inst. for informatikk INF2440, Uke 3, våre 2018 Regler for parallelle programmer, mer om cache og Radix-algoritme Eric Jul PSE, Ist. for iformatikk 1 Hva har vi sett på i Uke2 I) Tre måter å avslutte tråder vi har startet.

Detaljer

INF3030 Uke 7, våren Eric Jul PSE Inst. for informatikk

INF3030 Uke 7, våren Eric Jul PSE Inst. for informatikk INF3030 Uke 7, våre 2019 Eric Jul PSE Ist. for iformatikk 1 Hva så vi på i uke 6 1. Eratosthees sil 2. Kokker og Kelere 3. Cocurrecy: De første to av tre måter å programmere moitorer i Java eksemplifisert

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

IN1010 våren 2019 Onsdag 6. februar. Arv og subklasser - del 2

IN1010 våren 2019 Onsdag 6. februar. Arv og subklasser - del 2 IN1010 våre 2019 Osdag 6. februar Arv og subklasser - del 2 Stei Gjessig Dages tema Virtuelle metoder som er det samme som Polymorfi Når bruker vi arv / år bruker vi komposisjo Kostruktører i subklasser

Detaljer

LO191D/LC191D Videregående programmering

LO191D/LC191D Videregående programmering LO191D/LC191D Videregående programmering Eksamen mai 2012 Løsningsforslag Oppgave 1 Klassen Destinasjon: // Oppgaven er uklar på hva som skal inn i klassen Destinasjon. // Her følger en minimumsutgave

Detaljer

INF våren 2004 Uke2, 18 jan - Fra problem til program. Utvikling av store datasystemer. 13 UML-diagrammer. Oversikt:

INF våren 2004 Uke2, 18 jan - Fra problem til program. Utvikling av store datasystemer. 13 UML-diagrammer. Oversikt: 13 UML-diagrammer INF1010 - våre 2004 Uke2, 18 ja - Fra problem til program Objektdiagram: Vi kommer til å tege Java datastrukturer istede. Stei Gjessig Ist. for iformatikk Klassediagram: Oversikt: Utviklig

Detaljer

INF1010. Grafisk brukergrensesni. med Swing og awt del 2. INF1010 - - Grafisk brukergrensesni4 II

INF1010. Grafisk brukergrensesni. med Swing og awt del 2. INF1010 - - Grafisk brukergrensesni4 II INF1010 Grafisk brukergrensesni. med Swing og awt del 2 1 GUI (Graphical User Interface)- programmering n n n Enkel behandling av knappetrykk mm. Layout av vinduer Om å lytte på knappetrykk med musa n

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

INF1010 MVC i tekstbaserte programmer

INF1010 MVC i tekstbaserte programmer INF1010 MVC i tekstbaserte programmer Marit Nybakken marnybak@ifi.uio.no 9. februar 2004 Marit har ingen utdanning innen systemutvikling og vet antageligvis ikke hva hun prater om. Hun har dog skumlest

Detaljer

Grafiske brukergrensesnitt med Swing og AWT

Grafiske brukergrensesnitt med Swing og AWT Grafiske brukergrensesnitt med Swing og AWT - 1 av 11 INNHOLD INTRODUKSJON 3 VINDUER, RAMMER OG PANELER. 4 KOMPONENTER OG VINDUSELEMENTER 6 KNAPPER OG KNAPPELYTTERE.. 8 LAYOUT.. 10 APPENDIX. 11 2 av 11

Detaljer

INF1010 Sortering. Marit Nybakken 1. mars 2004

INF1010 Sortering. Marit Nybakken 1. mars 2004 INF1010 Sortering Marit Nybakken marnybak@ifi.uio.no 1. mars 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL Delprøve Kandidatnr: Prøvedato: 2. mars 2005 Varighet: 3 timer (9:00 12:00) Fagnummer: LO196D Fagnavn: Videregående programmering med

Detaljer

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering 4. mars 2008 Grafisk brukergrensesnitt med Swing og awt Litt Modell Utsyn - Kontroll Del I Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering I dag (så langt

Detaljer

4. mars 2008 Grafisk brukergrensesnitt med Swing og awt Litt Modell Utsyn - Kontroll Del I. Stein Gjessing Inst for Informatikk Univ.

4. mars 2008 Grafisk brukergrensesnitt med Swing og awt Litt Modell Utsyn - Kontroll Del I. Stein Gjessing Inst for Informatikk Univ. 4. mars 2008 Grafisk brukergrensesnitt med Swing og awt Litt Modell Utsyn - Kontroll Del I Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering I dag (så langt

Detaljer

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering. del 1. Litt Modell Utsyn - Kontroll

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering. del 1. Litt Modell Utsyn - Kontroll INF1010-3. mars 2009 Grafisk brukergrensesnitt med Swing og awt - del 1 Litt Modell Utsyn - Kontroll Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering I dag

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 4. juni 2015 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 6 sider. Vedlegg:

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

(MVC - Model, View, Control)

(MVC - Model, View, Control) INF1010 - våren 2008 Modell - Utsyn - Kontroll (MVC - Model, View, Control) Stein Gjessing Inst. for informatikk Et bankprogram Vi skal lage et program som håndterer kontoene i en bank. En konto eies av

Detaljer

INF2440 Uke 4, v2018 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model. Eric Jul PSE, Inst.

INF2440 Uke 4, v2018 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model. Eric Jul PSE, Inst. INF2440 Uke 4, v2018 Om å samle parallelle svar, matrisemultiplikasjo og The Java Memory Model Eric Jul PSE, Ist. for iformatikk 1 Hva så vi på i uke 3 1. Presiserig av hva som er pesum 2. Samtidig skrivig

Detaljer

IN3030 Uke 12, v2019. Eric Jul PSE, Inst. for informatikk

IN3030 Uke 12, v2019. Eric Jul PSE, Inst. for informatikk IN3030 Uke 12, v2019 Eric Jul PSE, Ist. for iformatikk 1 Hva skal vi se på i Uke 12 Review Radix sort Oblig 4 Text Program Parallellizig 2 Oblig 4 Radix sort Parallelliser Radix-sorterig med fra 1 5 sifre

Detaljer

INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1

INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1 INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt del 1 1 Hvordan lage et vindu på skjermen 2 Hvordan legge inn enkle elementer i vinduet 3 Hvordan lage et vindu med et sudokuspill 4 Hvordan lage en

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

JPanel. Komponent hieraki. Window/JWindow. Applet/JApplet. JDialog. JFrame

JPanel. Komponent hieraki. Window/JWindow. Applet/JApplet. JDialog. JFrame Komponent hieraki Applet JPanel Component Container JComponent Panel Window JWindow Frame JApplet Dialog Brukes vanligvis som en ekstra container for å få til ønske layout. Legges til som en hvilken som

Detaljer

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 101 - Grunnkurs i objektorientert programmering Eksamensdag : Tirsdag 4. juni 2002 Tid for eksamen : 09.00-15.00 Oppgavesettet

Detaljer

IN1010 våren januar. Objektorientering i Java

IN1010 våren januar. Objektorientering i Java IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som

Detaljer

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag KANDIDATNUMMER: EKSAMEN EMNENAVN: Programutvikling EMNENUMMER: IMT3281 EKSAMENSDATO:05/12-2007 KLASSE: 06HBINDA/06HBINDP TID: 09.00 13.00 EMNEANSVARLIG: Øivind Kolloen ANTALL SIDER UTLEVERT: 7 TILLATTE

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

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

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

INF1000: Forelesning 7

INF1000: Forelesning 7 INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en

Detaljer

INF2440 Uke 6, våren Eric Jul PSE Inst. for informatikk

INF2440 Uke 6, våren Eric Jul PSE Inst. for informatikk INF2440 Uke 6, våre 2018 Eric Jul PSE Ist. for iformatikk 1 Hva så vi på i uke 5 (ku første forelesigstime) 1. Eda bedre Matrise-multipliserig 2. Modell2-kode for sammeligig av kjøretider på (ekle) parallelle

Detaljer

Uke mars 2005 GUI - del 2. GUI (Graphical User Interface)-programmering

Uke mars 2005 GUI - del 2. GUI (Graphical User Interface)-programmering Uke10 29. mars 2005 GUI - del 2 Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering Forrige gang Hvordan få laget et vindu på skjermen Hvordan legge ulike komponenter

Detaljer

Kapittel 10 fra læreboka Grafer

Kapittel 10 fra læreboka Grafer Forelesigsotat i Diskret matematikk torsdag 6. oktober 017 Kapittel 10 fra læreboka Grafer (utdrag) E graf er e samlig pukter (oder) og kater mellom puktee (eg. odes, vertex, edge). E graf kalles rettet

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

Differensligninger Forelesningsnotat i Diskret matematikk Differensligninger

Differensligninger Forelesningsnotat i Diskret matematikk Differensligninger Differesligiger Forelesigsotat i Diskret matematikk 017 Differesligiger I kapittel lærte vi om følger og rekker. Vi studerte både aritmetiske og geometriske følger og rekker. Noe følger og rekker er imidlertid

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

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

Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene. Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene. Hovedformålet med eksamen er å skille ut de som har skjønt litt om programmering fra de som ikke har skjønt noe. For de som

Detaljer

Avsnitt 8.1 i læreboka Differensligninger

Avsnitt 8.1 i læreboka Differensligninger Diskret Matematikk Fredag 6. ovember 015 Avsitt 8.1 i læreboka Differesligiger I kapittel lærte vi om følger og rekker. Vi studerte både aritmetiske og geometriske følger og rekker. Noe følger og rekker

Detaljer

INF1000: Forelesning 7. Konstruktører Static

INF1000: Forelesning 7. Konstruktører Static INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 11. juni 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8

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

Rekursjon. Binærsøk. Hanois tårn.

Rekursjon. Binærsøk. Hanois tårn. Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til

Detaljer

Klasser, objekter, pekere og UML. INF1000 - gruppe 13

Klasser, objekter, pekere og UML. INF1000 - gruppe 13 Klasser, objekter, pekere og UML INF1000 - gruppe 13 Klasse Beskriver ofte ting fra den virkelige verden Veldig ofte et substantiv (Person, Bok, Bil osv.) class Person { String navn; int alder; } class

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

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

En implementasjon av binærtre. Dagens tema. Klassestruktur hovedstruktur abstract class BTnode {}

En implementasjon av binærtre. Dagens tema. Klassestruktur hovedstruktur abstract class BTnode {} En implementasjon av binærtre Dagens tema Eksempel på binærtreimplementasjon Rekursjon: Tårnet i Hanoi Søking Lineær søking Klassestruktur hovedstruktur abstract class { class Person extends { class Binaertre

Detaljer

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

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

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

Kommentarer til oppgaver;

Kommentarer til oppgaver; Kapittel - Algebra Versjo: 11.09.1 - Rettet feil i 0, 1 og 70 og lagt i litt om GeoGebra-bruk Kommetarer til oppgaver; 0, 05, 10, 13, 15, 5, 9, 37, 5,, 5, 59, 1, 70, 7, 78, 80,81 0 a) Trykkfeil i D-koloe

Detaljer

INF1000: noen avsluttende ord

INF1000: noen avsluttende ord Pensum Det som er gjennomgått på forelesningene INF1000: noen avsluttende ord Arne og Fredrik Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige virkninger

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 10. juni 2005 Tid for eksamen: 14.30 17.30 Oppgavesettet er på

Detaljer

Oblig 4Hybelhus litt mer tips enn i oppgaven

Oblig 4Hybelhus litt mer tips enn i oppgaven Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,

Detaljer

LC191D/LO191D Videregående programmering mai 2010

LC191D/LO191D Videregående programmering mai 2010 LC191D/LO191D Videregående programmering mai 2010 Løsningsforslag Oppgave 1 Transporttype er en tekst som er felles for klassene AnnenEgenTransport og Kollektivtransport. Vi legger den derfor i klassen

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

Inf 1010 GUI - del 2

Inf 1010 GUI - del 2 Inf 1010 GUI - del 2 Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 GUI (Graphical User Interface)-programmering Tidligere Hvordan få laget et vindu på skjermen Hvordan legge ulike komponenter

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

Eksamen REA3028 S2, Våren 2010

Eksamen REA3028 S2, Våren 2010 Eksame REA308 S, Våre 010 Del 1 Tid: timer Hjelpemidler: Valige skrivesaker, passer, lijal med cetimetermål og vikelmåler er tillatt. Oppgave 1 (6 poeg) a) Deriver fuksjoee: 1) f x x lx f x x lx x x f

Detaljer

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

INF1000 (Uke 14) Resten av eksamen H03 + del av V05 INF1000 (Uke 14) Resten av eksamen H03 + del av V05 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen Eksamen H03, oppgave 2 2 Oppgave 2.1

Detaljer

INF2440 Effektiv Parallellprogrammering Uke 2 våren tidtaking. Eric Jul PSE Inst. for informatikk

INF2440 Effektiv Parallellprogrammering Uke 2 våren tidtaking. Eric Jul PSE Inst. for informatikk INF2440 Effektiv Parallellprogrammerig Uke 2 våre 2018 - tidtakig Eric Jul PSE Ist. for iformatikk 1 Oppsummerig Uke1 Vi har gjeomgått hvorfor vi får flere-kjere CPUer Tråder er måte som et Javaprogram

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

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

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf 1010-2008 GUI - del 2

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf 1010-2008 GUI - del 2 GUI (Graphical User Interface)-programmering Inf 1010-2008 GUI - del 2 Stein Gjessing Inst for Informatikk Univ. i Oslo Tidligere Hvordan få laget et vindu på skjermen Grafikk (tegning i vinduet) Hvordan

Detaljer

Mer om utvalgsundersøkelser

Mer om utvalgsundersøkelser Mer om utvalgsudersøkelser I uderkapittel 3.6 i læreboka gir vi e kort iførig i takegage ved utvalgsudersøkelser. Vi gir her e grudigere framstillig av temaet. Populasjo og utvalg Ved e utvalgsudersøkelse

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

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det? Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje

Detaljer

Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo

Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo INF1010 - Våren 2012 Tråder del 1 Parallelle programmer og felles data Stein Gjessing,, Universitetet i Oslo 1 2 Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer? Hvordan kan de'e skje

Detaljer

Oppgave 1. (i) Hva er sannsynligheten for at det øverste kortet i bunken er et JA-kort?

Oppgave 1. (i) Hva er sannsynligheten for at det øverste kortet i bunken er et JA-kort? ECON EKSAMEN 8 VÅR TALLSVAR Oppgave Vi har e kortstokk beståede av 6 kort. På av disse står det skrevet JA på forside mes det står NEI på forside av de adre kortee. Hvis ma får se kortet med bakside vedt

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

INF 1010, vår 2005 Løsningsforslag uke 10

INF 1010, vår 2005 Løsningsforslag uke 10 INF 1010, vår 2005 Løsningsforslag uke 10 Anders Brunland 1. april 2005 Oppgave 1 Oppgave 15.4 i i Rett på Java. Løsningsforslag De forskjellige komponentene settes i metoden initcomponents. Her settes

Detaljer

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT Eksame i: ECON130 Statistikk 1 UNIVERSITETET I OSLO ØKONOMISK INSTITUTT Eksamesdag: 6.05.017 Sesur kugøres: 16.06.017 Tid for eksame: kl. 14:30 17:30 Oppgavesettet er på 6 sider Tillatte helpemidler: Alle

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

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage

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

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

Analyseøving 9. Løsningsforslag. TTT4265 Elektronisk systemdesign og -analyse II. Oppgave 1. Signalegenskaper (4p)

Analyseøving 9. Løsningsforslag. TTT4265 Elektronisk systemdesign og -analyse II. Oppgave 1. Signalegenskaper (4p) TTT6 Elektroisk systemdesig og -aalyse II Aalyseøvig 9 Løsigsforslag Oppgave. Sigalegeskaper (p) a) Sigalee er vist i figuree uder:.. x[ ]. x[+]... 7 6 6 7 7 6 6 7.. x[ ]. x[ +]... 7 6 6 7 7 6 6 7.. x[]u[

Detaljer