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

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

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

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

Repetisjon. INF gruppe 13

INF Løsning på seminaropppgaver til uke 8

INF Uke 10. Ukesoppgaver oktober 2012

INF1010 våren 2018 tirsdag 23. januar

UNIVERSITETET I OSLO

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

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Tuva Kristine Thoresen

IN Notat om I/O i Java

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

Læringsmål for forelesningen

INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012

UNIVERSITETET I OSLO

IN1010 våren januar. Objektorientering i Java

INF1000-SIKT - Notat om I/O i Java

UNIVERSITETET I OSLO

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

Løsningsforslag til eksamen i INF1000 våren 2006

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

Klasser og objekter. Tuva Kristine Thoresen 22. oktober Institutt for Informatikk

UNIVERSITETET I OSLO

INF1000 Prøveeksamen Oppgave 7 og 9

Mer objektorientert programmering

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

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

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

TOD063 Datastrukturer og algoritmer

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

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

INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon

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

INF Notat om I/O i Java

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

UNIVERSITETET I OSLO

Jentetreff INF1000 Debugging i Java

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

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

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

UNIVERSITETET I OSLO

Læreboken på 45 minutter

UNIVERSITETET I OSLO

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

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

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

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

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Løsningsforslag Test 2

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

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

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

Innhold. INF1000 Høst Klasser og objekter. Uke 7: Mer objektorientert programmering Siri Moe Jensen

INF1010 våren Arv og subklasser - del 2

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Forelesning inf Java 5

UNIVERSITETET I OSLO

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

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

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Enkel lesing og skriving i Java

Ole Christian Lingjærde, 12. september 2013

Forelesning inf Java 4

Algoritmer og datastrukturer E Løkker i Java

INF1010. Stein Michael Storleer (michael) Lenkelister

INF1000 : Forelesning 5

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

Løse reelle problemer

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

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

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

UNIVERSITETET I OSLO

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

INF Objektorientert programmering. Datastrukturer i Java Klasser med parametre

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

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

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet

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

Leksjon 7. Filer og unntak

UNIVERSITETET I OSLO

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

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

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

Løsningsforslag, inf101, våren 2001

INF Objektorientert programmering. Datastrukturer i Java Klasser med parametre

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

Fra Python til Java, del 2

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Forelesning inf Java 5

INF2100. Oppgaver 23. og 24. september 2010

Forelesning inf Java 5

Transkript:

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 ArrayList HashMap Spørreundersøkelse Oppsummering 2

3

Strenger Typer som int og double kalles primitive typer. String blir representert som et objekt. Følgende kommandoer gir samme resultat: String s1 = "Dette er en String"; String s2 = new String("Dette er en String"); s1 == s2 false == sjekker om s1 og s2 er samme objekt, ikke om de har samme innhold. 5

Nyttige String-metoder Vi definerer String a; String b; Da kan vi bruke metodene a.equals(b) (sjekker om a og b har samme innhold/verdi) a.length() (finner antall tegn i a) a.charat(i) (finner bokstaven på plass nr. i) a.substring(i,j) (henter f.o.m tegn nr. i t.o.m. nr. j-1) a.compareto(b) (kommer a før b i alfabetet?)... og mange flere. Sjekk doc 6

Oppgave Gitt en String, lag kode som teller antall forekomster av bokstaven r i denne Stringen. 7

Lese linjevis fra fil doc 1 import java.io.*; 2 try { 3 Scanner s = new Scanner(new File("testfil.txt")); 4 while (s.hasnextline()) { 5 String linje = s.nextline(); 6 System.out.println(linje); 7 } 8 s.close(); 9 } catch (IOException e) { 10 System.out.println("Filen finnes ikke"); 11 } 9

Skrive linjevis til fil doc 1 import java.io.*; 2 try { 3 PrintWriter p = new PrintWriter(new FileWriter("utfil.txt")); 4 for (int i = 0; i < 20; i++) { 5 String tekst = String.format("%4d\n", i); 6 p.println(tekst); 7 } 8 p.close(); 9 } catch (IOException e) { 10 System.out.println("Kan ikke skrive til fil"); 11 } 10

Kompileringsfeil vs kjøretidsfeil Kompileringsfeilene blir fanget av kompilatoren, og vi kan fikse dem før programmet kjører. Her finner vi syntaksfeil (manglende klammeparenteser osv.) og generelt ulovlig kode. Kjøretidsfeil dukker opp når programmet kjøres, og disse kan (og noen ganger må) håndteres på en eller annen måte. Eksempel på dette er feil ved innlesing fra fil. 12

Try/catch 1 try { 2... 3 } catch (...Exception e) { 4... 5 } 13

ArrayList Liste som ligner på array, men har ingen fast størrelse. Kan bare lagre objekttyper. Importeres fra java.util. 1 ArrayList<String> liste = new ArrayList<String>(); 2 liste.add("tuva"); 3 liste.add(3, "Andreas"); Med heltall: 1 ArrayList<Integer> tall = new ArrayList<Integer>(); 15

LinkedList Liste som lagrer elementer ved å lage en pekerkjede. Har ingen fast størrelse, men utvider seg når nye elementer blir satt inn. Kan bare lagre objekttyper. Importeres fra java.util. 1 LinkedList<String> liste = new LinkedList<String>(); 2 liste.add("tuva"); 3 liste.add("andreas"); Med heltall: 1 LinkedList<Integer> tall = new LinkedList<Integer>(); 16

Metoder ArrayList<E> liste = new ArrayList<E>(); boolean add(e e) void add(int index, E element) boolean contains(object o) E get(int index) E remove(int index) int size() Doc 17

Iterasjon 1 ArrayList<String> liste = new ArrayList<String>(); 2 for (String s: liste) { 3 System.out.println(s); 4 } 18

19

HashMap Liste som lagrer (nøkkel,objekt)-par. Elementene ligger ikke i en bestemt rekkefølge, mer som i en stor sekk. Vi finner igjen objektene vha. objektets nøkkel. 1 HashMap<String, Person> personer = new HashMap<String, Person>(); 2 3 personer.put("tuva", new Person("Tuva")); 4 Person tuva = personer.get("tuva"); 21

Metoder HashMap<K,V> hm = new HashMap<K,V>(); V put(k key, V value) V get(object key) V remove(object key) boolean containskey(object key) V containsvalue(object value) int size() Doc 22

Iterasjon 1 HashMap<String, Person> personer = new HashMap<String, Person>(); Iterasjon over verdiene: 1 for (Person p: personer.values()) { 2 System.out.println(p.getNavn()); 3 } Iterasjon over nøklene: 1 for (String navn: personer.keyset()) { 2 System.out.println(navn); 3 } 23

ArrayList vs. HashMap Ordning ArrayList: Elementene ligger i en gitt rekkefølge. HashMap: Elementene har ingen ordning. Søking ArrayList: Må lete gjennom hele lista. HashMap: Kan hente ut objektet direkte vha. nøkkelen. 24

25

Ros og ris 27

Spørsmål 29

Spørsmål 1 Hvilke av disse uttrykkene er lovlige i Java? String string = String string ; int[] binarynumber = 0100110001; Hashmap<int,String> h = new Hashmap<int,String>(); boolean b = (true == false); 30

Spørsmål 2 Hvilken verdi har int-variabelen tall etter løkken under? 1 int tall = 0; 2 while (tall < 10) { 3 for (int i = 10; i > 0; i--) { 4 tall = tall + 2; 5 } 6 } 20 31

Spørsmål 3 Anta at følgende variable er deklarert: 1 String a = "kurator"; 2 String b = "kur"; 3 String c = "ator"; Hvilke av følgende bolske uttrykk blir true? a == (b+c) a.equals(b+c) a.compareto(b) < 0 a.indexof(c) == 4 32

Oppgave 4 Skriv en metode int storst(int[] array) som finner den største verdien i arrayen array. 1 public int storst(int[] array) { 2 int maks = array[0]; 3 for (int i = 1; i < array.length; i++) { 4 if (array[i] > maks) { 5 maks = array[i]; 6 } 7 } 8 9 return maks; 10 } 33

Lykke til i INF1010! :) 34