Unntak og feilsituasjoner i Java (samt litt ekte Java I/O)

Størrelse: px
Begynne med side:

Download "Unntak og feilsituasjoner i Java (samt litt ekte Java I/O)"

Transkript

1 Utak og feilsituasjoer i Java (samt litt ekte Java I/O) Stei Gjessig, Istitutt for iformatikk, Uiversitetet i Oslo Oversikt Hva er e feil (er det ikke mulig å ugå feil?) Hva skjer år et program feiler Mål 1: Å ikke få feilmeldiger fra kjøretidsystemet, me istede la programmet få kotrolle tilbake etter e feilsituasjoe: Der programmet ormalt ville ha avsluttet med e feilmeldig Eks: Divisjo med ull, greier ikke åpe e fil, file fies ikke, kytte kotakt over ettet mislykkes, utefor arraygrese Mål 2: Eklere, mer vedlikeholdbar og mer forstålig kode

2 Feil i programmet hva skjer? import easyio.*; class Feil1 { public static void mai(strig[] args) { I tast = ew I(); it i = 1, j = 1; while ( i >= 0) { System.out.prit("\ Divisjo: 100 delt på: (gi tall):"); i = tast. iit(); j = 100/ i; System.out.pritl("Svaret på 100/" + i + " er:" +j); Array ideks utefor sie greser it [ ] tallvektor; tallvektor = ew it [100]; tallvektor[101] = 17;

3 Dages tema: Utak / feil Mye kode ka feile og feilaktige situasjoer (utak) ka oppstå. De kode som ka feile ka. og som oftest må vi legge følgede rudt kode:... Kode som ka feile...; catch (Exceptio e) {... Gjør oe med feile, prøv å rett opp... Dages tema: Utaksbehadlig <USIKKER KODE> <Hvis det skjer oe galt:> throw ew Utaksklasse( ); Ekleste form for utaksbehadlig. catch (Utaksklasse ut) { < Utaksbehadlig. Dette hoppes over år itet uormalt/galt har hedt > < her fortsetter valigvis programmet både etter ormal utførig og etter behadlig av evetuelle utak > På forhåd har vi deklarert: class Utaksklasse exteds Exceptio {...

4 Fire ye Java ord throw - Starter å kaste et utak throw <e peker til et utaksobjekt> f.eks throw ew Utak(); try - Står fora e blokk som er usikker dvs. der det ka oppstå et utak catch - Står fora e blokk som behadler et utak. Har e peker til et utaksobjekt som parameter throws - Kaster et utak videre Brukes i overskrifte på e metode som ikke selv vil behadle et utak <usikker kode> catch (Utaksklasse u) { <behadle utaket, u peker på et objekt som beskriver utaket Når utak oppstår i e metode A A x = B ( ); catch (Utaksklasse ut) { < Utaksbehadlig. Dette hoppes over år itet uormalt har hedt > < her fortsetter programmet både etter ormal utførig og etter behadlig av evetuelle utak > it B( ) throws Utaksklasse { A kaller B B oppdager e feil: throw ew Utaksklasse ( ) ; Normal retur fra B til A: retur 17; Utaksklasse er e klasse som vi på forhåd har deklarert som e subklasse av klasse Exceptio.

5 Utak - oversikt Brukes til å fage feil - eller uvalige situasjoer Når e feilsituasjo oppstår: Lages det et objekt Dette objektet brukes av feilbehadlige som ete skjer I samme metode (try-catch) eller blir sedt tilbake til kallede metode (throws) Vi må ikke (me ka) behadle feil av type: Error RuTimeExceptio Artimetriske feil Array-grese-feil Behadler vi ikke slike feil, avsluttes programmet av rutime-systemet Grusomme systemfeil vi ikke ka gjøre oe med Feil og feil fru Blom Vi behøver ikke gjøre oe med feil/utak (throws) Vi ka bare sede dem videre til de metode som kalte oss: throws (og helt til kjøresystemet: > java hvis det er mai som kaster utak/feilmeldiger videre). Vi må da etter metodes parameter-paretes me før begyede krøll-paretes skrive: throws UttakType1, UtakType2,... { hvor UttakType1, UtakType2,... er de typer (klasseavee) på de utak som oppstår (eller superklasser av disse, f.eks. Exceptio) og ikke selv fager med try-catch. Merk at vi bruker ordet både for utak metode vår selv geererer og de utak/feil metode mottar (fra metoder de selv har kalt) og bare videreseder. Ulempe med videre-kastig av utak: Jo ærmere feilkilde feile blir rettet, jo bedre.

6 Sede feilee videre ut av mai throws (ulempe programmet bare avslutter) import easyio.*; class MiFeil exteds Exceptio { MiFeil (Strig s) { super(s); class Feil { it i; public static void mai(strig[] args) throws ArrayIdexOutOfBoudsExceptio, NumberFormatExceptio, MiFeil { it j; j = ew Feil().a(args[0]); System.out.pritl("RIKTIG: j = + j); it a (Strig s) throws NumberFormatExceptio, MiFeil { it i = Iteger.parseIt(s); if (i < 10) throw ew MiFeil ("FEIL: Tallet er midre e 10"); retur i;!"# $ %!&"' To (tre) strategier for utakshådterig Fage utaket med try-catch og gjøre oe i catch-dele Ikke bruke try-catch, me bare sede (kaste) utaket videre med throws Fage utaket og ha e tom krøll-paretes i catch-dele (Ikke abefalt)

7 Utak strategier, mer detaljert oversikt (( %) %* 1. Løs problemet og kall metode som ga utak om igje 2. Lapper samme tig ute å kalle metode som ga utak, eller bereg et alterativt ( beste ) resultat istedefor det utaksmetode skulle ha bereget 3. Avslutt programmet: System.exit(0); 4. Igorere dem hvis de er av type RuTimeExceptio eller Error hvis de oppstår termierer programmet Utak - oversikt, forts. $ $$! (!" +,, $ - ).,/,,* + 0 $$$$,$ # 453 ' 0 $$$, %,, 2 $ - 6,),(# ' * + 0 $$$$,$ # 453 ' 0 $$$, %,6 $$, ( & 7 2

8 Strig-ideks utefor strige class Utak0x { public static void mai(strig[ ] args) { ew Utak0x ( ); Utak0x ( ) { Strig s = "Dette er e tekst med 29 teg", s1; s1 = s.substrig(30,32); // strig-ideks utefor "ede" Behadler Strigideks-feil class Utak1x { public static void mai(strig[ ] args) { ew Utak1x ( ); Utak1x ( ) { Strig s = "Dette er e tekst med 29 teg", s1; s1 = s.substrig(30,32); // strig-ideks utefor "ede" catch (StrigIdexOutOfBoudsExceptio e) { System.out.pritl("Her er det oe galt med strig-idekse ); //ed try >java Utak1x Her er det oe galt med strig-idekse

9 Eksempel på bruk av utaksobjektet class Utak2x { public static void mai(strig[ ] args) { ew Utak2x ( ); Utak2x ( ) { Strig s = "Dette er e tekst med 29 teg", s1; s1 = s.substrig(30,32); // strig-ideks utefor "ede" catch (StrigIdexOutOfBoudsExceptio e) { System.out.pritl("Her er det oe galt med strig-idekse " + e.getmessage( )); //ed try >java Utak2x Her er det oe galt med strig-idekse Strig idex out of rage: 32 Fage divisjo med 0 public class TryTest { public static void mai ( Strig [ ] args) Her tar programmet { it i=1; seg av hele feile for (it j=0; j < 5; j++) try{ i = 10/j; System.out.pritl("Det gikk OK, i:" + i + ", j:" + j); catch (Exceptio e) { System.out.pritl("Feil i uttrykk: "+ e.getmessage( )); // ed TryTest sidil> java TryTest Feil i uttrykk: / by zero Det gikk OK, i:10, j:1 Det gikk OK, i:5, j:2 Det gikk OK, i:3, j:3 Det gikk OK, i:2, j:4 sidil>

10 Starte å sede feil/utak selv - eks. class Feil1 { it i; public static void mai(strig[] args) { ew Feil1().a(ull); void a( Feil1 pek) { if (pek == ull ) throw ew NullPoiterExceptio( pek må være!= ull"); pek.i = 14; Merk at her kastes et objekt av e klasse som er subklasse av RuTimeExceptio, så da treger vi ikke try-catch rudt kallet på metode a Egedefierte utak class Mittutak exteds Exceptio { public Mittutak ( ) { public Mittutak (Strig s) { super(s); // ed kostruktører // ed class Mittutak try{... catch (Mittutak e) {.. e.getmessage( ).. throw ew Mittutak("feilmeldig"); De ye klasse Mittutak utvider (exteds) de ferdiglaget Java-klasse med av Exceptio. throw ew Mittutak( );

11 4* class Mittutak exteds Exceptio { public Mittutak ( ) { Fullstedig eks. public Mittutak (Strig s) { super(s); import java.io.*; class UtakEge { public static void mai(strig[ ] args) throws IOExceptio { ew UtakEge ( ); UtakEge ( ) throws IOExceptio { BufferedReader mii = ew BufferedReader (ew IputStreamReader(System.i)); System.out.pritl("Skriv et positivt tall?"); Strig lije = mii.readlie ( ); it tall = Iteger.parseIt(lije); if (tall < 0) throw ew Mittutak(lije); System.out.pritl("Rote av tallet er: " + Math.sqrt(tall)); catch (Mittutak u) { System.out.pritl(" Ka ikke fie rote av " + u.getmessage()); // slutt class UtakEge 4* Koto med OvertrekkUtak - VIKTIG class Koto { private double saldo = 0, miimumsaldo = 0; private it kotor; Koto (it r) { kotor = r; public void taut (double belop) throws OvertrekkUtak { if (saldo - belop < miimumsaldo) { throw ew OvertrekkUtak(Iteger.toStrig(kotor)); else saldo = saldo - belop; // slutt taut... class OvertrekkUtak exteds Exceptio { public OvertrekkUtak (Strig s) { // slutt Koto super(s); // ed class OvertrekkUtak

12 Bruk av Koto med OvertrekkUtak class Bak{ static void mai (Strig [] args) { Koto pek = ew Koto(234); pek.taut(-10); catch (OvertrekkUtak e) { System.out.prit(" Overtrekk på koto "); System.out.pritl( e.getmessage()); // slutt catch // slutt mai slutt Bak Flere opplysiger ut av parametere til catch import easyio.*; class Feil3 { public static void mai(strig[] args) { ew Feil3().a(); void a() { b(); void b(){ I tast = ew I(); it i = 1, j = 0; Divisjo: 100 delt p : (gi tall):0 FY - delig med ull er tull java.lag.arithmeticexceptio: / by zero at Feil3.b(Feil3.java:19) at Feil3.a(Feil3.java:9) at Feil3.mai(Feil3.java:6) Divisjo: 100 delt p : (gi tall): while ( i >= 0) { System.out.prit("\Divisjo: 100 delt på: (gi tall):"); i = tast. iit(); try{ j = 100/ i; System.out.pritl("Svaret på 100/" + i + " er:" +j); catch (Exceptio e){ System.out.pritl("\ FY - delig med ull er tull"); e.pritstacktrace();

13 Hvilke klasser av feil og utak har vi i Java Exceptio utak (med alle subklassee) Disse utakee ka og må vi fage (Utatt RuTimeExceptio) F.eks. IOExceptio (kommer vi tilbake til) RuTimeExceptio (e subklasse av Exceptio) igje med sie subklasser som : ArrayIdexOutOfBoudsExceptio, NumberFormatExceptio, ArithmeticExceptio,... Disse ka, me må vi ikke fage Vi ka, me må ikke skrive try-catch for disse feilsituasjoee Vi ka kort sagt igorere disse (me da termierer programmet ) Det ville ellers bli alt for mye..catch (..){... i kode Eks: Divisjo med 0, e peker er ull, gal ideks i e array,.. Error (med alle subklassee) Noe galt skjer, vi ka som oftest ikke gjøre oe med det Eks:.IteralError.OutOfMemoryError, NoClassDefFoudError Error og Exceptio er subklasser av Throwable Fage flere utak class Utak3x { public static void mai(strig[ ] args) { ew Utak3x ( ) ; Utak3x ( ) { it divided=7, divisor = 0; it kvotiet=0; Strig s="dette er e tekst med 29 teg"; Strig s1="*********"; s1 = s.substrig(15,17); // OK strig-ideks kvotiet = divided/divisor; // Feil: divisjo med 0 catch (StrigIdexOutOfBoudsExceptio e) { System.out.pritl("Her er det oe galt med strig-idekse"); catch (ArithmeticExceptio e1) { System.out.pritl("Divisjo med 0: " + e1.getmessage( ) ); //ed try-catch System.out.pritl(s1); System.out.pritl(kvotiet); >java Utak3x Divisjo med 0: / by zero st 0

14 Nytt Java ord: fially Vi ka ha flere catch etter hveradre: try{... Kode som ka gi utak / feile... catch (Type1 t1 ) { catch (Type2 t2 ) {... catch (Type3 t3 ) {... fially { // Dette gjøres alltid - selv om vi ikke får oe utak Da testes det (omlag som e switch), og bare de første som får tilslag, blir utført Husk: At hvis e av klasseavee (Type1, Type2,..) er superklasse til det ikome utaket, vil de blir utført. Fially vil alltid bli utført ete det ble utak eller ikke og ete oe av catchee fikk tilslag eller ikke. Motta mage feiltyper - eksempel import easyio.*; class MiFeil exteds Exceptio { MiFeil (Strig s) { super(s); class Feil7 { it i; it a( Strig s) throws NumberFormatExceptio, MiFeil{ it i = Iteger.parseIt(s); if (i < 10) throw ew MiFeil ("FEIL: Tallet er midre e 10"); retur i; public static void mai(strig[] args) { it j; j= ew Feil7().a(args[0]); System.out.pritl("RIKTIG: j="+j); catch (ArrayIdexOutOfBoudsExceptio e) { System.out.pritl("Galt kall på Feil7, bruk:>java Feil7 tall "); catch (NumberFormatExceptio e) { System.out.pritl("Skriv tall"); catch (MiFeil m) { System.out.pritl(m.getMessage()); m.pritstacktrace(); fially { // Dette gjøres alltid - selv om vi ikke får oe utak System.out.pritl("Alltid fially");

15 IO feil E metode som ka komme til å gjøre e IO-feil må ete behadle dette selv, eller kaste feile videre: public void mifilleser() throws IOExceptio { < kode som gjør fil-behadlig> I fra tastatur i Java mai mii Hilse klassedatastruktur import java.io.*; class Hilse { public static void mai (Strig [] args) throws IOExceptio { BufferedReader mii = ew BufferedReader (ew IputStreamReader(System.i)); av Strig readlie() Objekt av klasse BufferedReader System.out.pritl( Hva heter du?"); Strig av = mii.readlie ( ); System.out.pritl( God dag " + av ); sidil:>javac Hilse.java sidil:>java Hilse Hav heter du? Stei Gjessig God dag Stei Gjessig sidil:> " # $ # 11 kostruktører 47 metoder pluss plass til å lagre e streg (e tekst) Stei Gjessig Et objekt av klasse Strig

16 Om å lese desimaltall (Utdrag av et program) import java.io.*; BufferedReader mii = ew BufferedReader (ew IputStreamreader (System.i)); double tall; Strig lije; mai mii lije = mii.readlie(); Strig readlie() tall = Double.parseDouble(lije); // eller: tall = Double.valueOf(lije.trim()).doubleValue(); Vi husker: Double er e klasse som ieholder mye verktøy som behadler kommatall av type double. ( Dette har ige tig med ilesig å gjøre. ) Adre klasser som bl.a. heter Character, Iteger, Log og Boolea ieholder metoder for å ta seg av hhv. teg, heltall (it og log) og logiske verdier. Se i pakke java.lag Dette objektet leser fra tastaturet Double Double valueof ( ) double parsedouble ( ) double doublevalue( ) E ekel måte å lese heltall på import java.io.*; BufferedReader mii = ew BufferedReader (ew IputStreamReader (System.i)); it tall; Strig lije; lije = mii.readlie(); tall = Iteger.parseIt(lije); DETTE GÅR BRA HVIS LINJEN BARE INNE- HOLDER ET TALL!! 137 tall lije Iteger it parseit ( ) Strig klassedatastruktur 137 Et objekt av klasse Strig

17 Ilesig fra fil Java origial Først må vi lage e forbidelse med file: fili BufferedReader fili = ew BufferedReader (ew FileReader ( mifil.txt )); Nå ka vi bruke file på samme måte som vi leste data fra tastaturet: double dtall; Strig tekst; Dette objektet leser fra file mifil.txt mifil.txt Forelesigee dtall = Double.parseDouble(filI.readLie()); tekst = fili.readlie( ); tekst dtall Forelesigee Et objekt av klasse Strig Utskrift til fil - Java origial mai filut PritWriter filut = ew PritWriter (ew FileWriter ( miutfil.txt )); // Utskrift skjer som til skjerm: filut.pritl( utskrift + 17 ): For at iholdet på de ye file skal bevares må vi til slutt si: Dette objektet skriver på file miutfil.txt void pritl() miutfil.txt filut.close( );

18 I/O utak som ikke behadles av programmet Når det oppstår et I/O-utak ka programmet velge å selv ikke behadler det, me kaste det videre til kjøretidsystemet. public static void mai(strig[] args) throws IOExceptio { BufferedReader fili = ew BufferedReader (ew FileReader ("difil.txt"));... For eksempel hvis file ikke fies: Summe av tallee på e fil (estet try-catch) import java.io.*; class Sum { public static void mai(strig[] args) throws IOExceptio { BufferedReader i = ew BufferedReader (ew IputStreamReader (System.i)); BufferedReader fili = ull; Strig filav = ull, lije = ull; it tall, sum= 0; boolea filskalfies = true; while ( filskalfies ) { System.out.prit("Filav: "); filav = i.readlie(); fili = ew BufferedReader (ew FileReader (filav)); // Ikke gjeta fil-åpig mer: filskalfies = false; while ( true ) { lije = fili.readlie(); tall = Iteger.parseIt(lije); sum += tall; catch (NumberFormatExceptio e) { System.out.pritl("Summe er: "+sum); catch ( FileNotFoudExceptio e) { System.out.pritl(filav+ " uket ); System.out.pritl("Prøv igje"); // slutt åpe fil løkke // slutt mai // slutt klasse Sum

19 To alterative EOF -metoder (programmøstre) while ( true ) { lije = fili.readlie(); if (lije == ull) throw ew EOFExceptio(); tall = Iteger.parseIt(lije); sum += tall; catch (EOFExceptio e) { System.out.pritl ("Summe er: "+sum); lije = fili.readlie(); while ( lije!= ull ) { tall = Iteger.parseIt(lije); sum += tall; lije = fili.readlie(); System.out.pritl ("Summe er: "+sum); Eksempel: class I og IExp i easyio public class IExp { BufferedReader i;... public it iit(strig sep) throws NumberFormatExceptio, IOExceptio { retur Iteger.parseIt(iWord(sep)); public Strig iword(strig sep) throws IOExceptio { lieno++; retur i.readlie(); public class I exteds IExp { public it iit() { retur iit(ull); public it iit(strig sep) { for (it i = 0; i < umtry; i++) { retur super.iit(sep);... catch (IOExceptio ioe) { feil("iit: " + ioe.getmessage()); retur 0; // kompilatormat catch (NumberFormatExceptio fe) { System.out.prit("Forveter et heltall. Prøv igje: "); // ed try-catch

20 A%, 8 9 ( %,,6 %* & & :#'7 8; % #&#1'', % +)33$ <, +)33=* 0 $ $ $ + 0 $ $ $ %$ $ $ 2 33#453> ' 0 $ $ $ $ $ $ 2 2 8:,$ ; % 6 ( &* #$$$' & 453> 8; %?%453=6, ( $ 8 4 %, % 6 %, +@ 6 % %, %,$ Java og C# Vi har tidligere sakket litt om forskjellee mellom Java og C# Java er laget av Su, C# av Microsoft Det meste er likt Tidligere har vi sakt at hedelser hådteres forskjellig Utak hådteres rimelig likt, me i C# er du ikke tvuget til å deklarere de utak som kastets videre (alle utak I C# fugerer altså slik som rutime-feil i Java) Alle Microsofts språk kompileres til C# og bruker C#s objektorieterte kjøretidsystem Java compileres til byte-kode, C# kompileres Just-I-Time (JIT) til maskikode

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

Oversikt. Feil i programmet hva skjer? Array indeks utenfor sine grenser. Inf1010 Våren Feilsituasjoner og unntak i Java

Oversikt. Feil i programmet hva skjer? Array indeks utenfor sine grenser. Inf1010 Våren Feilsituasjoner og unntak i Java Oversikt Inf1010 Våren 2008 Feilsituasjoner og unntak i Java Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Hva er en feil (er det ikke mulig å unngå feil?) Hva skjer når et program feiler

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

Oversikt. Feil i programmet hva skjer? Array indeks utenfor sine grenser. Inf1010 Våren Feilsituasjoner og unntak i Java

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

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

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 2010 Feilsituasjoner og unntak i Java Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Jeg prøvde å bestille billett med Air France:

Detaljer

Oversikt. Array indeks utenfor sine grenser. Feil i programmet hva skjer?

Oversikt. Array indeks utenfor sine grenser. Feil i programmet hva skjer? Inf1010 Våren 2007 Tirsdagene 6. mars (bare 1. time) og 10. april 2007 Feilsituasjoner og unntak i Java (og litt ekte Java I/O) Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Oversikt

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

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

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

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

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

Detaljer

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

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

Detaljer

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

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

Detaljer

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

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

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

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

Detaljer

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

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

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

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

Detaljer

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

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

Detaljer

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

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

Litt om pakker og mest om data inn og ut

Litt om pakker og mest om data inn og ut Litt om pakker og mest om data inn og ut IN105-javainnogut-1 import java.io.*;. Data inn fra tastaturet lesemetode tastatur BufferedReader void lesemetode (String [ ] args) throws IOException {... /* sett

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

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

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

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

Detaljer

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

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

Detaljer

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

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

Detaljer

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

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

Detaljer

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

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

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

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

INF1000-SIKT - Notat om I/O i Java

INF1000-SIKT - Notat om I/O i Java INF1000-SIKT - Notat om I/O i Java Tuva Kristine Thoresen tuvakt@ulrik.uio.no 30. oktober 2013 Innhold 1 Innlesning fra terminal 2 1.1 Innlesning av tekst........................ 2 1.2 Innlesning av tall.........................

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

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

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

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

Detaljer

INF Notat om I/O i Java

INF Notat om I/O i Java INF1000 - Notat om I/O i Java Tuva Kristine Thoresen, Ingrid Grønlie Guren tuvakt@ulrik.uio.no, ingridgg@ulrik.uio.no 22. oktober 2014 Dette notatet handler om I/O (input/output) i Java, og tar for seg

Detaljer

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

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

Detaljer

INF1010 våren Arv og subklasser del 1 (pluss litt I/O og unntaksbehandling)

INF1010 våren Arv og subklasser del 1 (pluss litt I/O og unntaksbehandling) INF1010 våren 2012 Torsdag 9. februar Arv og subklasser del 1 (pluss litt I/O og unntaksbehandling) Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

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

Jentetreff INF1000 Debugging i Java

Jentetreff INF1000 Debugging i Java Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver

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

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

IN3030 Uke 5, våren Eric Jul PSE Inst. for informatikk

IN3030 Uke 5, våren Eric Jul PSE Inst. for informatikk IN3030 Uke 5, våre 2019 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

INF1010 våren Generalisering -spesialisering Gjenbruk av klasser. Ved arv. Klasse-hierarkier. Stein Gjessing.

INF1010 våren Generalisering -spesialisering Gjenbruk av klasser. Ved arv. Klasse-hierarkier. Stein Gjessing. INF1010 våren 2009 Uke 5, 27. januar Arv og subklasser del I Stein Gjessing Institutt for informatikk 1 Emneoversikt subklasser Generalisering -spesialisering Gjenbruk av klasser Ved sammensetning (komposisjon)

Detaljer

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

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

Detaljer

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

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

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

Bruk av class Scanner, FileWriter og Formatter som alternativ til EasyIO i INF1000.

Bruk av class Scanner, FileWriter og Formatter som alternativ til EasyIO i INF1000. Arne Maus, ver.2.2, august, 2013 Bruk av class, FileWriter og Formatter som alternativ til EasyIO i INF1000. Noen ønsker å bruke noen av de klassene vi finner i pakken java.util og java.io isteden for

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

Dagens tema Kapittel 8: Objekter og klasser

Dagens tema Kapittel 8: Objekter og klasser Dagens tema Kapittel 8: Objekter og klasser Hva er objekter og klasser? Programmering med objekter Klassedeklarasjoner Generering av objekter Tilgang til elementer i objektene Objekt- og klassevariable

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

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

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

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

INF1000: Forelesning 6. Klasser og objekter del 1

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

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

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

(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

Java 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004

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

Detaljer

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49 Innhold Forord...5 1 Det første programmet...15 1.1 Å kommunisere med en datamaskin 16 1.2 Programmeringsspråk 17 1.3 Et program som skriver på skjermen 18 1.4 Kompilering og kjøring 19 1.5 Kommentarer

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

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

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser

Detaljer

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

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal. 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

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

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

Uke 5, 27. januar Arv og subklasser del I. Stein Gjessing Institutt for informatikk

Uke 5, 27. januar Arv og subklasser del I. Stein Gjessing Institutt for informatikk INF1010 våren 2009 Uke 5, 27. januar Arv og subklasser del I Stein Gjessing Institutt for informatikk 1 Emneoversikt subklasser Generalisering - spesialisering Gjenbruk av klasser Ved sammensetning (komposisjon)

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

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

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

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger I dag INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Litt repetisjon Mer om uttrykk Lesing og skriving til terminal Forgreninger

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

INF1010 våren Arv og subklasser del 1 pluss (hvis vi har tid) litt om Unntak, IO og Scanner-klassen

INF1010 våren Arv og subklasser del 1 pluss (hvis vi har tid) litt om Unntak, IO og Scanner-klassen INF1010 våren 2014 Onsdag 5. februar Arv og subklasser del 1 pluss (hvis vi har tid) litt om Unntak, IO og Scanner-klassen Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært

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

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

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder: Lese fra fil Filbehandling Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo INF1000 : Forelesning 5 Vi må først importere pakken easyio Vi åpner

Detaljer

Stabler, Køer og Lister. ADT er

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

Detaljer

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

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man Eksempel med to-dimensjonal array Filbehandling Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 6 Vi skal lage et program som illustrerer

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

Repetisjon. INF1000 - gruppe 13

Repetisjon. INF1000 - gruppe 13 Repetisjon INF1000 - gruppe 13 Lese fra fil Scanner import java.util.*; void lesfrafil() { try { Scanner innfil = new Scanner(new File( fugleobservasjoner.txt )); while (innfil.hasnext()) { String linje

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

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

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

Detaljer

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten. Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på

Detaljer

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten. Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på

Detaljer

INF1000 oppgaver til uke 38 (17 sep 23 sep)

INF1000 oppgaver til uke 38 (17 sep 23 sep) INF1000 oppgaver til uke 38 (17 sep 23 sep) Formål: Øve på programmering med forgreninger, løkker og arrayer. Teoritimer (plenumsøvinger): 1. Oppgave 4 og 6 i kapittel 4 i læreboka. 2. En blokk er en samling

Detaljer

Videregående programmering 6

Videregående programmering 6 Videregående programmering 6 1. Feilkontroll i klasser uten unntaksobjekter Klasser skal lages sikre. Argumentverdier skal kontrolleres, og eventuelle feil skal rapporteres til klienten. I praksis har

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

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

INF1000 : Forelesning 3

INF1000 : Forelesning 3 INF1000 : Forelesning 3 Programeksempler Løkker Arrayer Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet i Oslo 1 Body Mass Index (BMI) Vi skal lage et program

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer