Løsningsforslag, inf101, våren 2001
|
|
|
- Marcus Mikkelsen
- 8 år siden
- Visninger:
Transkript
1 Løsningsforslag, inf101, våren 2001 Anders Brunland Oppgave 1 (15%) a) Navn på søker trenger ikke være med i sak-objektet siden den kan hentes fra det første dokumentet i saken. Variabelen FRIST er strengt tatt ikke en objektvariabel siden den er gjort statisk. Dermed blir variablene som følger: 4 class Sak { 5 6 static int FRIST = 90; // Ant. dager for behandling 7 String saksnavn; // Entydig saksnavn 8 Dokument sdok; // 1. dok. i saken. 9 int regdato; // Dato for sak 10 int behandlingsfrist; // Dato for frist 11 int avslutningsdato = 0; // Faktisk avslutningsdato 12 Behandler sbehandler; // siste saksbehandler 13 HashMap behandlere = new HashMap(); // alle saksbehandlere 14 HashMap dokumenter = new HashMap(); // alle dokumenter b) I tillegg til en sak-klasse trengs en klasse som representerer saksbehandler, en klasse som representerer dokumenter, og tilsist en klasse som styrer det hele. 3 class Behandler { 4 5 final static int maxantsaker = 10; // Max ant. saker for en saksbehandler 6 String navn; // Navn til saksbehandler 7 Sak[] saker = new Sak[maxAntSaker]; // Saker under behandling 8 int antsaker = 0; // Antall saker under behandling 9 int totantsaker = 0; // Totalt ant. behandlede saker 10 HashMap tidligeresaker = new HashMap(); // Liste med behandlede saker 1
2 4 class Dokument { 5 6 String filnavn; // Filnavn til dokument 7 int innkommendato; // Inkommen dato for dokument 8 String avsender; 9 String adressat; 10 String saksnavn; / Entydig, samsvarer med sak. Settes idet en sak 11 blir tildelt dette dokumentet. 12 / 4 class Register { 5 6 HashMap saker = new HashMap(); // alle saker 7 HashMap behandlere = new HashMap(); // alle ansatte 8 HashMap dokumenter = new HashMap(); // alle dokumenter c) Ett objekt av klassen Register, flere objekter av de andre klassene. Oppgave 2 (10%) Det er to forhold det er naturlig å representere med en array (siden disse er faste størrelser). Forholdene er: i) Register - Ansatte. I teksten er det oppgitt at det er seks ansatte på kontoret. ii) Saksbehandler - saker under behandling. En saksbehanlder kan maksimalt ha ti saker under behandling. I dette løsningsforslaget er det forholdet mellom saksbehandler og saker under behandling som er representert med en array. Det gir følgende klasse/objekt diagram ( på neste side): 2
3 3
4 Oppgave 3 (10%) Sak: 18 Sak(Dokument sdok, Behandler b) { saksnavn = nyttsaksnavn(); 21 this.sdok = sdok; 22 regdok(sdok); 23 regdato = idag(); 24 behandlingsfrist = leggtildager(frist); 25 sbehandler = b; 26 sbehandler.registrersak(this); 27 behandlere.put(sbehandler.getnavn(), sbehandler); 28 System.out.println("Saksnavn: " + getsaksnavn()); 29 } Dokumenter: 14 Dokument(String navn) { 15 filnavn = navn; 16 // evt. lese resten av objektvariablene fra filen. 17 } Behandler: 12 Behandler(String navn) { 13 this.navn = navn; 14 } Register: Inneholder kommandoløkka som driver programmet. 23 Register() { 24 int valg = 0; // Les ansatte og saker fra fil. 27 behandlerefrafil(); 28 sakerfrafil(); do { 31 meny(); 32 System.out.print("Ditt valg: "); 33 valg = stdin.inint (); switch (valg) { // Fra oppgave 5: 38 case 1: nysak(); break; 39 case 2: nyttdok(finnsak()); break; 4
5 40 case 3: skiftbehandler(); break; 41 case 4: avsluttsak(); break; 42 case 5: status (); break; // Fra oppgave 6: 45 case 6: snitt (); break; 46 case 7: oversikt (); break; // Fra oppgave 7: 49 case 8: overskridelser(); break; case 9: System.out.println("Takk for denne gang."); break; 52 default : System.out.println("Ukjent valg"); break; } } while (valg!= 5); // end do while } Oppgave 4 (15%) a) I klassen Register: 91 void behandleretilfil() { 92 Ut fut = new Ut(filBehandlere); 93 Behandler b; Iterator i = behandlere.values().iterator(); 96 while (i.hasnext()) { 97 b = (Behandler) i.next(); 98 fut.outstringln(b.getnavn()); 99 } fut.close (); 102 } 106 void behandlerefrafil() { 107 String navn; Inn fin = new Inn(filBehandlere); 110 while (!fin.endoffile()) { 111 navn = fin.instringln(); 112 behandlere.put(navn, new Behandler(navn)); 113 } 114 } 5
6 Hjelpemetode i Behandler 18 String getnavn() { 19 return navn; 20 } b) I klassen Register: 118 void sakerfrafil() { 119 Inn fin = new Inn(filSak); int antsaker = fin.inint(); 122 for (int i = 0; i < antsaker; i++) { 123 new Sak(fin, saker, behandlere, dokumenter); 124 } 125 } Og i klassen Behandler: 25 void registrersak(sak s) { 26 saker[antsaker++] = s; 27 totantsaker++; 28 } Ny konstruktør for klassen Sak: 34 Sak(Inn infil, HashMap allesaker, HashMap allebehandlere, 35 HashMap alledokumenter) { saksnavn = infil.instringln(); 38 regdato = infil.inint (); 39 avslutningsdato = infil.inint(); 40 int antdok = infil.inint (); 41 Dokument d; for (int i = 0; i < antdok; i++) { 44 d=new Dokument(infil, alledokumenter); 45 } int antbehandlere = infil.inint(); // Les 1. behandler: 50 String navn = infil. instringln(); 51 sbehandler = (Behandler) allebehandlere.get(navn); 52 sbehandler.registrersak(this); 53 behandlere.put(sbehandler.getnavn(), sbehandler); // Les de andre behandlerne. Begynner tellingen fra 1 siden 56 // en behandler allerede er registrert. 57 for (int i = 1; i < antbehandlere; i++) { 6
7 58 navn = infil.instringln(); // Legg merke til at casting til Behandler ikke er trengs 61 // siden en HashMap tar Object som argument. Ny konstruktør for klassen Dokument (ikke skrevet, i henhold til oppgaveteksten): 19 Dokument(Inn frafil, HashMap alledokumenter) { 20 // leser fra fil og legger seg inn i listen over alle dokumenter. 21 } Oppgave 5 (20%) a) I klassen Register: 132 void nysak() { 133 Behandler behandler = null; 134 Behandler tmp; 135 String filnavn; 136 Dokument dok; 137 Sak sak; // Finner en ledig behandler. 140 int minst = Behandler.maxAntSaker; 141 Iterator it = behandlere.values().iterator(); 142 while (it.hasnext()) { 143 tmp = (Behandler) it.next(); 144 if ( tmp.antsaker() < minst) { 145 behandler = tmp; 146 minst = behandler.antsaker(); 147 } 148 } // Hvis ingen saksbehandlere er ledig avsluttes metoden, 151 // og saken avvises. 152 if ( minst == Behandler.maxAntSaker) { 153 System.out.println("Beklager ingen ledige saksbehandlere."); return; 156 } // Filnavn: 159 System.out.print("Filnavn?: "); 160 filnavn = stdin.instringln(); 161 dok = new Dokument(filnavn); 162 dokumenter.put(filnavn, dok); 7
8 // Lager ny sak. 165 sak = new Sak(dok, behandler); 166 saker.put(sak.getsaksnavn(), sak); } I klassen Behandler: 25 void registrersak(sak s) { 26 saker[antsaker++] = s; 27 totantsaker++; 28 } I klassen Sak: 70 void regdok(dokument d) { 71 d.settsaksnavn(saksnavn); 72 dokumenter.put(d.getnavn(), d); 73 } Og, til slutt, i klassen Dokument: 23 void settsaksnavn(string snavn) { 24 saksnavn = snavn; 25 } b) I klassen Sak benyttes metoden regdok(dokument d) fra oppgave 5a, på denne siden. I klassen Register: 172 // Returnerer peker til dokumentet som blir registrert. Dette benyttes 173 // i metoden avsluttsak. 174 Dokument nyttdok(sak sak) { 175 String doknavn; 176 Dokument dok; 177 Behandler behandler; if (sak ==null) { 180 return null; 181 } System.out.print("Filnavn til dokument: "); 184 doknavn = stdin.instringln(); dok = new Dokument(doknavn); 187 dokumenter.put(doknavn, dok); sak.regdok(dok); return dok; 8
9 } c) I klassen Register: 197 void skiftbehandler() { 198 Behandler b; 199 Sak sak = finnsak(); if (sak ==null) { 202 return; 203 } System.out.print("Ny saksbehandlers navn: "); 206 b = (Behandler) behandlere.get(stdin.instringln()); // Sjekker mot diverse ulovligheter og avbryter evt. metoden (med 209 // return) if (b == null) { 212 System.out.println("Finnes ikke i listen over saksbehandlere."); return; } else if (b.antsaker() == Behandler.maxAntSaker) { 217 System.out.println("Saksbehandler har allerede " Behandler.maxAntSaker " saker til behandling."); 220 return; } else if ( sak.harbehandler(b)) { 223 System.out.println("Saksbehandleren har allerede behandlet saken."); return; } //... slik at her har vi en sak som kan skifte til 230 // saksbehandler b. 231 sak.skiftbehandler(b); 232 } 372 Sak finnsak() { System.out.print("Sak nr: "); 375 Sak sak = (Sak) saker.get(stdin.instringln()); 376 if (sak ==null) { 9
10 377 // Ikke en del av oppgaven, men mye lettere under 378 // testing av programmet. 379 System.out.println("Ukjent saksnummer. Registrerte saker:"); Iterator i = saker.values().iterator (); 382 while (i.hasnext()) { 383 System.out.println(((Sak) i.next()).getsaksnavn()); 384 } return null; } return sak; } I klassen Sak: 80 sbehandler.fjernsak(this); 81 } sbehandler = nybehandler; 84 behandlere.put(sbehandler.getnavn(), sbehandler); 85 sbehandler.registrersak(this); 86 } Og i klassen Behandler benyttes metoden registrersak(sak s), på side 8, samt: 33 // Fjerner sak og rydder i arrayet slik at saker[antsaker] er ledig. 34 void fjernsak(sak s) { 35 for (int i = 0; i < antsaker; i++) { 36 if (saker[i] == s) { 37 tidligeresaker.put(saker[i].getsaksnavn(), saker[i]); 38 saker[i] = saker[antsaker 1]; 39 i = antsaker; // Avbryter 40 } 41 } antsaker ; 44 } d) I klassen Register, i tillegg til finnsak() metoden ( på forrige side) og metoden nyttdok() ( på side 8): 236 void avsluttsak() { 237 Dokument avsldok; 238 Sak sak; 10
11 239 // En avsluttet sak skal ha et avslutningsdokument. Bruker metoden 240 // fra oppgave 5b sak = finnsak(); 243 if (sak ==null) { return; 246 } System.out.println("Registrerer avslutningsdokument"); 249 avsldok = nyttdok(sak); if (avsldok==null) { 252 System.out.println("Kan ikke avslutte uten avslutningsdokument"); return; 255 } sak.avslutt(); 258 } I klassen Sak: 90 void avslutt() { 91 avslutningsdato = idag(); 92 sbehandler.fjernsak(this); 93 } Og metoden fjernsak(sak s) i klassen Behandler (se side 10). Oppgave 6 (25%) a) I klassen Register: Metoden finnsak(), på side 9, samt: 264 // Oppgave 6a 265 void status() { 266 Sak sak = finnsak(); 267 if (sak ==null) { return; 270 } sak.status(); 273 } I klassen Sak: 90 void avslutt() { 91 avslutningsdato = idag(); 11
12 92 sbehandler.fjernsak(this); 93 } // Oppgave 6a 96 void status() { // Dokumenter 99 System.out.println("Dokumenter i saken:"); 100 Dokument dok; 101 Iterator it = dokumenter.values().iterator(); 102 while (it.hasnext()) { 103 dok = (Dokument) it.next(); 104 System.out.println("\t " + dok.getnavn()); 105 } // Saksbehandlere 108 System.out.println("Saksbehandlere i saken:"); 109 Behandler b; 110 it = behandlere.values().iterator(); 111 while(it.hasnext()) { 112 b = (Behandler) it.next(); 113 System.out.println("\t " + b.getnavn()); 114 } // Avsluttet ( eller ikke) 117 System.out.println("Saken er" + I Dokument: 27 String getnavn() { 28 return filnavn; 29 } I Behandler: 18 String getnavn() { 19 return navn; 20 } Oppgave 7 (15%) I klassen Register: 341 int antdagsverkigjen() { 342 double snitttid = snitt(); 343 double estimert = 0; 344 int saktid; Sak sak;
13 348 Iterator it = saker.values().iterator (); 349 while (it.hasnext()) { 350 sak = (Sak) it.next(); if (! sak.eravsluttet()) { 353 saktid = sak.behandlingstid(); if ( saktid < snitttid ) { 356 estimert += snitttid; 357 } else { 358 estimert += (1.5 saktid); 359 } } } return (int) estimert; } I Sak 127 int behandlingstid() { 128 return eravsluttet()? 129 dagermellom(regdato, avslutningsdato) : 130 dagermellom(regdato, idag()); 131 } 139 boolean eravsluttet() { 140 return avslutningsdato == 0; 141 } 13
14 Kildekode Register 1 import java.util. ; 2 import inf101. ; 3 4 class Register { 5 6 HashMap saker = new HashMap(); // alle saker 7 HashMap behandlere = new HashMap(); // alle ansatte 8 HashMap dokumenter = new HashMap(); // alle dokumenter 9 10 String filbehandlere = "ansatt.dat"; // filnavn 11 String filsak = "saker.dat"; // filnavn 12 Inn stdin = new Inn(); / Deklarert og definert her. Brukes i flere 13 metoder for inn og ut lesing. 14 / public static void main(string[] args) { 18 new Register(); 19 } // Constructor 23 Register() { 24 int valg = 0; // Les ansatte og saker fra fil. 27 behandlerefrafil(); 28 sakerfrafil(); do { 31 meny(); 32 System.out.print("Ditt valg: "); 33 valg = stdin.inint (); switch (valg) { // Fra oppgave 5: 38 case 1: nysak(); break; 39 case 2: nyttdok(finnsak()); break; 40 case 3: skiftbehandler(); break; 41 case 4: avsluttsak(); break; 42 case 5: status (); break; // Fra oppgave 6: 45 case 6: snitt (); break; 14
15 46 case 7: oversikt (); break; // Fra oppgave 7: 49 case 8: overskridelser(); break; case 9: System.out.println("Takk for denne gang."); break; 52 default : System.out.println("Ukjent valg"); break; } } while (valg!= 5); // end do while } void meny() { // Fra oppgave 5: 64 System.out.println(" MENY "); 65 System.out.println(""); 66 System.out.println("1: Legg inn ny sak"); 67 System.out.println("2: Legg til nytt dokument til sak"); 68 System.out.println("3: Skift saksbehandler til sak"); 69 System.out.println("4: Avslutte en sak"); // Fra oppgave 6: 72 System.out.println("5: Skriv ut status for sak"); 73 System.out.println("6: Gjennomsnittlig behandlingstid for avsluttede saker,"); 74 System.out.println(" og korteste behandlingstid."); 75 System.out.println("7: Oversikt over saksbehandlere og saker"); // Fra oppgave 7: 78 System.out.println("8: Oversikt over saker som har overskridet fristen"); 79 System.out.println("9: Avslutte programmet."); 80 System.out.println(""); 81 System.out.println(" "); 82 } / 86 OPPGAVE 4 87 / // Oppgave 4a 91 void behandleretilfil() { 92 Ut fut = new Ut(filBehandlere); 93 Behandler b; 94 15
16 95 Iterator i = behandlere.values().iterator(); 96 while (i.hasnext()) { 97 b = (Behandler) i.next(); 98 fut.outstringln(b.getnavn()); 99 } fut.close (); 102 } // Oppgave 4a 106 void behandlerefrafil() { 107 String navn; Inn fin = new Inn(filBehandlere); 110 while (!fin.endoffile()) { 111 navn = fin.instringln(); 112 behandlere.put(navn, new Behandler(navn)); 113 } 114 } // Oppgave 4b 118 void sakerfrafil() { 119 Inn fin = new Inn(filSak); int antsaker = fin.inint(); 122 for (int i = 0; i < antsaker; i++) { 123 new Sak(fin, saker, behandlere, dokumenter); 124 } 125 } / 128 OPPGAVE / // Oppgave 5a. 132 void nysak() { 133 Behandler behandler = null; 134 Behandler tmp; 135 String filnavn; 136 Dokument dok; 137 Sak sak; // Finner en ledig behandler. 140 int minst = Behandler.maxAntSaker; 141 Iterator it = behandlere.values().iterator(); 142 while (it.hasnext()) { 143 tmp = (Behandler) it.next(); 16
17 144 if ( tmp.antsaker() < minst) { 145 behandler = tmp; 146 minst = behandler.antsaker(); 147 } 148 } // Hvis ingen saksbehandlere er ledig avsluttes metoden, 151 // og saken avvises. 152 if ( minst == Behandler.maxAntSaker) { 153 System.out.println("Beklager ingen ledige saksbehandlere."); return; 156 } // Filnavn: 159 System.out.print("Filnavn?: "); 160 filnavn = stdin.instringln(); 161 dok = new Dokument(filnavn); 162 dokumenter.put(filnavn, dok); // Lager ny sak. 165 sak = new Sak(dok, behandler); 166 saker.put(sak.getsaksnavn(), sak); } // Oppgave 5b 172 // Returnerer peker til dokumentet som blir registrert. Dette benyttes 173 // i metoden avsluttsak. 174 Dokument nyttdok(sak sak) { 175 String doknavn; 176 Dokument dok; 177 Behandler behandler; if (sak ==null) { 180 return null; 181 } System.out.print("Filnavn til dokument: "); 184 doknavn = stdin.instringln(); dok = new Dokument(doknavn); 187 dokumenter.put(doknavn, dok); sak.regdok(dok); return dok;
18 193 } // Oppgave 5c 197 void skiftbehandler() { 198 Behandler b; 199 Sak sak = finnsak(); if (sak ==null) { 202 return; 203 } System.out.print("Ny saksbehandlers navn: "); 206 b = (Behandler) behandlere.get(stdin.instringln()); // Sjekker mot diverse ulovligheter og avbryter evt. metoden (med 209 // return) if (b == null) { 212 System.out.println("Finnes ikke i listen over saksbehandlere."); return; } else if (b.antsaker() == Behandler.maxAntSaker) { 217 System.out.println("Saksbehandler har allerede " Behandler.maxAntSaker " saker til behandling."); 220 return; } else if ( sak.harbehandler(b)) { 223 System.out.println("Saksbehandleren har allerede behandlet saken."); return; } //... slik at her har vi en sak som kan skifte til 230 // saksbehandler b. 231 sak.skiftbehandler(b); 232 } // Oppgave 5d 236 void avsluttsak() { 237 Dokument avsldok; 238 Sak sak; 239 // En avsluttet sak skal ha et avslutningsdokument. Bruker metoden 240 // fra oppgave 5b
19 242 sak = finnsak(); 243 if (sak ==null) { return; 246 } System.out.println("Registrerer avslutningsdokument"); 249 avsldok = nyttdok(sak); if (avsldok==null) { 252 System.out.println("Kan ikke avslutte uten avslutningsdokument"); return; 255 } sak.avslutt(); 258 } / 261 OPPGAVE / // Oppgave 6a 265 void status() { 266 Sak sak = finnsak(); 267 if (sak ==null) { return; 270 } sak.status(); 273 } // Oppgave 6b og 6d 277 / 278 Returnerer gjennomsnittlig behandlingstid (for bruk i oppgave 7) 279 / 280 double snitt() { 281 int totantdager = 0; 282 int minst = Integer.MAX_VALUE; 283 int antavslsaker = 0; 284 int tid ; 285 Sak sak; Iterator it = saker.values().iterator (); 288 while (it.hasnext()) { 289 sak = (Sak) it.next();
20 291 if ( sak.eravsluttet ()) { 292 totantdager += sak.behandlingstid(); 293 antavslsaker++; if ( sak.behandlingstid() < minst) { 296 minst = sak.behandlingstid(); 297 } 298 } 299 } System.out.println("Gjennomsnittlig behandlingstid er" (totantdager/antavslsaker)); 303 System.out.println("Minste behandlingstid var " + minst); return totantdager/antavslsaker; 306 } // Oppgave 6c 310 // Tolker oppgaven dithen at det er saken som er avsluttet ikke 311 // saksbehandlerens behandling av den. 312 void oversikt() { 313 System.out.println("Saksbehandler \t\t Ant. saker"); 314 Iterator it = behandlere.values().iterator(); while (it.hasnext()) { 317 ((Behandler) it.next()).oversikt(); 318 } 319 } // Oppgave 6e 322 void overskridelser() { 323 System.out.println("Overskridelser:"); 324 System.out.println("Sak\t\tOverskridelse\t\tSaksbehandlere"); Sak sak; 327 Iterator it = saker.values().iterator (); while (it.hasnext()) { 330 sak = (Sak) it.next(); 331 sak.overskridelser(); 332 } 333 } / 337 OPPGAVE /
21 340 // Oppg int antdagsverkigjen() { 342 double snitttid = snitt(); 343 double estimert = 0; 344 int saktid; Sak sak; Iterator it = saker.values().iterator (); 349 while (it.hasnext()) { 350 sak = (Sak) it.next(); if (! sak.eravsluttet()) { 353 saktid = sak.behandlingstid(); if ( saktid < snitttid ) { 356 estimert += snitttid; 357 } else { 358 estimert += (1.5 saktid); 359 } } } return (int) estimert; } / 370 Hjelpemetode finner en sak utfra oppgitt saksnavn. 371 / 372 Sak finnsak() { System.out.print("Sak nr: "); 375 Sak sak = (Sak) saker.get(stdin.instringln()); 376 if (sak ==null) { 377 // Ikke en del av oppgaven, men mye lettere under 378 // testing av programmet. 379 System.out.println("Ukjent saksnummer. Registrerte saker:"); Iterator i = saker.values().iterator (); 382 while (i.hasnext()) { 383 System.out.println(((Sak) i.next()).getsaksnavn()); 384 } return null; } 21
22 return sak; } } 22
23 Sak 1 import java.util. ; 2 import inf101. ; 3 4 class Sak { 5 6 static int FRIST = 90; // Ant. dager for behandling 7 String saksnavn; // Entydig saksnavn 8 Dokument sdok; // 1. dok. i saken. 9 int regdato; // Dato for sak 10 int behandlingsfrist; // Dato for frist 11 int avslutningsdato = 0; // Faktisk avslutningsdato 12 Behandler sbehandler; // siste saksbehandler 13 HashMap behandlere = new HashMap(); // alle saksbehandlere 14 HashMap dokumenter = new HashMap(); // alle dokumenter // Constructor 18 Sak(Dokument sdok, Behandler b) { saksnavn = nyttsaksnavn(); 21 this.sdok = sdok; 22 regdok(sdok); 23 regdato = idag(); 24 behandlingsfrist = leggtildager(frist); 25 sbehandler = b; 26 sbehandler.registrersak(this); 27 behandlere.put(sbehandler.getnavn(), sbehandler); 28 System.out.println("Saksnavn: " + getsaksnavn()); 29 } // Oppgave 4 b 33 // Constructor ved innlesing fra fil 34 Sak(Inn infil, HashMap allesaker, HashMap allebehandlere, 35 HashMap alledokumenter) { saksnavn = infil.instringln(); 38 regdato = infil.inint (); 39 avslutningsdato = infil.inint(); 40 int antdok = infil.inint (); 41 Dokument d; for (int i = 0; i < antdok; i++) { 44 d=new Dokument(infil, alledokumenter); 45 } int antbehandlere = infil.inint(); 23
24 48 49 // Les 1. behandler: 50 String navn = infil. instringln(); 51 sbehandler = (Behandler) allebehandlere.get(navn); 52 sbehandler.registrersak(this); 53 behandlere.put(sbehandler.getnavn(), sbehandler); // Les de andre behandlerne. Begynner tellingen fra 1 siden 56 // en behandler allerede er registrert. 57 for (int i = 1; i < antbehandlere; i++) { 58 navn = infil.instringln(); // Legg merke til at casting til Behandler ikke er trengs 61 // siden en HashMap tar Object som argument. 62 behandlere.put(navn, allebehandlere.get(navn)); 63 // lar behandlere registrere at de har behandlet saken. 64 ((Behandler) behandlere.get(navn)).registrersak(this); 65 ((Behandler) behandlere.get(navn)).fjernsak(this); 66 } 67 } // Oppgave 5a og 5b 70 void regdok(dokument d) { 71 d.settsaksnavn(saksnavn); 72 dokumenter.put(d.getnavn(), d); 73 } // Oppgave 5c 77 void skiftbehandler(behandler nybehandler) { if ( sbehandler!= null) { 80 sbehandler.fjernsak(this); 81 } sbehandler = nybehandler; 84 behandlere.put(sbehandler.getnavn(), sbehandler); 85 sbehandler.registrersak(this); 86 } // Oppgave 5d 90 void avslutt() { 91 avslutningsdato = idag(); 92 sbehandler.fjernsak(this); 93 } // Oppgave 6a 96 void status() { 24
25 97 98 // Dokumenter 99 System.out.println("Dokumenter i saken:"); 100 Dokument dok; 101 Iterator it = dokumenter.values().iterator(); 102 while (it.hasnext()) { 103 dok = (Dokument) it.next(); 104 System.out.println("\t " + dok.getnavn()); 105 } // Saksbehandlere 108 System.out.println("Saksbehandlere i saken:"); 109 Behandler b; 110 it = behandlere.values().iterator(); 111 while(it.hasnext()) { 112 b = (Behandler) it.next(); 113 System.out.println("\t " + b.getnavn()); 114 } // Avsluttet ( eller ikke) 117 System.out.println("Saken er" (eravsluttet ()? " ikke " : " " ) "avsluttet." ); // Frist for avslutning 122 System.out.println("Fristen for avslutning: " + behandlingsfrist); 123 } // 6 B 127 int behandlingstid() { 128 return eravsluttet()? 129 dagermellom(regdato, avslutningsdato) : 130 dagermellom(regdato, idag()); 131 } boolean harbehandler(behandler b) { 135 return behandlere.containskey(b.getnavn()); 136 } boolean eravsluttet() { 140 return avslutningsdato == 0; 141 } void overskridelser() { 145 if ( behandlingstid() > FRIST) { 25
26 146 System.out.println(saksnavn + "\t\t" + behandlingstid()); 147 Behandler b; 148 Iterator it = behandlere.values().iterator(); 149 while (it.hasnext()) { 150 b = (Behandler) it.next(); 151 System.out.println("\t\t\t\t" + b.getnavn()); 152 } 153 } 154 } / 159 Hjelpemetoder 160 / String getsaksnavn() { 163 return saksnavn; 164 } / 169 Hjelpemetoder (fra Appendix) 170 / public static int idag() { 173 return ; 174 } public static int leggtildager(int d) { 177 return idag() + d; 178 } public static int dagermellom(int d1, int d2) { 181 return d2 d1; 182 } private static int unik = 0; 185 public static String nyttsaksnavn() { 186 unik++; 187 return "S01 " + unik; 188 } } 26
27 Behandler 1 import java.util. ; 2 3 class Behandler { 4 5 final static int maxantsaker = 10; // Max ant. saker for en saksbehandler 6 String navn; // Navn til saksbehandler 7 Sak[] saker = new Sak[maxAntSaker]; // Saker under behandling 8 int antsaker = 0; // Antall saker under behandling 9 int totantsaker = 0; // Totalt ant. behandlede saker 10 HashMap tidligeresaker = new HashMap(); // Liste med behandlede saker Behandler(String navn) { 13 this.navn = navn; 14 } // Oppgave 4 18 String getnavn() { 19 return navn; 20 } // Benyttes i oppgave 4b, 5a og 5c. 25 void registrersak(sak s) { 26 saker[antsaker++] = s; 27 totantsaker++; 28 } // Oppgave 5c og 5d 33 // Fjerner sak og rydder i arrayet slik at saker[antsaker] er ledig. 34 void fjernsak(sak s) { 35 for (int i = 0; i < antsaker; i++) { 36 if (saker[i] == s) { 37 tidligeresaker.put(saker[i].getsaksnavn(), saker[i]); 38 saker[i] = saker[antsaker 1]; 39 i = antsaker; // Avbryter 40 } 41 } antsaker ; 44 } // Oppgave 6) 27
28 48 void oversikt() { 49 int ant = 0; 50 Sak sak; Iterator it = tidligeresaker.values().iterator (); 53 while (it.hasnext()) { 54 sak = (Sak) it.next(); 55 if ( sak.eravsluttet ()) { 56 ant++; 57 } 58 } System.out.println(navn + "\t\t" + ant); 61 } / 65 Hjelpemetode 66 / 67 int antsaker() { 68 return antsaker; 69 } } 28
29 Dokument 1 import java.util. ; 2 import inf101. ; 3 4 class Dokument { 5 6 String filnavn; // Filnavn til dokument 7 int innkommendato; // Inkommen dato for dokument 8 String avsender; 9 String adressat; 10 String saksnavn; / Entydig, samsvarer med sak. Settes idet en sak 11 blir tildelt dette dokumentet. 12 / Dokument(String navn) { 15 filnavn = navn; 16 // evt. lese resten av objektvariablene fra filen. 17 } Dokument(Inn frafil, HashMap alledokumenter) { 20 // leser fra fil og legger seg inn i listen over alle dokumenter. 21 } void settsaksnavn(string snavn) { 24 saksnavn = snavn; 25 } String getnavn() { 28 return filnavn; 29 } } 29
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 =
Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag
Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 7 Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert
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");
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
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];
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
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
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
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
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
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
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
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 =
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
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
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 :
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
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
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
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 :
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
Oppgave01.java class Bongo { 2 public static void main(string[] args){ 3 int[][][]bongo = new int[2][3][4]; 4 5 // SVAR: 24 6 } 7 } 8
Oppgave0.java 07.0.2008 class Bongo { 2 public static void main(string[] args){ 3 int[][][]bongo = new int[2][3][4]; 4 5 // SVAR: 24 6 } 7 } 8 Oppgave02.java 07.0.2008 class Lovlige { 2 public static void
Løsningsforslag INF desember 2007
Løsningsforslag INF000 3 desember 2007 Oppgave Svar: 50 Oppgave2.java 3..2007 // Løsning til Oppgave 2 class Oppgave2 { public static void main(string[] args){ // Lovlig, men ikke med i oppgaven int i[],
(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
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
INF1000 Prøveeksamen Oppgave 7 og 9
INF1000 Prøveeksamen Oppgave 7 og 9 Høst 2015 Siri Moe Jensen 7a) Skriv en klasse Gave med to variabler som forteller hva som er i gaven, og hvor mye den har kostet. Klassen skal ha en konstruktør med
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
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];
INF1000 - Løsning på seminaropppgaver til uke 8
INF1000 - Løsning på seminaropppgaver til uke 8 Oppgave 1 a) for(string nokkel : studenter.keyset){ System.out.println(nokkel); Studenten sitt navn blir skrevet ut. b) for(student dennestudenten : studenter.values()){
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å
Løsningsforslag eksamen in105, høsten 2000
Løsningsforslag eksamen in105, høsten 2000 Det tas forbehold om mulige feil i løsningsforslaget. Oppgave 1 I klassen Bok velger vi her å ta med int antallutlån selv om denne ikke trengs før i oppgave 4.
TDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson
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
"Nelsons kaffebutikk"
"Nelsons kaffebutikk" et eksempel på systemutvikling med objekter Originale lysark av Jens Kaasbøll - mindre endringer av G. Skagestein og Knut Hegna IN105-javaNelson-1 Nelsons kaffebutikk Området som
Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang
Kom forberedt til tirsdag INF1000 Tips til obligatorisk oppgave 4 Kikk på prøveeksamen fra 2004 http://www.uio.no/studier/emner/matnat/ifi/inf1000/h 07/undervisningsmateriale/proveeksamen-H2004.pdf Tittel:
Objektorientert design av kode. Refaktorering.
Objektorientert design av kode. Refaktorering. DEL 2 INF1010-forelesning 9. mars Ragnhild Kobro Runde Kjennetegn på god design (fra INF1050) En god utforming gjør den jobben den er ment å gjøre. En god
UNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet LØSNINGSFORSLAG Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet
Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2
Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien
INF1000: Forelesning 4. Mer om arrayer Metoder
INF1000: Forelesning 4 Mer om arrayer Metoder MER OM ARRAYER 2 Array som en samling verdier Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene: String[] studenter = new String[500];
Oppgave 1 (Programtolkning) INF1000 Eksamen V06. Oppgave 1 (Programtolkning) Oppgave 1 (Programtolkning)
INF1000 Eksamen V06 1a: Hva blir skrevet ut når programmet nedenfor kjøres? class stringhåndtering{ public static void main (String[] args){ String s = "Lykke til på eksamen"; String t = "Eksamen"; System.out.println(s.indexOf(t));
PRØVEEKSAMEN (rettet versjon 27/11)
PRØVEEKSAMEN (rettet versjon 27/11) Eksamen i : INF1000 Grunnkurs i objektorientert programmering Eksamensdag : Onsdag 26 nov. 2003 Tid for eksamen : 1400-1700 Oppgavesettet er på : 13 sider Vedlegg :
Eksempel: Body Mass Index (BMI) Forelesning inf1000 - Java 3. Ferdig program (første del) Ferdig program (siste del)
Forelesning inf1000 - Java 3 Eksempel: Body Mass Index (BMI) Tema: Mer om forgreninger Løkker Arrayer Litt om easyio Ole Christian Lingjærde, 5. september 2012 Ole Chr. Lingjærde Institutt for informatikk,
import java.io.*; import java.util.*; import javagently.text;
//-------------------------------------------------------- // // Fil: Oppg1.java - // løser oppgave 1 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import
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
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
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.
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,
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,
Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I
Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 6 Bokmål Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert
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
Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs
Forkurs INF1010 Dag 3 Andreas Færøvig Olsen ([email protected]) Eivind Storm Aarnæs ([email protected]) Institutt for Informatikk, 14. januar 2015 Forkurs INF1010 - dag 3 Strenger Fil-I/O Unntakshåndtering
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
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,
Gjennomgang av eksamen V99
Gjennomgang av eksamen V99 Holmenkoll-stafetten DEL 1 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Ole Chr Lingjærde Institutt for informatikk 19 april
INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 21. februar 2013 Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Ikke noe nytt her From the Java language specification (version 6): 14.14.2
INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 15. januar 2014 2. time Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder med parametre En metode uten parameter:
LO191D/LC191D Videregående programmering
LO191D/LC191D Videregående programmering Eksamen mai 2012 Løsningsforslag Oppgave 1 Klassen Destinasjon: // Oppgaven er uklar på hva som skal inn i klassen Destinasjon. // Her følger en minimumsutgave
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 (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
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
Oblig 3 tips litt mer tips enn i oppgaven
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3 tips litt mer tips enn i oppgaven lørdag 3. okt 2009 I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert
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
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
Eksempel: Body Mass Index (BMI)
Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 3 Tema: Forgreninger Løkker Arrayer Ole Christian Lingjærde, 5. september 2013 1 Eksempel: Body Mass Index (BMI) Vi skal lage et program som beregner BMI
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
IN105-javaNelson-2. array, evt. flere dimensjoner. Institutt for informatikk Jens Kaasbøll sept. 1999. En funksjon om gangen En klasse om gangen
"Nelsons affebuti" et esempel på systemutviling med objeter Originale lysar av Jens Kaasbøll - mindre endringer av G. Sagestein og Knut Hegna IN5-javaNelson- Analyse Lageradministrasjon (inventory) Mange
Objekter. Uke 8 - Objekter, klasser og pekere. Verden består av mange objekter, noen ganske like, noen ulike. Klasser og objekter i verden
Objekter Uke 8 - Objekter, klasser og pekere Hvorfor deler vi verden inn i enheter når vi snakker om den? En blomst, fjorten trær, ti mennesker, en bil, en vei, mange murstein, en bankkonti,... Svar :
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
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
Løsningsforslag til eksamen i inf101 H2002. Oppgave 1. a)
Løsningsforslag til eksamen i inf101 H2002. Oppgave 1. a) class Kunde private String navn; private String adresse; private String tlf; private int antbeh; Kunde(String navn, String adresse, String tlf)
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
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.
