INF1000 (Uke 12) Sortering
|
|
|
- Stephen Lorentzen
- 9 år siden
- Visninger:
Transkript
1 INF1000 (Uke 12) Sortering Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen
2 Innhold Om sortering Sortering av heltall Litt om dokumentasjon av kode Deler av eksamen H03 2
3 Oversikt I Lære å løse et vanskelig problem Sortering mange metoder, her Innstikksortering Sortere hva: Heltall Tekster En tabell (2-dim) etter verdiene i første kolonne Eks : telefonkatalogen (sortert på navn) 3
4 Oversikt II Lære abstraksjon Når vi har løst ett problem, kan lignende problemer løses tilsvarende Lære å lage proff programvare ved å lage en generell klasse for sortering Hvordan deklarere en slik klasse Javadoc lage dokumentasjon Testing Hvordan utvikle programmet 4
5 Sortering Mange datatyper kan sorteres Krav: operatorer som <, <=, =, >, >=,!= må ha mening Eksempler Tall Tekster (leksikografisk = i samme rekkefølge de ville stått i et leksikon) Tabeller av tekster eller tall 5
6 Sortering Vi må ha en algoritme (oppskrift) for sortering Det finns mange titalls (hundretalls) metoder å velge blant Vi skal se på innstikkssortering Dette er den raskeste metoden når vi skal sortere få elementer (typisk mindre enn 50 elementer) 6
7 Hvorfor sorterer vi For å få noen tall i en bestemt (stigende eller synkende) rekkefølge Eksempel: lotto-tallene Sortere tekster (navnelister) for raskere oppslag Sortere noen opplysninger som hører sammen, ved å sortere på en av opplysningene Eksempel: Telefonkatalogen (navn, adresse, telefonnummer informasjonen sortert på navn) 7
8 Vi skal først lære å sortere heltall Dette skal vi (med minimale endringer) bruke til å sortere: String-arrayer (tekster) Sammenhengende opplysninger i en 2-dim array av tekster (hver linje er opplysninger om ett objekt) Eks : Telefonkatalogen navn adr. postnr. tlf. 8
9 En felles klasse for sortering Vi ønsker en klasse med tre varianter av sortering: Heltall Tekster To-dimensjonal tekst-arrays (sortert på data i 1. kolonne) 9
10 Class ISort public class ISort { public static void sorter(int [] a) { public static void sorter(string [] a) { public static void sorteretterkol1(string [] [] a) { // end class ISort 10
11 class TestInnstikkSortering { public static void main ( String[] args) { int [] a = {3,1,7,14,2,156,77; String [] navn = {"Ola", "Kari", "Arne", "Jo"; String [][] telefonliste = { {"Per"," ", {"Arne"," ", {"Kari"," ", {"Jo"," "; // sorter heltall - skriv ut ISort.sorter(a); for (int i = 0; i < a.length; i++) System.out.println("b[" + i +"]= " + a[i]); System.out.println("\n Test tekst-sortering:"); // sorter Stringer - skriv ut ISort.sorter(navn); for (int i = 0; i < navn.length; i++) System.out.println("navn[" + i +"]= " + navn[i]); System.out.println("\n Test 2dim tekst-sortering:"); // sorter Tabell - skriv ut ISort.sorterEtterKol1(telefonliste); for (int i = 0; i < navn.length; i++) System.out.println("navn[" + i +"]= " + telefonliste[i][0] + ", med tlf.: " + telefonliste[i][1] ); 11
12 Heltalls-array a "Ola "Kari "Arne "Jo" En-dimensjonal String-array navn "Per " " To-dimensjonal String-array telefonliste "Arne " " "Kari " " Pekere for alle radene "Jo Pekere for hvert element i rad nr. 3
13 >java InnstikkSortering b[0]= 3 b[1]= 1 b[2]= 7 b[3]= 14 b[4]= 2 b[5]= 156 b[6]= 77 Test av test-programmet med tomme sortering-metoder Test tekst-sortering: navn[0]= Ola navn[1]= Kari navn[2]= Arne navn[3]= Jo Test 2dim tekst-sortering: telefonliste[0]= Per, med tlf.: telefonliste[1]= Arne, med tlf.: telefonliste[2]= Kari, med tlf.: telefonliste[3]= Jo, med tlf.:
14 Sortering av heltall innstikksmetoden a a Se på arrayen element for element fra venstre Sorterer det vi hittil har sett på ved : Hvis det nye elementet vi ser på ikke er sortert i forhold til de vi allerede har sett på: Ta ut dette elementet (gjem verdien i en variabel t) Skyv de andre elementene vi her sett på, en-etter-en, ett hakk til høyre. Slutt når elementet i t kan settes inn på sortert plass Den sorterte delen er nå ett element lenger (sett fra venstre) Når vi har sett på alle elementene, er hele arrayen sortert 14
15 Sorter 1 på plass i forhold til 3 steg 1 a t 1 steg a t 1 steg a t 1
16 7 og 14 står riktig, Sorter 2 på plass i forhold til : 1,3,7,14 steg a steg a steg 6 a t 2 flytt: 3,7,14 ett hakk til høyre steg 7 a t 2 steg 8 a t 2
17 i k+1 Kode for å flytte ett element på plass : a t 2 // a[k +1 ] står muligens på // feil plass, ta den ut int t = a[k + 1], i = k; a i k t 2 // skyv a[i] mot høyre ett hakk til // vi finner riktig plass til t while (i >= 0 && a[i] > t) { a[i + 1] = a[i]; i--; a t 2 // sett t inn på riktig plass a[i + 1] = t;
18 public class ISort { public static void sorter(int [] a) { for (int k = 0 ; k < a.length-1; k++) { // a[k +1 ] står muligens på feil plass, ta den ut int t = a[k + 1], i = k; // skyv a[i] mot høyre ett hakk til // vi finner riktig plass til t while (i >= 0 && a[i] > t) { a[i + 1] = a[i]; i--; // sett t inn på riktig plass a[i + 1] = t; // end heltall-sortering
19 >java InnstikkSortering b[0]= 1 b[1]= 2 Resultat av sortering med heltalls-metoden kodet, de to andre tomme b[2]= 3 b[3]= 7 b[4]= 14 b[5]= 77 b[6]= 156 Test tekst-sortering: navn[0]= Ola navn[1]= Kari navn[2]= Arne navn[3]= Jo Test 2dim tekst-sortering: telefonliste[0]= Per, med tlf.: telefonliste[1]= Arne, med tlf.: telefonliste[2]= Kari, med tlf.: telefonliste[3]= Jo, med tlf.:
20 Sortering av tekster (String) "Ola "Kari "Arne "Jo" a Vi skal sortere denne ved å bytte om på pekerne (la a[0] peker på Arne, osv.) med innstikkmetoden 20
21 Sortere de to første elementene ved å bytte om pekere a t "Ola "Kari "Arne "Jo" t = a[1]; "Ola "Kari "Arne "Jo" a t a[1]= a[0]; "Ola "Kari "Arne "Jo" a t a[0]= t;
22 public static void sorter(int [] a) { // Sorterer heltallsarrayaen 'a'. for (int k = 0 ; k < a.length-1; k++) { int t = a[k + 1], i = k; while (i >= 0 && a[i] > t) { a[i + 1] = a[i]; i--; a[i + 1] = t; // end heltall-sortering public static void sorter(string [] a) { // Sorterer String-arrayen 'a'. for (int k = 0 ; k < a.length-1; k++) { String t = a[k + 1]; int i = k; while (i >= 0 && ( a[i].compareto(t) > 0) ){ a[i + 1] = a[i]; i--; a[i + 1] = t; // end String-sortering
23 >java InnstikkSortering b[0]= 1 b[1]= 2 b[2]= 3 Test med heltall og enkel String-sortering kodet, 2dim sortering tom b[3]= 7 b[4]= 14 b[5]= 77 b[6]= 156 Test tekst-sortering: navn[0]= Arne navn[1]= Jo navn[2]= Kari navn[3]= Ola Test 2dim tekst-sortering: telefonliste[0]= Per, med tlf.: telefonliste[1]= Arne, med tlf.: telefonliste[2]= Kari, med tlf.: telefonliste[3]= Jo, med tlf.:
24 Sortering av 2-dim String array "Per " " "Arne " " a "Kari " " "Jo Vi kan sortere denne på to måter: Bytte om på pekerne til radene (la a[0] peker på Arne -raden,..osv) Enklest Bytte om på pekerne til hvert element i hver rad Mye mer arbeid, vanskeligere kode, langsommere 24
25 public static void sorter(string [] a) { // Sorterer String-arrayen 'a'. for (int k = 0 ; k < a.length-1; k++) { String t = a[k + 1]; int i = k; while (i >= 0 && ( a[i].compareto(t) > 0) ){ a[i + 1] = a[i]; i--; a[i + 1] = t; // end String-sortering public static void sorteretterkol1(string [] [] a) { // Sorterer den 2-dim String-arrayen 'a ettter verdi i kol.1. for (int k = 0 ; k < a.length-1; k++) { String [] trad = a[k + 1]; int i = k; while (i >= 0 && ( a[i][0].compareto(trad[0]) > 0) ){ a[i + 1] = a[i]; i--; a[i + 1] = trad; // end 2-dim String-sortering
26 M:\INF1000\prog2>java InnstikkSortering b[0]= 1 b[1]= 2 b[2]= 3 b[3]= 7 b[4]= 14 b[5]= 77 b[6]= 156 Alle sorterings metodene skrevet Test tekst-sortering: navn[0]= Arne navn[1]= Jo navn[2]= Kari navn[3]= Ola Test 2dim tekst-sortering: telefonliste[0]= Arne, med tlf.: telefonliste[1]= Jo, med tlf.: telefonliste[2]= Kari, med tlf.: telefonliste[3]= Per, med tlf.:
27 Javadoc proff dokumentasjon av klassene Legg inn spesielle kommentarer i programmet ditt (over hver metode og klasse) Kjør programmet javadoc som automatisk genererer en oversiktlig dokumentasjon 27
28 /** Klasse for sortering etter 'innstikk-metoden', se Rett på Java - kap.5.7. Sortering av heltallsarray, tekster og en to-dimensjonal tekst-array sortert etter verdiene i første kolonne.<br> N.B. Bare velegnet for mindre enn 100 elementer. * Copyright : A.Maus, Univ. i Oslo, 2003 **********************************************************/ public class ISort { /** Sorterer heltall i stigende a heltallsarrayen som sorteres * Endrer parameter-arrayen. ********************************************/ public static void sorter(int [] a) { /** * Sorterer String-arrayer i stigende leksikografisk a arrayen som sorteres * Endrer parameter-arrayen ********************************************/ public static void sorter(string [] a) { /** * Sorterer en to-dimensjonale String-array * etter verdiene i første kolonne. * Nytter pekerombytting av radpekerne. * Antar at alle radene har minst ett element a en to-dimensjonal array som sorteres * Endrer parameter-arrayen. ******************************************************/ public static void sorteretterkol1(string [] [] a) { // end class ISort
29 Dokumentasjon av klassen og metodene -javadoc >javadoc ISort.java Loading source file ISort.java... Constructing Javadoc information... Standard Doclet version Generating constant-values.html... Building tree for all the packages and classes... Building index for all the packages and classes... Generating overview-tree.html... Generating index-all.html... Generating deprecated-list.html... Building index for all classes... Generating allclasses-frame.html... Generating allclasses-noframe.html... Generating index.html... Generating packages.html... Generating ISort.html... Generating package-list... Generating help-doc.html... Generating stylesheet.css... 29
30
31
32 Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene Hovedformålet med eksamen er å skille ut de som har skjønt litt om programmering fra de som ikke har skjønt noe For de som har løst de obligatoriske oppgavene uten mye hjelp, bør eksamen være ganske enkel 32
33 Eksamen høsten 2003 I dag tar vi oppgave 1 Resten av oppgavesettet gjennomgås på gruppene denne uka 33
34 Oppgave 1.1 Hvilke utsagn er riktige om en variabel deklarert i en objektmetode? Før vi foretar en tilordning til variabelen har den ingen verdi Den kan ha en aksessmodifikator (f eks private eller public) Andre objektmetoder i samme klasse har tilgang (aksess) til variabelen Objektmetoder i andre klasser har tilgang (aksess) til den via prikk-notasjon 34
35 Oppgave 1.1 vurderinger NB! Les oppgaveteksten nøye!... i en objektmetode? Variable i metoder er alltid utilgjengelige utenfra. Derfor er det også uaktuelt med aksessmodifikator Som alle variable er metodevariable uten verdi i starten. De kan initieres ved deklarasjonen: int x = 0; eller ved en tilordning senere 35
36 Oppgave 1.1 svar Svaret på oppgave 1.1 er altså alternativ 1: Før vi foretar en tilordning til variabelen har den ingen verdi 36
37 Oppgave 1.2 Hvilke utsagn er riktige om en objektvariabel? Før vi foretar en tilordning har den ingen verdi Den kan ha en aksessmodifikator (f eks private eller public) Objektmetoder i samme klasse har tilgang (aksess) til variabelen Objektmetoder i andre klasser har tilgang (aksess) til den via prikk-notasjon dersom variabelen er deklarert som public 37
38 Oppgave 1.2 vurderinger Vi har følgende aksessmodifikatorer: Private: skjult for alle andre klasser Protected: skjult for alle andre klasser (unntatt subklasser) kun tilgjengelig for klasser i samme pakke public åpen for alle Dere vet ikke hva pakker og subklasser er; det kommer i INF1010 Dere trenger bare å vite: private skjult public åpen 38
39 Oppgave 1.2 svar Svaret på oppgave 1.2 er da alle alternativene 1, 2, 3, 4 39
40 Oppgave 1.3 Hvor mange heltall settes det av plass til (array-lengde) i setningen int[] tallene = new int[100]; Alternativer: 99, 100, 101 heltall Svar: 100 heltall 40
41 Oppgave 1.4 Hvor mange ganger skrives Eksamen ut? for (int i = 0; i < 100; i++) { for (int j = 0; j < 99; j++) { System.out.println( Eksamen ); Svar: 100 * 99 = 9900 ganger 41
42 Oppgave 1.5 Hvor mange ganger skrives INF 1000 ut? for (int i = 0; i < 3; i++) { for (int j = 0; j <= i; j++) { System.out.println("INF 1000"); 42
43 Oppgave 1.5 svar i j , 1 2 0, 1, 2 Svar: 6 ganger 43
44 Oppgave 1.6 Hvilken verdi har alder etter denne koden? int alder = 4; int nyalder = alder--; // A alder += nyalder; // B alder++; // C 44
45 Oppgave 1.6 svar Utskrift alder nyalder A B C Svar: alder har verdien 8 etter at alle setningene er utført 45
46 Oppgave 1.7 Anta at vi har et program hvor en av klassene blant annet har følgende objektvariabeldeklarasjon: HashMap personer = new HashMap(); Klassen inneholder blant annet metoder for å legge inn objekter av klassen Person (med en passende nøkkel, f eks personnummer) i HashMap-en og for å løpe gjennom alle Person-objektene i HashMapen. Sistnevnte metode, som skal kalle på en metode SkrivUt() i hvert av objektene i HashMap-en, ser slik ut: void skrivalle () { Iterator liste = personer.values().iterator(); while (liste.hasnext()) {... b.skrivut(); 46
47 Oppgave 1.7 Innholdet i while-løkken ovenfor er ikke ferdig utfylt. Hvilke(t) av følgende alternativer kan vi erstatte... med slik at metoden virker slik den skal? Person b = it.next(); Person b = (Person)it.next(); Person b = liste.next(); Person b = (Person)liste.next(); Bil b = (Bil)it.next(); Ingen av alternativene ovenfor 47
48 Oppgave 1.7 vurderinger NB! En del spørsmål vil være formet slik at de sjekker forståelse. Målet er at de som kopierer blindt fra læreboken eller lysark, skal tabbe seg ut De fleste eksemplene kaller iteratoren for it, men i dette eksemplet heter den liste Determange eksemplermed Bil i læreboken, men de har ingenting med dette eksemplet å gjøre Derimot demonstrerer eksemplene at man må typekonvertere når man bruker en iterator 48
49 Oppgave 1.7 svar Svaret på oppgave 1.7 blir da alternativ 4: Person b = (Person)liste.next(); 49
50 Oppgave 1.8 Hva skrives ut? int i = 11; int j = i; int k = 32; j er 11, j*i er 121 if (k > j * i k < i) { System.out.println("A"); else { if (k < j * i && k > i) { System.out.println("B"); else { System.out.println("C"); Svar: B 32 > 121 er false 32 < 11 er false 32 < 121 er true 32 > 11 er true 50
51 Oppgave 1.9 Hvordan beregne summen av tallene i a? int[] a = new int[77]; int sum = 0; 51
52 Oppgave 1.9 svar int i = 0; while (i < a.length) { sum = a[i]; i++; int i = 0; while (i < a.length) { sum += a[i]; ++j; int i = 0; while (i < a.length) { sum += a[i]; i++; Feil sum, får sum = a[76] Feil sum, evig løkke, sum = a[0]+a[0]+ JA riktig sum int i = 0; while (i++ < a.length) { sum += a[i-1]; JA riktig sum 52
53 Oppgave 1.9 svar for (int i = 0; i < a.length; i++) { sum += a[i]; JA riktig sum for (int i = 1; i <= a.length; i++) { sum += a[i-1]; JA riktig sum for (int i = 0; i < a.length; ++i) { sum = sum + a[i]; JA riktig sum 53
54 Oppgave 1.10 Hvilken verdi får k? int i = 11; int k = i/3; Alternativer: 3, 3.67, 4, ingen av alt. Svar: k blir 3 (heltallsdivisjon) 54
55 Oppgave 1.11 Hva blir k? Alternativer: 12, 24, 6 void dobleverdi(int k) { k = k * 2; Svar: 12 (ikke retur) int k = 12 dobleverdi(k) System.out.println( Verdien til k er + k); 55
56 Oppgave 1.12 Anta at følgende program utføres: class Studentregister { public static void main (String[] arg) { Student s = new Student("Ole", "Karl Johans gt 1"); Student p = new Student("Marit","Karl Johans gt 2"); System.out.println(s.fåNavn()+" og "+p.fånavn()); class Student { String navn = "Grete"; String adresse = "Blindernveien 3"; Student (String navn, String adresse) { this.navn = navn; this.adresse = adresse; String fånavn () {return navn; 56
57 Oppgave 1.12 Hva blir utskriften på skjermen? Grete og Grete Ole og Ole Marit og Marit navn og navn Ole og Marit s.fånavn() og s.fånavn() Marit og Ole Ingen av alternativene over 57
58 Oppgave 1.12 vurderinger Det er ingen klassevariable (angitt med static) i denne oppgaven, kun vanlige objektvariable Deklarasjonene String navn = "Grete"; String adresse = "Blindernveien 3"; utføres først hver gang et nytt objekt lages, men overskrives så av det som skjer i konstruktøren: Student (String navn, String adresse) { this.navn = navn; this.adresse = adresse; Metoden fånavn er en vanlig objektmetode og utføres inne i det objektet som angis i kallet: s.fånavn() og p.fånavn() 58
59 Oppgave 1.12 svar Det riktige svaret på oppgave 1.12 blir da alternativ 5: Ole og Marit 59
60 Resten av oppgavesettet blir gjennomgått på gruppene 60
( & ( &/ 2& , )-. &* &/ ),* 0, &/ 2 ) *
! " ##$ % "&& ' ( & % )* +, )-. &* &/ ),* 0, 1 1 ( &/ 2& 2 &/ 2 ) * ', 0, 4 2, &/ &, & &/ &,, &/" 3 class C { int skrivantall(int i){ System.out.println(" Du har kalt meg med:" + i); return i+10; }} class
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Fredag 5. desember 2003 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler :
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
Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7
Gjennomgang prøveeksamen 2014 oppgave 1, 2, 4, 5, 7 1a: Hva er verdien til tall etter at følgende kode er utført: 17 int tall = 5; tall = (tall*3) + 2; 5 15 17 1b: Anta at følgende programsetninger utføres.
UNIVERSITETET I OSLO
Kandidatnummer: Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1000 Grunnkurs i objektorientert programmering Prøveeksamensdag : Onsdag 12. november 2014 Tid
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
INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012
INF1000 - Uke 10 Løsningsforslag ukesoppgaver 10 24. oktober 2012 Løsningsforlag Oppgave 1 Array vs. HashMap a) Følgende program viser et enkelt banksystem med en array kontoer[], og metoder for å finne
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
Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011) HashMap, innstikksortering, javadoc (kap. 9.1-9.11, m.m. i "Rett på Java" 3. utg.) NB! Legg merke til at disse er løsningsforslag. Løsningene
INF1010 våren januar. Objektorientering i Java
INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort
IN1010 våren januar. Objektorientering i Java
IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som
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];
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
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
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
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 :
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
Innhold. INF1000 (Uke 12) Sortering og eksamensoppgaver. Oversikt II. Oversikt I. Om sortering. Litt om dokumentasjon av kode. Deler av eksamen H03
Innhold INF1000 (Uke 12) Sortering og eksmensoppgver Om sortering Sortering v heltll og tekster Litt om dokumentsjon v kode Grunnkurs i progrmmering Institutt for Informtikk Universitet i Oslo Deler v
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
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
Gjennomgang av eksamen H99
Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares
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,
To måter å programmere på. Java 12. Programmering med objekter. Statisk programmering
INF 101-10. mars 2003 Mer om klasser og objekter Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 12 To måter å programmere på Statisk programmering:
INF1010 Sortering. Marit Nybakken 1. mars 2004
INF1010 Sortering Marit Nybakken [email protected] 1. mars 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
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
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
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
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
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
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
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
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.
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
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
Løsningsforslag til eksamen i INF1000 våren 2006
Løsningsforslag til eksamen i INF1000 våren 2006 Oppgave 1 a) -1 false 7 b) 30 c) Verdien til j er: 4Verdien til k er: 3Verdien til n er: 7 d) Andre if-test er true Tredje if-test er true e) k = 4 k =
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
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
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
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:
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
Hva er en metode? INF1000 Forelesning 8. Hva skjer når vi kaller en metode? Hvorfor bruke metoder?
Hva er en metode? INF1000 Forelesning 8 Litt repetisjon: Metoder og klasser Innkapsling av variable og metoder Hvordan gripe an et stort problem? 5 gode råd En metode er en valgfritt antall programsetninger
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
INF 1000 Prøveeksamen. 23. november Ole Christian og Arne. Oppgave 1 (10 poeng) Er disse programsetningene lovlige i Java? Oppgave 2 (10 poeng)
Oppgave 1 (1 poeng) Er disse programsetningene lovlige i Java? INF 1 Prøveeksamen 3. november 6 Ole Christian og Arne x int i, j = i+1; x int j=3, while(j-->) i = j; x int[]int[] int = new int[8]int[9];
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
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 =
Forelesning inf Java 5
Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen
Forelesning inf Java 5
Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program
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.
Oppgave 1 - Kortsvarsoppgave. INF1000 eksamen V05. Oppgave 1 (c) Oppgave 1 (b) Svar: a = 9, b=10
Oppgave 1 - Kortsvarsoppgave (a) INF1000 eksamen V05 class SkrivHei { public static void main (String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 2; j ++) { i = i + 4; System.out.println("hei");
Oblig4 - forklaringer. Arne og Ole Christian
Oblig4 - forklaringer Arne og Ole Christian Struktur og alle (?) klassene import easyio.*; import java.util.*; class Oblig4 { public static void main (String[] args) { String s1 = "Stasjoner-1.txt"; String
Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO
Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier 11. okt. 2011 Siri Moe Jensen Inst. for informatikk, UiO 1 Innhold Eksamen INF1000 Høst 2011: Oppgave 4-7 Tekstmanipulering Metoder med og uten
Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.
Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i: INF2440 Effektiv parallellprogrammering Prøveeksamensdag: 1. juni 2016 Tidspunkter: 09.00 16.00 Oppgavesettet er på: 4 sider
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
Hva er en metode. Hva skjer når vi kaller en metode
Hva er en metode Uke 9 - Repetisjon av metoder, klasser og objekter Innkapsling: private og public Statisk programmering vs. programmering med objeker 18 okt. 2005, Arild Waaler Inst. for informatikk,
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
Introduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder
6108 Programmering i Java Leksjon 6 Objekt Del 2: 6.4 6.5 Roy M. Istad 2015 Generelt oppsett av egendefinert klasse Eks: Student Evt. importsetninger public class Klasse { Objektvariabler - instansvariabler
UNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet er på
Inf1000 (Uke 10) HashMap og ArrayList
Inf1000 (Uke 10) HashMap og ArrayList Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Bibliotekpakker i Java Det er laget mange
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
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.
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:
UNIVERSITETET I OSLO
Kandidatnummer: Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1000 Grunnkurs i objektorientert programmering Prøveeksamensdag : Tirsdag 10. november 2015 Tid
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
INF1000 (Uke 6) Mer om metoder, tekster
INF1000 (Uke 6) Mer om metoder, tekster Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Rep: Metoder Java-programmene så langt
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:
Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag
Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 8 Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag Fredag 10. desember
Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen ([email protected]) Tuva Kristine Thoresen ([email protected]) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator
Litt mer om løkker Arrayer le Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i slo Java Repetisjon: operatorene ++ og -- Instruksjon i = i + i = i - Alternativ Prefiks-operator
