INF våren januar, uke 3 - Oversikt og forutsetninger Java datastruktur-tegninger

Størrelse: px
Begynne med side:

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

Transkript

1 INF våre 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 systemutviklig Subklasser og virtuelle metoder Typig, omtypig, Abstrakte klasser og iterface (gresesitt) Rekursjo og Rekursive metoder og Biærsøkig, quick-sort, lister, trær Grafiske brukergreseitt Swig og hedelseshådterig Utak Kastig, mottakig, kotroll av feilsituasjoer Parallellprogrammerig Tråder og sykroiserig Lærigsmål INF1010: Kue lage større, komplekse og effektive programmer 1 2 Java - repetisjo Variabler, tilordiger og uttrykk Ethvert Java-program består av e eller flere klassedeklarasjoer. E av klassee må ha e metode som heter mai; dette vil være startpuktet for programmet. Pogrammet har (este) alltid også adre klasser ute mai-metode. Klasseav begyer med Stor bokstav. Iholdet i e klasse eller e metode skal alltid være omsluttet av krøllpareteser, og programsetiger avsluttes alltid med semikolo. Programsetiger utføres e og e i de rekkefølge de ligger i programmet. Tekster agis mellom doble aførselsteg. Java-filer kompileres med kommadoe javac Kompilerte Java-filer kjøres med kommadoe java Java-programmer bør ieholde kommetarer (Java-doc). 3 Å deklarere e variabel vil si å sette av lagerplass i maskies mie og å gi dee lagerplasse et av. Nav på variabler begyer med lite bokstav og ka ieholde siffer, me ikke begye med siffer. Variabelav ka ikke være det samme som oe av de reserverte ordee i Java. Vi gir variabler verdi ved e tilordigssetig, der likhetsteget betyr settes lik. 1. Reg ut høyreside it atall = 3; atall = atall + 4; 2. Sett resultatet i i variabele på vestreside atall Variabelavet vil på vestre side av et likhetsteg bety lagerplasse som skal gis y verdi. På høyre side av likhetsteget betyr variabelavet de verdie som er lagret på plasse med dette avet. 3 4

2 Variabler, tilordiger og uttrykk, forts. Bruk av tastatur og skjerm E tilordig består av tre deler: e variabel som får verdi, et likhetsteg, og et uttrykk ( et regestykke) som resulterer i e verdi. E operator er e operasjo som har sitt eget symbol, slik som for eksempel de fire regeartee og ikremet/dekremet-operatoree. E metode er e operasjo som har sitt eget av, slik som for eksempel Math.sqrt (...). Vi ka lage uttrykk ved å bruke operatorer og metoder på verdier eller variabler. Slike uttrykk blir evaluert, eller reget ut, år programmet kjører. Tre typer uttrykk som forekommer særlig ofte i programmer er umeriske uttrykk, logiske uttrykk og streg-uttrykk. Ekel, uformatert utskrift ka gjøres med metodee System.out.prit(...) og System.out.pritl(...). Formatert og uformatert utskrift ka gjøres med pakke easyio. Hvert program som skal bruke dee pakke må først importere pakke og deklarere e variabel (for eksempel skjerm) som blir forbidelse til skjerme. Deretter ka vi gi utskriftskommadoer av forme skjerm.out(...) og skjerm.outl(...). Vi ka skrive ut uformatert, iefor e oppgitt bredde, med stadard justerig iefor e oppgitt bredde, eller med selvvalgt justerig (vestrejustert, setrert eller høyrejustert). Ilesig fra tastaturet ka gjøres med verktøykasse easyio. Hvert program som skal bruke dee pakke må først importere pakke og deklarere e variabel (for eksempel tast) som blir forbidelse til tastaturet. Deretter ka vi gi ilesigskommadoer av forme tast.iit(), tast.idouble(), osv. 5 6 Variable, forgreiger og løkker Løkker forts. Alle programsetiger i et Java-program ligger ii e programblokk, avgreset av krøllparateser. E variabel er ku defiert iefor de programblokke de er deklarert, og ku fra det puktet i blokke hvor deklarasjoe gjøres og fram til slutte av programblokke. E variabel i e metode oppstår år metode starter, og dør år metode er ferdig utført. Defiisjosområdet til e variabel kalles skopet til variabele. Programblokker ka estes i i hveradre. Dersom e programblokk ligger iefor skopet til e variabel, vil variabele være defiert også ii dee programblokke. Forgreiger brukes år det er øskelig å foreta et valg mellom ulike programistruksjoer, basert på e logisk betigelse. De to viktigste kostruksjoee i Java for å lage forgreiger er if-else (ikludert spesialtilfellet ute else-gre) og switch. class A { static it k = 1; public static void mai ( Strig[] args) { it i=4; if (i >0) { i = 2; it k = i+5; System.out.pritl ("i:" + i + ", k:" + k); // slutt mai // slutt klasse A > java A i:2, k:7 7 Løkker brukes år det er øskelig å få utført et sett av programistruksjoer gjetatte gager. I Java er det tre former for løkker: class B{ public static void mai ( Strig[] args) { it i, a=0, b=0,c=0; >java B i = 1; while (i < 4) { a++; a:3, i++; b:4, c:3 i = 1; do {b++; i++; while (i < 4); for (i = 1; i < 4; i++){ c++; System.out.pritl("a:"+a+", b:"+b+", c:"+c); >java B a:3, b:3, c:3 De to første løkkekostruksjoee brukes gjere i situasjoer hvor e ikke øsker å ta stillig til øyaktig hvor mage gjeomløp løkke skal gjøre, me hvor e i stedet skal løpe gjeom løkke helt til e gitt betigelse blir usa. E for-løkke brukes gjere i situasjoer hvor atall løkkegjeomløp kotrolleres av e tellevariabel som oppdateres i slutte av hvert løkkegjeomløp. 8

3 Løkker forts. Løp gjeom alle objekter i HashMap Java 1.5 HashMap <Strig, Perso> h = ew HashMap <Strig,Perso> ( ); Arrayer E edimesjoal array består av e arraypeker og et arrayobjekt it[] primtall = ew it [10];... For å løpe gjeom alle objektee i h, lager vi e oppramsig og låser samtidig det vi skal hete til e bestemt klasse (Perso): Iterator <Perso> it = h.values ( ). iterator ( ) ; Deretter ka vi se på hvert ekelt objekt i HashMap'e ved å gå i løkke: while ( it.hasnext ( ) ) { Perso p = it.ext ( ); System.out.pritl( Nav: + p.hetnav ( ) ); Todimesjoal array: it[] [] soltimer = ew it [12][31]; Vi ka også i 1.5 ytte de ye for-løkka som automatisk lager e iterator for ( Perso p: h.values ( ) ) { System.out.pritl( Nav: + p.hetnav ( ) ); 9 10 Array Metoder E array består av e array-peker til et array-objekt som ieholder mage variable (elemeter) av samme type. Hver ekelt lagrigsplass i e array idetifiseres ved avet på arraye og e ideks (et heltall fra 0 og oppover), for eksempel primtall[4]. E todimesjoal array består av e array-peker til et array-objekt med arraypekere til hver sitt array-objekt med elemeter av de datatype som er i arraye (SE FIGUREN FORRIGE SIDE!) Startverdiee til elemetee i e array er avhegig av type: arrayer av tall (it, double, log, float, byte, short) får startverdie 0, boolske arrayer får startverdie false, char-arrayer får verdie \u0000, peker-arrayer får verdie ull. Etter iitialiserig er arrayes legde fast; de ka ikke edres. Legde av e array a er gitt ved a.legth. E array-peker ka settes til å peke på e y eller e ae array (av riktig type) Vi ka få tak i alle elemetee i e array ved å bruke e for-løkke der legde på arraye bestemmer atall gjeomløp. To- og flerdimesjoale arrayer deklareres ved å agi atall dimesjoer som atall par av hakepareteser, som i it[][] soltimer = ew it[12][31]; Gjeomløp av flerdimesjoale arrayer ka gjøres ved å legge forløkker ii Metoder ieholder deklarasjoer av lokale variabler og programsetiger. Metoder deklareres ie i e klasse. Metoder ka ha parametere de er som lokale variabler og får som startverdi verdie til uttrykk (regestykket) som brukes i kallet på metode. Metoder returerer verdier ved at selve kallet ka brukes i uttrykk (regestykker). Skal det ikke retureres e verdi, settes void fora metodeavet ved deklarasjo, ellers settes type (it, double, boolea,...peker til e klasse) som retureres. Verdie av det uttrykket som settes mellom retur og semikoloet, er de verdie som retureres (eks. retur j;). Statiske metoder (static) tilhører klasse eks. Math.sqrt(..), B.mai( ). mai(strig[]args) er e metode som startes av Java år programmet starter. Parametere Strig[]args er e array av tekster som er det ma har skrevet på kommadolije etter programavet (class- file) atskilt med blake. hveradre

4 /** Test av ulike typer av metoder */ class Perso { private Strig av; >java PersoMai Nytt av: Kari Trestakk Askeladdse /** kostruktor for Perso*/ Perso(Strig av) { this.av = av; /** leser verdie av av*/ Strig getnav() { retur av; /** setter y verdi i av */ void setnav (Strig ) { av = ; // ed class Perso /** Lager et Persoobjekt og kaller metodee*/ public class PersoMai { public static void mai ( Strig[] args) { Perso p = ew Perso("Kari Trestakk"); p.setnav(p.getnav() + " Askeladdse"); System.out.pritl("Nytt av: " + p.getnav()); >javadoc package PersoMai.java Tekster E tekststreg består av ige, ett eller flere teg omgitt av doble aførselsteg. Tekststreger ka pekes på av stregvariabler. Strig s = God dag ; E tekststreg ka ikke foradres, me ma ka lage ye tekststreger. Tekster ka skjøtes samme med adre tekster og tall ved bruk av operatore +. Java skiller mellom verdie av et tall og e tekst som ieholder tegee til tallet. For å skifte mellom typee må ma beytte e av metodee for koverterig. For å sammelike tekster brukes equals()-metode. compareto()-metode gir alfabetisk sammelikig. Se for øvrig Javadokumetasjoe for fullstedig oversikt over alle metodee for tekstmaipulasjo. s God dag Objekter, klasser og pekere For hver type av objekter (meesker, hus, bakkoti) vi øsker å represetere, deklarerer vi e klasse i programmet. I e klasse tar vi med bare det som iteresserer problemstillige vår. Det gjør vi med de variabler, pekere og metoder vi deklarerer der (ikke mer e ødvedig). E klasse (med utak for klassemetoder og -variabler) er bare e oppskrift på hvilke variabler og metoder vi skal ha i objektee vi lager av dee type. Et objekt lager vi ved å sette ew fora et klasseav og e paretes etter klasseavet (ew Koto(); ). Når vi lager et objekt, kaller vi samtidig kostruktør-metode til klasse for å iitiere data, mm. E peker er e ekel variabel som ieholder adresse til et objekt. Peker-vatriable deklareres med klasseavet først, deretter avet på pekere: Koto k2; 15 ull eller eller 16

5 Objekter, klasser og pekere forts (1) Når vi sier ew på e klasse, retureres adresse (pekere) til objektet. Dee fager vi opp med e tilordig til e peker-variabel k2 = ew Koto (); Objekter som ikke har mist e peker som peker på seg, blir fjeret år klasses kostruktør-metode er ferdig med kode si. Adgag til iholdet (variabler, pekere og metoder) i et objekt får vi ved å gå via e peker til objektet, etterfulgt av puktum og så avet på e variabel eller metode ie i objektet k2.setti (100); De variable vi deklarerer i e klasse, kalles objektvariabler, og det blir laget ett eksemplar av disse for hvert av objektee vi lager med ew. E metode i et objekt kalles e objektmetode og er kyttet til objektet, og er ikke tilgjegelig ute via e peker til objektet eller fra e objektmetode i samme objekt. Objekter, klasser og pekere forts (2). Objekter av samme klasse har objektmetoder med samme av, og vi teger og teker oss at metodee fies i alle objekter som lages. I virkelighete er ikke kode duplisert i alle objektee, me fies bare ett sted, felles for alle objekter av samme klasse. Setter vi static fora deklarasjoe av e variabel eller metode, får vi e klassevariabel eller klassemetode. Det vil da være laget bare ett eksemplar av hver slik klassevariabel kyttet til selve klasseavet. Vi teger disse é gag i klasse-datastrukture som vi teger som e stiplet boks. I e klassemetode ka ma ikke bruke objektmetoder eller objektvariabler i ege klasse (med midre ma har e peker til et slikt objekt og bruker dee pekere) Filbehadlig Å skrive til fil liker svært mye på å skrive til skjerm. Filreferase opprettes slik: Out ut = ew Out("filav"); Resultatet er e y fil med det oppgitte filavet. Etter at skrivig til fil er ferdig, må file lukkes. Metode for dette heter close. ut.close(); Lesig fra fil er parallelt med lesig fra tastatur, og ma har de samme metodee til rådighet.. Referase til file lages med I ifil = ew I("filav"); Ilesig fra fil gjøres ormalt i e løkke hvor ma ete tester for slutt på file, for slutt på tekst-deler, eller for teg avhegig av hvorda ma leser fra file; lije-vis ( readlie() og edoffile() ), ord/item (iit(), iword(), idouble() ) tegvis (ichar() og edoffile()). UML-diagrammer (Uified Modelig Laguage) Objektdiagram brukes i læreboka (vi skal stort sett bruke java datastrukturtegiger istede): Klassediagram: 19 Mer este forelesig Fra problem til program UML + MVC (Model View - Cotrol) 20

6 Repetisjo Hva skjer ie i e datamaski år et Javaprogram blir utført? Masse elektroer farer rudt Umulig å skjøe Vi skal tege det som foregår ie i datamaskie år Javaprogrammet vårt blir utført Vi kaller det Java datastrukturtegiger Alle som programmerer må ha fullstedig oversikt over det som foregår ie i maskie Når jeg programmerer ser jeg for meg det som skal foregå ie i maskie og skriver Java-istruksjoer for å få det til. Noe gager teker jeg meg hvorda Java datastrukture ser ut, adre gager teger jeg de (mer eller midre fullstedig) på papir 21 Program for salg av biler. public class BilSalg{ static salgsobjekt; public static void mai (Strig [ ] args) { salgsobjekt = ew BilSalg ( ); BilSalg ( ) { it atallsteib; Bil steist = ew Bil ( ); Bil oleso = ew Bil ( ) ; steist.foresporsel ( ); oleso.foresporsel ( ); steist.foresporsel ( ); atallsteib = steist.fiatforesp(); System.out.pritl("Atall forespørsler på + Steis Toyota er " + steist.fiatforsp()); System.out.pritl("Atall forespørsler totalt + er å " + Bil.fiTotal( ) ); //slutt kostruktør // slutt BilSalg class Bil { static private it total = 0; private it atforesporsler = 0; static it fitotal ( ) { retur total; void foresporsel ( ) { atforesporsler ++; total ++; it fiatforesp ( ) { retur atforesporsler; //slutt Bil 22 Vi skiller mellom Klasse-deklarasjoe i programtekste. De er et møster som brukes både år klassedatastrukture lages (i det programmet starter opp) og seere år ye objekter lages. Klasse-datastrukture, dvs. de (stiplete) datastrukture som lages i det programmet starte Objekt-datastrukture (også bare kalt objekter eller klasse-objekter) som lages hver gag vi sier ew. Utrolig Viktig! 23 BilSalg klassedatastruktur Nav: salgsobjekt mai Type: BilSalg salgsobjekt = ew BilSalg ( ); BilSalg( ) steist Type: Bil Type: Bil it atallsteib; Bil steist = ew Bil ( ); BilSalg-objekt oleso atallsteib it Bil oleso = ew Bil ( ) ; steist.foresporsel ( ); oleso.foresporsel ( ); steist.foresporsel ( ); atallsteib = steist.fiatforesp(); System.out.pritl("Atall forespørsler på + Steis Toyota er " + steit.fiatforsp()); System.out.pritl("Atall forespørsler totalt + er å " + Bil.fiTotal( ) ); Bil-objekt av: atforesporsler 012 type: it void foresporsel( ) atforesporsler ++; total ++; it fiatforesp( ) retur (atforesporsler); Atall forespørsler på Steis Toyota er 2 Atall forespørsler totalt er å 3 Bil klassedatastruktur Nav: total Type: it fitotal retur total; Bil-objekt av: atforesporsler 01 type: it void foresporsel( ) atforesporsler ++; total ++; it fiatforesp( ) retur (atforesporsler); 24

7 Mer tegig (ikke så godt eksempel) class Tull { it tall = 11; static it statt = 12; Java datastruktur-tegig ved kjørig av BrukTull Java datastrukturtegiger m/parametre File heter BrukTull.java Oversettes og kjøres med >javac BrukTull.java >java BrukTull Oversettere lager to filer: BrukTull.class og Tull.class Java fiklig public void skrivt (it tl) { it sum; sum = tall + statt + BrukTull.tall1 + tl; System.out.pritl("Summe er " + sum); // slutt Tull public class BrukTull { static it tall1 = 16; static it tall2 = 10; it ubrukt = 15; public static void mai(strig [ ] args) { Tull testpeker; tall1 = 13; testpeker = ew Tull( ); testpeker.skrivt(tall2+4); // slutt BrukTull 25 klassedatastruktur BrukTull mai av: args av: tall type: it av: tall2 10 type: it type: Strig[] av: testpeker type: Tull tall1 = 13; testpeker = ew Tull( ); testpeker.skrivt(tall2+4); av: statt 12 type: it Objekt av klasse Tull skrivt(it tl) Summe er 50 av: tall 11 type: it av: sum 50 type: it av: tl 14 type: it Klassedatastruktur Tull sum = tall + statt + BrukTull.tall1 + tl; System.out.pritl( Summe er + sum); 26

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

Velkommen til. INF våren 2016

Velkommen til. INF våren 2016 Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010

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

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

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

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

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

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

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

Detaljer

UNIVERSITETET I OSLO

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

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

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

INF1000 (Uke 5) Mer om løkker, arrayer og metoder INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

INF våren 2017

INF våren 2017 INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer

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

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første

Detaljer

Objekter. Uke 8 - Objekter, klasser og pekere. Verden består av mange objekter, noen ganske like, noen ulike. Klasser og objekter i verden

Objekter. Uke 8 - Objekter, klasser og pekere. Verden består av mange objekter, noen ganske like, noen ulike. Klasser og objekter i verden Objekter Uke 8 - Objekter, klasser og pekere Hvorfor deler vi verden inn i enheter når vi snakker om den? En blomst, fjorten trær, ti mennesker, en bil, en vei, mange murstein, en bankkonti,... Svar :

Detaljer

EKSAMEN Løsningsforslag

EKSAMEN Løsningsforslag ..4 EKSAMEN Løsigsforslag Emekode: ITF75 Dato: 6. desember Eme: Matematikk for IT Eksamestid: kl 9. til kl. Hjelpemidler: To A4-ark med valgfritt ihold på begge sider. Kalkulator er ikke tillatt. Faglærer:

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

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

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

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

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

UNIVERSITETET I OSLO

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

Detaljer

Duo HOME Duo OFFICE. Programmerings manual NO 65.044.30-1

Duo HOME Duo OFFICE. Programmerings manual NO 65.044.30-1 Duo HOME Duo OFFICE Programmerigs maual NO 65.044.30-1 INNHOLD Tekisk data Side 2 Systemiformasjo, brukere Side 3-4 Legge til og slette brukere Side 5-7 Edrig av sikkerhetsivå Side 8 Programmere: Nødkode

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

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

Uke 12 IN3030 v2019. Eric Jul PSE-gruppa Ifi, UiO

Uke 12 IN3030 v2019. Eric Jul PSE-gruppa Ifi, UiO Uke 12 IN3030 v2019 Eric Jul PSE-gruppa Ifi, UiO Oblig 5 Kovekse Ihylliga Itroduksjo De kovekse ihylliga til pukter Oblig 5 Hva er det, defiisjo Hvorda ser de ut Hva brukes de til? Hvorda fier vi de? 24

Detaljer

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: [email protected] Utdanning: Dataingeniør, 2000 Cand.Scient,

Detaljer

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning

Detaljer

Blokker og metoder INF1000 (Uke 6) Metoder

Blokker og metoder INF1000 (Uke 6) Metoder Blokker og metoder INF1000 (Uke 6) Metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Are Magnus Bruaset og Arild Waaler En blokk er en samling instruksjoner omgitt av krøllparenteser:

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

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

Eksempel: Body Mass Index (BMI) Forelesning inf1000 - Java 3. Ferdig program (første del) Ferdig program (siste del) Forelesning inf1000 - Java 3 Eksempel: Body Mass Index (BMI) Tema: Mer om forgreninger Løkker Arrayer Litt om easyio Ole Christian Lingjærde, 5. september 2012 Ole Chr. Lingjærde Institutt for informatikk,

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

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

De neste ukene. INF1000 Uke 12. Prøveeksamen. Nå - Prøveeksamen. Forelesning om IT og samfunn neste uke (13/11). De neste ukene Forelesning om IT og samfunn neste uke (13/11). INF1000 Uke 12 Gjennomgang av prøveeksamen fra høsten 2004 Ukeoppgave: Blir en gammel eksamensoppgave Uken etter er det prøveeksamen. Den

Detaljer

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator Litt mer om uttrykk: ++ og -- INF : Forelesning Løkker og arrayer Mye og viktig stoff. Du MÅ løse oppgaver selv for å lære!. september 6 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for

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

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

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

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Eme: Diskret matematikk Gruppe(r): Emekode: FO 019A Dato: 12.12.200 Faglig veileder: Ulf Uttersrud Eksamestid: 9-14 Eksamesoppgave består av: Atall sider

Detaljer

INF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt

INF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt Oversikt INF1000 Uke 4 Forgreininger, løkker og arrayer Litt repetisjon Blokker og forgreininger if-setninger if-else-setninger switch-setninger Løkker while-løkker do-while-løkker for-løkker Arrayer Opprette,

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

Eksempeloppgave 2014. REA3028 Matematikk S2 Eksempel på eksamen våren 2015 etter ny ordning. Ny eksamensordning. Del 1: 3 timer (uten hjelpemidler)

Eksempeloppgave 2014. REA3028 Matematikk S2 Eksempel på eksamen våren 2015 etter ny ordning. Ny eksamensordning. Del 1: 3 timer (uten hjelpemidler) Eksempeloppgave 2014 REA3028 Matematikk S2 Eksempel på eksame våre 2015 etter y ordig Ny eksamesordig Del 1: 3 timer (ute hjelpemidler) Del 2: 2 timer (med hjelpemidler) Mistekrav til digitale verktøy

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

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

Påliteligheten til en stikkprøve

Påliteligheten til en stikkprøve Pålitelighete til e stikkprøve Om origiale... 1 Beskrivelse... 2 Oppgaver... 4 Løsigsforslag... 4 Didaktisk bakgru... 5 Om origiale "Zuverlässigkeit eier Stichprobe" på http://www.mathe-olie.at/galerie/wstat2/stichprobe/dee

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

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

INF1000 : Forelesning 1 (del 2)

INF1000 : Forelesning 1 (del 2) INF1000 : Forelesning 1 (del 2) Java Variable og tilordninger Heltall, desimaltall og sannhetsverdier Utskrift på skjerm Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet

Detaljer

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer, bruker og telefonnummer Med

Detaljer

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon Oversikt INF1000 Uke 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning Uttrykk

Detaljer

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

INF1000 (Uke 4) Mer om forgreninger, While-løkker INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen I dag Repetisjon easyio Enkle if-setninger

Detaljer

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

Innlesning fra tastatur med easyio. INF1000 høst 2010. Vi må først skrive i toppen av programmet: import easyio.*; Innlesning fra tastatur med easyio INF1000 høst 2010 Forelesning 2: Innlesning fra terminal Boolean-variable if-setninger Løkker Litt mer om heltall: divisjon og modulo Vi må først skrive i toppen av programmet:

Detaljer

Fagdag 2-3mx 24.09.07

Fagdag 2-3mx 24.09.07 Fagdag 2-3mx 24.09.07 Jeg beklager at jeg ikke har fuet oe ye morsomme spill vi ka studere, til gjegjeld skal dere slippe prøve/test dee gage. Istruks: Vi arbeider som valig med 3 persoer på hver gruppe.

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

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Eme: Diskret matematikk Gruppe(r): Eksamesoppgave består av: Atall sider (ikl forside): 5 Emekode: FO 9A Dato: 69 Atall oppgaver: Fagasvarlig: Ulf Uttersrud

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

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Gaustadbekkdalen, januar 27 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår inne i primærlageret

Detaljer

INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon

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

Detaljer

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

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus

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

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

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

Detaljer