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

Størrelse: px
Begynne med side:

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

Transkript

1 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 også lyttere til de to knappene. Det gjøres med anonyme klasser. En anonym klasse er en klasse som ikke har noe navn. Det vil si at objektet lages samtidig med at klassen deklareres. Konstruksjonen ser slik ut: new AbstractAction () { lesfil (); Her lages det en klasse som er en subklasse av den abstrakte klassen AbstractAction. AbstractAction-klassen har en abstrakt metode som må overskrives, nemlig metoden actionperfomed. Det gjøres i den anonyme klassen hvor metoden inneholder et kall videre til lesfil-metoden. Objektet lages (som vanlig) ved å bruke nøkkelorden new. Hele konstruksjonen over sendes som en parameter til addactionlistener-metoden til den aktuelle knappen. Dermed blir koden slik: lesfilknapp. addactionlistener ( new AbstractAction () { lesfil (); ); Programmet er listet i avsnitt A.1. Oppgave 2 Ta utgangspunkt i ko- Jobbing videre med frihåndstegne-programmet den MuseDemo.java og legg til følgende forbedringer: 1

2 Generell organisasjon av programmet Før jeg viser hvordan de enkelte delene i oppgaven er løst, vil jeg vise hvordan programmet er organisert. Programmet består av to klasser: Tegner og Tegnelerret (listet i avsnitt A.2 og A.3). Figur 1 viser programmet under kjøring. Figur 1: Skjermdump av Tegneprogrammet Klassen Tegnelerret er en subklasse av JPanel. Tegnelerrettet er i stand til å oppfatte hendelsen at en knapp på musa holdes nede, og at musa beveges. Når dette skjer, lagres posisjonen til musa i to arrayer, xpos og ypos, og en teller som angir antall punkter økes. Deretter kalles det på metoden repaint. Dette metodekallet er et signal til systemet om at det skal tegne opp komponenten på nytt. Systemet kaller da på metoden paintcomponent og sender med et objekt av typen Graphics, som representerer flaten det skal tegnes på. I Tegnlerret-klassen er paintcomponent-metoden overskrevet. Her går jeg igjennom alle koordinatene, og tegner strek mellom disse. Klassen Tegner er en subklasse av JFrame, og utgjør kontrolldelen av programmet. Tegnlerretklassen legges inn i CENTER-delen av JFramen. Knapper legges i en rekke til venstre (de samles i et eget JPanel som legges i WEST). Hver knapp har en egen anonym lytteklasse. Når brukeren for eksempel trykker på knappen for å slette tegningen (knappen merket clr ), kalles det på en metode (clear) på tegnelerretet. Figur 2 på neste side viser et forenklet klassediagram. Det opprinnelige programmet inneholder en bug hvis man tegner lenge nok, blir arrayene som holder på koordinatene fulle. Jeg har derfor lagt inn en metode som dobler størrelsen på arrayene når disse blir fulle. 2

3 JFrame JPanel Registrerer brukerens valg (via knapper) og oppdaterer attributtene i tegnlerretet. Eksempel på attributter som oppdateres er farge og tykkelse. Tegner Tegnelerret JButton Knapp Ansvar for tegningen. Registrerer musas bevegelser over komponenten, oppdaterer koordinatene og (via kall på repaint) tegner streker mellom koordinatene. Figur 2: Forenklet klassediagram for tegneprogrammet 3

4 a) Gjør det mulig å tegne flere uavhengigige streker (ikke bare en lang strek) Hint: du bør oppdage når noen slipper museknappen (du må implementere nok et grensesnitt) og da sette inn 0 i x- og y-arrayen for å signalisere slutt på et linjesegnent og begynnelse på neste. Samtidig i utttegningen må du aldri tegne hverken til eller fra verdien 0. Får du ikke til dette - se filen: Muse2Demo.java Løsningsforslag To endringer må til. I tillegg til å lytte på musebevegelser, må vi lytte på knappene på musa. Grensesnittet vi må implementere for dette heter MouseListener, og inneholder fem metoder. I midlertid er vi kun interessert i en av metodene, nemlig den som kalles når en museknapp slippes opp. I stedet for å implementere grensesnittet (og alle fem metodene) velger jeg derfor å lage lytteklassen som en subklasse av den abstrakte klassen MouseAdapter. MouseAdapter er en hjelpeklasse som gir en tom definisjon av alle metodene i MouseListenergrensesnittet. For eksempel er metoden mouseclicked implementert slik: public void mouseclicked ( MouseEvent e) { Fordelen med dette, er at jeg da kun trenger å skrive over den metoden jeg er interessert i, nemlig mousereleased: public void mousereleased ( MouseEvent e) { xpos [ ant ] = Integer. MIN_VALUE ; ypos [ ant ] = Integer. MIN_VALUE ; ant ++; Legg merke til at jeg bruker verdien Integer.MIN_VALUE som signal på at jeg ikke skal tegne en strek. I tegnemetoden sjekker jeg nå om det skal tegnes en strek mellom et punkt og forrige, ved ganske enkelt å teste mot verdien over i for-løkka som løper gjennom alle punktene: for ( int i = 1; i < ant ; i ++) { if ( xpos [i] > Integer. MIN_VALUE ) { g. drawline ( xpos [i - 1], ypos [i - 1], xpos [i], ypos [i ]); else { i ++; Legg merke til at hvis jeg ikke skal bruke punktet (dvs. at if-testen ikke slår til) økes verdien på i med to før neste iterasjon; én i else-grenen, og én som en del av forløkka. Effekten er at punktet hoppes over ved tegning. b) Legg farge på linjene. Hint: Innfør nok en array som hele tiden holder rede på hvilken fage et linjesegnemt har (se hvordag du setter farge i class Graphics i java-dok en). Du må selvsagt ogå innføre noen trykksnapper slik at brukeren kan velge farge ved f.eks å trykke på Rødknappen. 4

5 Løsningsforslag Jeg oppretter en array til som holder fargen for et gitt punkt. Metoden for å sette farge det skal tegnes med heter setcolor. For-løkka som gjør tegningen blir dermed slik: for ( int i = 1; i < ant ; i ++) { if ( xpos [i] > Integer. MIN_VALUE ) { g. setcolor ( farge[i ]); g. drawline ( xpos [i - 1], ypos [i - 1], xpos [i], ypos [i ]); else { i ++; c) Som b) men nå valg av tynnere eller tykkere linje.. Løsningsforslag Innfører en array til, som skal holde orden på tykkelsen til en gitt strek. En global variabel tykkelse økes eller minskes avhengig av hvilken knapp brukeren trykker. For å tegne en tykkere strek, bruker jeg metoden setstroke, som finnes i graphics-objektet. Dvs. - det finnes i et objekt av typen Graphics2D, som er en subklasse av Graphics. Objektet som blir sendt til paintcomponent-metoden har en metode som returnerer et nytt graphics-objekt (metoden create). Dette objektet kan omtypes ( castes ) til et Graphics2D objekt. I tillegg flytter jeg tegningen til en egen metode. De to metodene (paintcomponent og tegn blir slik: public void paintcomponent ( Graphics g) { super. paintcomponent (g ); Graphics2D g2d = ( Graphics2D ) g. create (); for ( int i =1; i< ant ; i ++) { if ( xpos [i] > Integer. MIN_VALUE ) { g2d. setcolor ( farge [i ]); tegn (g2d, i ); else { i ++; g2d. dispose (); void tegn ( Graphics2D g, int i) { float tykkelse = tykk [ i] + 1; // minste mulige tykkelse på en // strek er 1. g. setstroke ( new BasicStroke ( tykkelse )); // setter tykkelsen int x1 = xpos [i -1], x2 = xpos [i], y1 = ypos [i -1], y2 = ypos [i]; g. drawline (x1, y1, x2, y2 ); 5

6 d) Viskelær. Ved å trykke på en knapp som du legger inn, skal brukeren kunne skru av og på viskelærfunksjonen. Når den er på, skal alle punkter som er inenfor en bestemt radius (eks 10 pkt) fra musa, settes = 0. Hele tida mens du visker, skal effekten framvises på skjermen. (Bruk selvsagt Pytagoras til å finne avstanden mellom musas nåværende posisjon og alle punktene) Løsningsforslag Her velger jeg en litt annen fremgangsmåte en den som er antydet i oppgaven. Jeg innfører en bolsk variabel visk, som settes til true når brukeren velger viskelær. I tillegg øker jeg tykkelsen for punktet til 16, og setter fargen til å være den samme som bakgrunsfargen. e) Lagring og innlesning fra en fil på en tegning (bruk f.eks en dialog til å be om filnavmet). Løsningsforslag En dialog (inputdialog) lar brukeren skrive inn filnavn. Deretter skrives/leses antall punkter, og for hvert punkt, en linje med x-posisjonen, en linje med y- posisjonen, en linje med fargen og en linje med tykkelsen. For lesing/skriving bruker jeg klassene InExp og OutExp, som er superklasser til hhv. In- og Outklassene. Dette gjøres fordi jeg ønsker å kunne fange opp eventuelle feil som kan oppstå. Et eksempel på en slik feil er at brukeren ved lesing fra fil oppgir en fil som ikke finnes. Hvis det skjer, kastes et såkalt unntak (eng: Exception), som jeg kan fange opp. Unntak er behandlet i kapittel 19 i Rett på Java. A Programlistinger A.1 Editor.java import javax. swing.*; import java. awt.*; import java. awt. event.*; import easyio.*; import java.io.*; class Editor extends JFrame { JPanel filvindu ; JLabel filtekstlabel ; JTextField filnavnfelt ; JButton lesfilknapp ; JTextArea tekstvindu ; JButton lagrefilknapp ; String filnavn ; Editor () { initcomponents (); 6

7 layoutcomponents (); setdefaultcloseoperation( JFrame. EXIT_ ON_ CLOSE ); pack (); setvisible ( true ); void initcomponents () { filvindu = new JPanel (); // default flowlayout filtekstlabel = new JLabel (" Filnavn :"); filnavnfelt = new JTextField ( 20); filtekstlabel. setlabelfor ( filnavnfelt ); lesfilknapp = new JButton (" Les fil "); lesfilknapp. addactionlistener ( new AbstractAction () { lesfil (); ); filvindu. add ( filtekstlabel ); filvindu. add ( filnavnfelt ); filvindu. add ( lesfilknapp ); tekstvindu = new JTextArea (40, 60); tekstvindu. seteditable ( true ); tekstvindu. setlinewrap ( true ); tekstvindu. setwrapstyleword ( true ); lagrefilknapp = new JButton (" Lagre fil "); lagrefilknapp. addactionlistener ( new AbstractAction () { skrivfil (); ); void layoutcomponents () { Container lerret = getcontentpane (); lerret. add ( filvindu, BorderLayout. NORTH ); JScrollPane sc = new JScrollPane ( tekstvindu ); lerret. add (sc, BorderLayout. CENTER ); lerret. add ( lagrefilknapp, BorderLayout. SOUTH ); void skrivfil () { OutExp out = null ; String tmpfilnavn = filnavnfelt. gettext (); if ( tmpfilnavn. equals ( filnavn )) { int fortsett = JOptionPane. showconfirmdialog (this, " Gammel fil blir overskrevet \ nfortsett?", 7

8 " Skriv til fil ", JOptionPane. YES_ NO_ OPTION ); if ( fortsett == JOptionPane. NO_ OPTION ) { return ; filnavn = tmpfilnavn ; try { out = new OutExp ( filnavn ); out. outln( tekstvindu. gettext ()); catch ( IOException ioe ) { JOptionPane. showmessagedialog ( this, " Uventet feil ved skriving til fil " ); finally { if ( out!= null ) { out. close (); JOptionPane. showmessagedialog ( this, " Fil lagret." ); void lesfil () { filnavn = filnavnfelt. gettext (); InExp in = null ; try { in = new InExp ( filnavn ); tekstvindu. settext (""); while (! in. endoffile ()) { tekstvindu. append (in. inline () + "\n"); catch ( FileNotFoundException fne ) { JOptionPane. showmessagedialog (this, " Fant ikke filen" ); catch ( IOException ioe ) { JOptionPane. showmessagedialog ( this, " Uventet feil ved lesing fra fil." ); public static void main ( String [] args ) { new Editor (); A.2 Tegner.java import javax. swing.*; 8

9 import java. awt.*; import java. awt. event.*; import easyio.*; import java.io.*; class Tegner extends JFrame { Tegnelerret lerret ; Tegner () { super (" Tegneprogram "); lerret = new Tegnelerret (); getcontentpane (). add ( lerret, BorderLayout. CENTER ); JButton clr = new JButton (" clr " ); clr. addactionlistener ( new AbstractAction () { lerret. clear (); ); JButton rød = new JButton (" rød " ); rød. addactionlistener ( new AbstractAction () { lerret. setcolor ( Color. red ); ); JButton grønn = new JButton (" grønn "); grønn. addactionlistener ( new AbstractAction () { lerret. setcolor ( Color. green ); ); JButton sort = new JButton (" sort " ); sort. addactionlistener ( new AbstractAction () { lerret. setcolor ( Color. black ); ); JButton tykk = new JButton (" tykkere "); tykk. addactionlistener ( new AbstractAction () { lerret. tykkere (); ); JButton tynn = new JButton (" tynn " ); tynn. addactionlistener ( new AbstractAction () { lerret. tynnere (); ); JButton visk = new JButton (" viskelær "); 9

10 visk. addactionlistener ( new AbstractAction () { lerret. visk (); ); JButton tilfil = new JButton (" lagre "); tilfil. addactionlistener ( new AbstractAction () { tilfil (); ); JButton frafil = new JButton (" åpne "); frafil. addactionlistener ( new AbstractAction () { frafil (); ); JPanel knapper = new JPanel ( new GridLayout (0, 1)); knapper. add ( clr ); knapper. add ( visk ); knapper. add ( sort ); knapper. add ( rød ); knapper. add ( grønn ); knapper. add ( tykk ); knapper. add ( tynn ); knapper. add ( tilfil ); knapper. add ( frafil ); getcontentpane (). add ( knapper, BorderLayout. WEST ); pack (); setlocation ( 200, 200); setdefaultcloseoperation( JFrame. DISPOSE_ ON_ CLOSE ); setvisible ( true ); void tilfil () { int ant = lerret. getant (); int [] x = lerret. getxpos (); int [] y = lerret. getypos (); Color [] c = lerret. getcolor (); int [] t = lerret. gettykkelse (); String filnavn = JOptionPane. showinputdialog ( this, " filnavn : " ); OutExp fil = null ; try { fil = new OutExp ( filnavn ); 10

11 fil. outln( ant ); for ( int i = 0; i < ant ; i ++) { fil. outln(x[i ]); fil. outln(y[i ]); fil. outln(c[i]. getrgb ()); fil. outln(t[i ]); catch ( FileNotFoundException fn) { JOptionPane. showmessagedialog ( this, " Fant ikke filen "); catch ( IOException e) { JOptionPane. showmessagedialog ( this, " Feil ved skriving til fil "); finally { if ( fil!= null ) { fil. close (); public void frafil () { String filnavn = JOptionPane. showinputdialog ( this, " filnavn : " ); InExp fil = null ; try { fil = new InExp ( filnavn ); int ant = fil. inint (); int [] x = new int [ ant ]; int [] y = new int [ ant ]; Color [] c = new Color [ ant ]; int [] t = new int [ ant ]; for ( int i = 0; i < ant ; i ++) { x[i] = fil. inint (); y[i] = fil. inint (); c[i] = new Color ( fil. inint ()); t[i] = fil. inint (); lerret. setant ( ant ); lerret. setxpos (x); lerret. setypos (y); lerret. setcolor (c); lerret. settykkelse (t); lerret. repaint (); catch ( FileNotFoundException fn) { JOptionPane. showmessagedialog ( this, " Fant ikke filen "); catch ( IOException e) { JOptionPane. showmessagedialog ( this, " Feil ved skriving til fil "); 11

12 public static void main ( String [] args ) { new Tegner (); A.3 Tegnelerret.java import java. awt.*; import java. awt. event.*; import javax. swing.*; class Tegnelerret extends JPanel { final int xdim = 300, ydim =300; // Default størrelse på lerret int size = 1024; int [] xpos, ypos ; int ant = 0; Color [] farge ; int [] tykk ; Color color = Color. black ; int tykkelse = 0; int gmltykkelse = 0; boolean visk = false; Tegnelerret () { super ( true ); // DubbelBufferet, gjør tegningen mer effektiv. doinit (); dolayout (xdim, ydim ); * Indre lytteklasse, fanger opp to hendelser : 1) Musa " dras ", og * at knappen slippes. class Lytter extends MouseAdapter implements MouseMotionListener { // MouseAdapter public void mousereleased ( MouseEvent e) { if ( ant == xpos. length ) { doublesize (); xpos [ ant ] = Integer. MIN_VALUE ; ypos [ ant ] = Integer. MIN_VALUE ; tykk [ ant ] = tykkelse ; farge [ ant ] = color ; ant ++; 12

13 // MouseMotionListener public void mousedragged ( MouseEvent e) { if ( ant == xpos. length ) { doublesize (); xpos [ ant ]= e. getx (); ypos [ ant ]= e. gety (); farge [ ant ] = color ; tykk [ ant ] = tykkelse ; ant ++; repaint (); // MouseMotionListener ( bryr meg ikke om denne hendelsen ) public void mousemoved ( MouseEvent e) {; /* * Initierer arrayene void doinit () { xpos = new int [ size ]; ypos = new int [ size ]; farge = new Color[ size ]; tykk = new int [ size ]; Lytter l = new Lytter (); // indre klasse. addmousemotionlistener( l); addmouselistener ( l ); * Setter størrelsen på lerretet void dolayout ( int xdim, int ydim ) { setpreferredsize ( new Dimension ( xdim, ydim )); * Sletter tegninen void clear () { ant = 0; repaint (); * Setter fargen som det skal tegnes med void setcolor ( Color c) { if ( visk ) { 13

14 tykkelse = gmltykkelse ; visk = false; color = c; * Øker tykkelsen på streken void tykkere () { tykkelse ++; * Minsker tykkelsen på streken void tynnere () { if ( tykkelse > 0) tykkelse --; * Setter tykkelsen opp, og setter fargen til den samme som * bakgrunnsfargen. Resultatet er at det blir et viskelær. void visk () { visk = true ; color = getbackground (); gmltykkelse = tykkelse ; tykkelse = 16; * Tegner opp strekene mellom koordinatene. Blir kalt av systemet * når det er behov for å tegne komponenten på nytt. Det skjer * enten når systemet finner ut at komponenten trenger å tegnes * opp ( for eksmpel etter at vinduet har blitt flyttet ), eller * etter at metoden repaint har blitt kalt. public void paintcomponent ( Graphics g) { super. paintcomponent ( g); Graphics2D g2d = ( Graphics2D ) g. create (); // Henter ut et // Graphics2D - objekt, // som inneholder // litt fler // metoder enn det // " trauste " // Graphics - objektet // ( bl.a. metoden // for å sette // tykkelsen på // streken. for ( int i =1; i< ant ; i ++) { if ( xpos [i] > Integer. MIN_VALUE ) { g2d. setcolor ( farge [i ]); 14

15 tegn (g2d, i); else { i ++; g2d. dispose (); // Dokumentasjonen anbefaler at man kaller // denne metoden til slutt for å frigjøre // resurser. * Metoden som tegner strek mellom to punkter. void tegn ( Graphics2D g, int i) { float tykkelse = tykk [ i] + 1; // minste mulige tykkelse på en // strek er 1. g. setstroke ( new BasicStroke ( tykkelse )); // setter tykkelsen int x1 = xpos [i -1], x2 = xpos [i], y1 = ypos [i -1], y2 = ypos [i ]; g. drawline (x1, y1, x2, y2 ); * Returnerer antall punkter int getant () { return ant ; * Setter antall punkter void setant ( int ant ) { this. ant = ant ; * Returnerer alle x- koordinatene int [] getxpos () { return xpos ; * Setter alle x- koordinatene void setxpos ( int [] x) { xpos = x; * Returnerer alle y- koordinatene 15

16 int [] getypos () { return ypos ; * Setter alle y- koordinatene void setypos ( int [] y) { ypos = y; * Returnerer alle farger som brukes for hvert punkt Color [] getcolor () { return farge ; * Setter alle farger som skal brukes for hvert punkt void setcolor ( Color [] c) { farge = c; * Returnerer tykkelsen for hvert punkt int [] gettykkelse () { return tykk ; * Setter tykkelsen for hvert punkt void settykkelse ( int [] t) { tykk = t; * Hjelpemetode som dobler størrelsen på arrayene void doublesize () { int nsize = 2 * xpos. length ; int [] nx = new int [ nsize ]; int [] ny = new int [ nsize ]; Color [] nf = new Color [ nsize ]; int [] nt = new int [ nsize ]; System. arraycopy ( xpos, 0, nx, 0, xpos. length ); System. arraycopy ( ypos, 0, ny, 0, ypos. length ); System. arraycopy ( farge, 0, nf, 0, farge. length ); System. arraycopy ( tykk, 0, nt, 0, tykk. length ); 16

17 xpos = nx ; ypos = ny ; farge = nf ; tykk = nt ; size = nsize ; 17

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

INF 1010, vår 2005 Løsningsforslag uke 11 INF 1010, vår 2005 uke 11 Anders Brunland 11. april 2005 Oppgave 1 Oppgave 1 i kapittel 19, Rett på Java Er følgende metoder lovlige? Hovorfor/hvorfor ikke? a) void koknverter ( int mnd ) { konverterdato

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

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

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

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

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

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 våren 2017 Onsdag 25. januar. Litt om unntak i Java

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java INF1010 våren 2017 Onsdag 25. januar Litt om unntak i Java Stein Gjessing Nytt tema: Feilhåndtering (IO: Innlesing/Utskrift) n En metode som kan komme til å gjøre en IO-feil på fil må enten behandle denne

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

INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først)

INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først) INF1010 våren 2019 Onsdag 30. januar Mer om unntak i Java (med litt repetisjon av I/O først) Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type:

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

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

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

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

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

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

Post-it spørsmål fra timen (Arv og subklasser)

Post-it spørsmål fra timen (Arv og subklasser) Post-it spørsmål fra timen 30.01 (Arv og subklasser) Tegning Spørsmål: Skjønte ikke tegningene Hater tegningene. Lær meg å tegne. Mvh frustrert elev. Spørsmål: Datastruktur-tegning, og hvor mye detaljer

Detaljer

Eksamen. Objektorientert Programmering IGR 1372

Eksamen. Objektorientert Programmering IGR 1372 + JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV

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

INF1010 våren 2018 tirsdag 23. januar

INF1010 våren 2018 tirsdag 23. januar INF1010 våren 2018 tirsdag 23. januar I/O og litt om bruk av unntak i Java Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type: Scanner boolean

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

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

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

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

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

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

INF1010. Grafisk brukergrensesni. med Swing og awt del 2

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

Detaljer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne I EKSAMENSOPPGA VE Side av 8 AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: PROGRAMMERING Grupper: laa, 1AB, lac, lia Eksamensoppgaven av: Tillatte hjelpemidler: best~r Antall sider (Inkl forsiden):

Detaljer

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

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

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

GUI - del 2. Stein Gjessing Inst for Informatikk Univ. i Oslo

GUI - del 2. Stein Gjessing Inst for Informatikk Univ. i Oslo Inf 1010-2009 GUI - del 2 Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering g Tidligere Hvordan få laget et vindu på skjermen Hvordan legge ulike komponenter

Detaljer

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye. ~KSAMENSOPPGA VE Les gjennom hele oppgavesettet før du begynner A besvare deloppgavene.. Hold deg til de identifikator-navnene som er brukt i oppgaveteksten, dog med unntak av metodenes parametemavn som

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

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

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

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

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

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs Forkurs INF1010 Dag 3 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Eivind Storm Aarnæs (eivinsaa@math.uio.no) Institutt for Informatikk, 14. januar 2015 Forkurs INF1010 - dag 3 Strenger Fil-I/O Unntakshåndtering

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

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

Løsningsforslag Test 2

Løsningsforslag Test 2 Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.

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

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

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

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien

Detaljer

INF1000 : Forelesning 4

INF1000 : Forelesning 4 INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet

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

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

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4 Repetisjon: nesting av løkker Kort repetisjon av doble (nestede) løkker Mer om D-arrayer Introduksjon til D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk

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

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

22.02.2009. Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java Spørsmål fra forrige forelesning INF1000 Forelesning 7 Operator-presedens i Java? Hvordan virker metodene inword()/inint()/etc. i In-klassen i easyio når vi skriver inn flere verdier på tastaturet? Litt

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

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

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

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

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være

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

Graphics. Grafikk. Praktisk sett: Koordinatsystemet. kodeeksempel

Graphics. Grafikk. Praktisk sett: Koordinatsystemet. kodeeksempel Grafikk Grafikk er den framstillingen vi gir objekter på en todimensjonal flate. Det er en regnemessig tung operasjon å regne ut hvordan man skal framstille to og tre dimensjonale objekt på en todimensjonal

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO PRØVEEKSAMEN INF1 - H6 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1 Grunnkurs i objektorientert programmering Dato: Torsdag 3. november 6 Tid for prøveeksamen

Detaljer

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

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster 3 emner i dag! INF1000 Uke 5 Litt om objekter, pekere og null Filer og easyio Litt mer om tekster Litt om objekter, filer med easyio, tekst 1 2 Objekter og pekere Vi lager pekere og objekter når vi bruker

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

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

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

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

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

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

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 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00

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

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

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

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

UNIVERSITETET I OSLO

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

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur 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

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

GUI («Graphical User Interface») del 2

GUI («Graphical User Interface») del 2 GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Et spill basert på klikkbare ruter Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN

Detaljer

Inf1010 Våren Feilsituasjoner og unntak i Java. Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Inf1010 Våren Feilsituasjoner og unntak i Java. Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Inf1010 Våren 2009 Feilsituasjoner og unntak i Java Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Oversikt Hva er en feil (er det ikke mulig å unngå feil?) Hva skjer når et program feiler

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 14.desember 2007 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasser: LO347D Web-applikasjoner med Java EE Nettstudenter

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Lørdag 5. juni 2004 Tid for eksamen : 09.00 15.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler : INF1010

Detaljer

IN Notat om I/O i Java

IN Notat om I/O i Java IN1010 - Notat om I/O i Java Mathias J.P. Stang, Tuva Kristine Thoresen, Ingrid Grønlie Guren 17. januar 2018 Dette notatet handler om I/O (input/output) i Java, og tar for seg innlesning fra terminal,

Detaljer

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

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 4 1 Tre måter å lese fra terminal Først:

Detaljer

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

Forelesningsquiz. Forelesning inf1000 - Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min. Forelesning inf1000 - Java 5 Forelesningsquiz Tema: En liten quiz (se utdelt ark) Filbehandling Tekster Ole Christian Lingjærde, 19. september 2012 Sett dere to (eller tre) sammen og besvar de fire spørsmålene

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

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.

Detaljer

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal

Detaljer

Hittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste

Hittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste Datafiler og serialisering Tekstfiler Scanner klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc191d.php

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

"behrozm" Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009

behrozm Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009 Rekursiv programmering BTeksempel Datastruktur I klassen Persontre (rotperson==) Rekursjon Noen oppgaver/problemer er rekursive «av natur» Eksempel på en rekursiv definisjon Fakultetsfunksjonen

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

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

Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Stein Gjessing, Institutt for informatikk, Universitetet i Oslo INF1010 Våren 2015 Feilsituasjoner og unntak i Java (Engelsk: Exception) Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Jeg prøvde å bestille billett med Air France:

Detaljer

Leksjon 7. Filer og unntak

Leksjon 7. Filer og unntak 6108 Programmering i Java Leksjon 7 Filer og unntak Del2: 7.2 og 7.4 Roy M. Istad 2015 Fil: Permanent lagring av data PrintWriter(filnavn) throws Exception usjekkede/sjekkede unntak? skriver.println(data-i-tekstlinje)

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Mandag 6. august 2012, kl. 15:00-19:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Rune Sætre. Kontaktperson under

Detaljer