Faglig sosial ettermiddag. Løsningsforslag Eksamen INF1010 Høsten 2006
|
|
- Ole-Martin Henriksen
- 7 år siden
- Visninger:
Transkript
1 Faglig sosial ettermiddag Løsningsforslag Eksamen INF1010 Høsten 2006
2 Oppgaveteksten En apoteker har henvendt seg til deg for at du skal lage et javaprogram som skal hjelpe henne med å holde oversikt over varene i apoteket. Alle varene i apoteket er apotekvarer (class ApotekVare) som er identifiserbare ved hjelp av en apotekvareidentifikator, forkortet avi, som består av bokstaver og tall. I tillegg er det en variabel som sier hvor mange av denne varen som er på lageret i apoteket og en innkjøpspris per stykk.
3 Kodekladd abstract class ApotekVare apotekvareidentifikator (avi) [String] antall [int] pris [double]
4 Oppgaveteksten Mange av varene i apoteket kan opptre i en eller flere former, som mikstur, liniment, salve, stikkpille, injeksjonsvæske, gel, spray, tabletter, osv. For hver form er det forskjellig informasjon som skal lagres og kunne hentes om varen. F.eks. for en injeksjonsvæske skal vi holde rede på hvilken oppløsning virkestoffet forekommer i (milligram virkestoff pr. milliliter væske), mens vi for tabletter skal holde rede på antall tabletter i pakningen samt vekt per tablett og fargen på tablettene. F.eks. kan en smertestillende tablett av merket Ilnux, finnes i pakningsstørrelser 20, 50 og 200 tabletter. Dette er forskjellige varer (representert som forskjellige objekter med forskjellig avi); også stikkpiller av samme merke regnes som en annen vare. Hvis varen er en injeksjonsvæske og finnes i flere styrkegrader (milligram virkestoff) regnes hver styrkegrad som egen vare.
5 Kodekladd Injeksjonsveske oppløsning [double] Tabelett ant i pakken [int] vekt per tabelett [double] farge [char][string][int][color]
6 Oppgaveteksten Apoteket må betale en spesiell avgift til staten for noen av varene. Det er for eksempel en luksusskatt på bind, tamponger, solkrem, etc. For slike varer skal det betales en viss prosent av innkjøpsprisen i spesialavgift. I slike varer skal det finnes en metode avgift som regner ut denne avgiften basert på varens innkjøpspris og prosentsatsen. Forskjellige varer vil vanligvis ha forskjellig prosentsats. Alle varene i apoteket faller i to hovedkategorier, legemidler og utstyr (ikke legemidler). Legemidlene er identifisert av et nummer i den såkalte felleskatalogen. Legemidlene er igjen enten reseptbelagte eller reseptfrie. Reseptbelagte legemidler har en reseptklasse knyttet til seg (en bokstav) som sier noe om hvor narkotisk legemiddelet er.
7 Kodekladd Spesialavgift avgift (beregnet ut i fra innkjøpspris og prosentsats class Legemiddel nummer (i felleskatalogen) class ReseptbelagtLegemiddel bokstav (reseptklasse) class ReseptfrittLegemiddel? class Utstyr?
8 Kodekladd totalt class ApotekVare apotekvareidentifikator (avi) [String] antall [int] pris [double] Injeksjonsveske oppløsning [double] Tabelett ant i pakken [int] vekt per tabelett [double] farge [char][string][int][color] class Legemiddel nummer (i felleskatalogen) class ReseptbelagtLegemiddel bokstav (reseptklasse) class ReseptfrittLegemiddel? class Utstyr? Spesialavgift avgift (beregnet ut i fra innkjøpspris og prosentsats
9 Oppgave 1 (25%) Skriv først de tre klassene ApotekVare, LegeMiddel og ReseptBelagt. Det skal ikke være mulig å lage objekter av disse tre klassene. Skriv deretter grensesnittene Tablett, InjeksjonsVeske og SpesialAvgift. Skriv tilslutt klassen TablettReseptLuksus som beskriver reseptbelagte tabletter med spesialavgift. Alle konstanter og variabler i klassene skal få verdier ved hjelp avparametre til konstruktørene.
10 Oppgave 1 (25%) abstract class ApotekVare { String avi; int ant; // på lager. double pris; ApotekVare(String avi, int ant, double pris) { this.avi = avi; this.ant = ant; this.pris = pris;
11 Oppgave 1 (25%) abstract class LegeMiddel extends ApotekVare { int nr; LegeMiddel(String avi, int ant, double pris, int nr) { super(avi, ant, pris); this.nr = nr;
12 Oppgave 1 (25%) abstract class ReseptBelagt extends LegeMiddel { char klasse; ReseptBelagt(String avi, int ant, double pris, int nr, char klasse) { super(avi, ant, pris, nr); this.klasse = klasse;
13 Oppgave 1 (25%) interface Tabelett { int antallipakken(); double vekt(); Color farge(); // krever import java.awt.color; interface InjeksjonsVeske { double opploesning(); interface SpesialAvgift { double avgift();
14 Oppgave 1 (25%) class TablettReseptLuksus extends ReseptBelagt implements Tabelett, SpesialAvgift { int antallipakken; double vekt; Color farge; double prosentsats; TablettReseptLuksus(String avi, int ant, double pris, char klasse, int nr, int aip, double v, Color f, double p) { super(avi, ant, pris, nr, klasse); antallipakken = aip; vekt = v; farge = f; prosentsats = p; public int antallipakken() {return antallipakken; public double vekt() {return vekt; public Color farge() {return farge; public double avgift() {return (pris * prosentsats) / 100;
15 Oppgave 2 (5%) Vi lager følgende grensesnitt for å putte apotekvarene i (dobbelkjedete) pekerlister: interface Listemedlem { Listemedlem hentneste(); Listemedlem hentforrige(); void setneste (Listemedlem lm); void setforrige (Listemedlem lm); Skriv klassen ApotekVare når den skal implementere dette grensesnittet.
16 Oppgave 2 (5%) abstract class ApotekVare implements Listemedlem { //--- andre variable som i oppgave 1 ---\\ Listemedlem neste, forrige; //--- konstruktør som i oppgave 1---\\ ApotekVare( ) { public Listemedlem hentneste() {return neste; public Listemedlem hentforrige() {return forrige; public void settneste(listemedlem lm) {neste = lm; public void settforrige(listemedlem lm) {forrige = lm;
17 Oppgave 3 (5%) Skriv en klasse ListeEnde slik at objektene av klassen kan brukes som listehoder og listehaler, uten at de er apotekvarer. Klassen ListeEnde skal implementere grensesnittet Listemedlem. Det eneste du vet om objektene i listen er at de implementerer grensesnittet Listemedlem.
18 Oppgave 3 (5%) class ListeEnde implements Listemedlem { Listemedlem neste, forrige; public Listemedlem hentneste() { return neste; public Listemedlem hentforrige() { return forrige; public void settneste(listemedlem lm) { neste = lm; public void settforrige(listemedlem lm) { forrige = lm;
19 Oppgave 4 (30%) En liste (dobbeltkjedet) med apotekvarer kaller vi en vareliste. Her er skjelettet av denne klassen: class VareListe { ListeEnde hode = new ListeEnde(); ListeEnde hale = new ListeEnde(); VareListe() {... void settinntilvenstre(listemedlem lm, Listemedlem ny){... void settinntilhøyre(listemedlem lm, Listemedlem ny){... Listemedlem taut(listemedlem lm) {... void bytt2listemedlemmer(listemedlem l1, Listemedlem l2){ andre listemetoder Skriv konstruktøren VareListe, samt metodene settinntilvenstre, settinntilhøyre, taut og bytt2listemedlemmer.
20 Oppgave 4 (30%) VareListe() { hode.settneste(hale); hale.settforrige(hode); null hode hale null hale.settneste(null); hode.settforrige(null);
21 Oppgave 4 (30%) void settinntilvenstre(listemedlem lm, Listemedlem ny) { if (lm == hode) return; // Eller throw exception Listemedlem lmf = lm.hentforrige(); lmf.settneste(ny); ny.settforrige(lmf); lm.settforrige(ny); ny.settneste(lm); null lmf hode hale null lm ny
22 Oppgave 4 (30%) void settinntilhøyre(listemedlem lm, Listemedlem ny) { if (lm == hale) return; // Eller throw exception Listemedlem lmn = lm.hentneste(); lmn.settforrige(ny); ny.settneste(lmn); lm.settneste(ny); ny.settforrige(lm); null lm hode hale null lmn ny
23 Oppgave 4 (30%) Listemedlem taut(listemedlem lm) { if (lm == hode lm == hale) return null // Eller throw exception Listemedlem lmf = lm.hentforrige(); Listemedlem lmn = lm.hentneste(); hode hale lmf.settneste(lmn); lmn.settforrige(lmf); lm.settforrige(null); lm.settneste(null); null null return lm; lmf lm null null lmn
24 Oppgave 4 (30%) Trikset er her å benytte oss av de forrige metodene void bytt2listemedlemmer(listemedlem l1, Listemedlem l2) { Listemedlem l1f = l1.hentforrige(); Listemedlem l2n = l2.hentneste(); l1 = taut(l1); l2 = taut(l2); settinntilhøyre(l1f, l2); settinntilvenstre(l2n, l1); null l1f hode hale null l2n l1 null Her er det mange kombinasjoner av hentforrige(), hentneste(), settinntilhøyre(..) og settinntilvenstre( ) som vil fungere. l2
25 Oppgave 4 (30%) Hvis ikke så får vi en del pekerskifter å kode! // Her må vi anta at l1 står før l2 i lista. void bytt2listemedlemmer(listemedlem l1, Listemedlem l2) { Listemedlem l1n, l1f, l2n, l2f; l1n = l1.hentneste(); l1f = l1.hentforrige(); l2n = l2.hentneste(); l2f = l2.hentforrige(); // Pekeskifter som er felles for de to tilfellene l1.settneste(l2n); l2n.settforrige(l1); l2.settforrige(l1f); l1f.settneste(l2); if (l1.equals(l2f) && l2.equals(l1n)) { // l1 og l2 står ved siden av hverandre l1.settforrige(l2); l2.settneste(l1); else { l1.settforrige(l2f); l1n.settforrige(l2); l2.settneste(l1n); l2f.settneste(l2);
26 Oppgave 5 (5%) abstract class ApotekVare implements Listemedlem { //--- variabler som i oppgave 2 ---\\ ApotekVare(String avi, int ant, double pris, VareListe v) { this.avi = avi; this.ant = ant; this.pris = pris; v.settinntilhøyre(v.hode, this); // eventuelt sett inn til venstre for v.hale. //--- metoder som i oppgave 2 ---\\ public Listemedlem hentneste() {return neste; public Listemedlem hentforrige() {return forrige; public void settneste(listemedlem lm) {neste = lm; public void settforrige(listemedlem lm) {forrige = lm;
27 Oppgave 6 (5%) Det VIL fungere å bruke quicksort på den dobbeltlenkede listen; quicksort baserer seg på å bytte to og to elementer, og å løpe gjennom elementene ett og ett i begge retninger. Altså trenger ikke noe av logikken å forandres, men småting må endres for at algoritmen skal kunne fungere på en liste.
28 Oppgave 6 (5%) public class ListeQSort { //Må oppdatere denne til å jobbe på lister i stedet for array: private static ListeMedlem midtenavtre(vareliste vl, ListeMedlem fra, ListeMedlem til) { boolean flyttvenstre = false; ListeMedlem midten = til; //Må la de to pekerne gå annenhver gang til de møtes. for (ListeMedlem fravenstre = fra; fravenstre!= midten; flyttvenstre =!flyttvenstre) { if (flyttvenstre) fravenstre = fravenstre.hentneste(); else midten = midten.hentforige();
29 Oppgave 6 (5%) //Bytter om som i den opprinnelige versjonen. if (midten.hentavi().compareto(fra.hentavi()) < 0) { vl.bytt2listemedlemmer(fra, midten); ListeMedlem t = fra; fra = midten; midten = t; if (til.hentavi().compareto(fra.hentavi()) < 0) {... //Tilsvarende if (til.hentavi().compareto(midten.hentavi()) < 0) {... //Tilsvarende //Tar ut midten, som blir pivotelement, fra lista... vl.taut(midten); return midten; // end midtenavtre()
30 Oppgave 6 (5%) public static void quicksort(vareliste vl, ListeMedlem fra, ListeMedlem til) { //Basistilfellene blir ganske like. if (fra == til) return; if (fra.hentneste() == til) { if (til.hentavi().compareto(fra.hentavi()) < 0) vl.bytt2listemedlemmer(fra, til); return; //Finner pivotelement. Logikken er som i den oprinnelige: ListeMedlem pivotmedlem = midtenavtre(vl, fra, til); String pivot = pivotmedlem.hentavi();
31 Oppgave 6 (5%) ListeMedlem i = fra, j = til, t; while (true) { while (i.hentavi().compareto(pivot) < 0) i = i.hentneste(); while (j.hentavi().compareto(pivot) > 0) j = j.hentforige(); if ( i!= j && i.hentforige()!= j) { //Funker siden i.hentforige() er <= pivot... vl.bytt2listemedlemmer(i, j); //Husk at pekerne skal beholde plassen i lista... t = i; i = j; j = t; else break; //Sett inn igjen pivotelementet, og rekurser videre! vl.settinntilvenstre(i, pivotmedlem); quicksort(vl, fra, pivotmedlem.hentforige()); quicksort(vl, pivotmedlem.hentneste(), til); // end quicksort() // end class ListeQSort
32 Oppgave 7 (5%) Det er ikke fullt så hensiktsmessig med quicksort på lister som på arrays, siden det er mye mer krevende å bytte plass på to elementer. Dessuten må man lete seg fram til midt-elementet i midtenavtre(...).eller man kan selvsagt droppe verdier i midten av listen, og håpe at den er veldig usortert... Quicksort er likevel raskere enn en analog til innstikksortering ville vært :)
33 Oppgave 7 ( 5%) Dersom man til enhver tid vil at listen skal være sortert, er det bedre å heller gjøre innsetting slik at listen blir sortert da. Det tar lenger tid å kjøre en hel quicksort enn bare å sett inn et element på riktig sted. Men om man setter inn store mengder data på én gang, og deretter vil sortere, kan kanskje quicksort være raskere likevel. Husk også at quicksort ikke utnytter at data allerede kan være halvsortert... Dersom man trenger å sortere svært sjeldent, går det også an å legge listen ut i et array og så bruke vanlig quicksort på dette, før man lager listen på nytt igjen.
34 Oppgave 8 (20%) Q U I C K S O R T A L G O R I T M E E U I C K S O R M A L G O R I T Q T E I I C K O O G M A L R S R U T Q T E I I C K O O G M A L Q S R U T R T E I I C K A O G M L O Q S R U T R T E I I C K A G O M L O Q S R U T R T E I I C K A G L M O O Q S R U T R T
Faglig sosial ettermiddag
Faglig sosial ettermiddag Løsningsforslag Eksamen INF1010 Høsten 2006 Oppgaveteksten En apoteker har henvendt seg til deg for at du skal lage et javaprogram som skal hjelpe henne med å holde oversikt over
DetaljerUNIVERSITETET 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:
DetaljerUNIVERSITETET 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.
DetaljerQuicksort. Fra idé til algoritme.
Quicksort Fra idé til algoritme. Quicksortalgoritme algoritmeidé 1. Del arrayen i to deler, slik at alle elementer i den ene delen er mindre enn alle elementer i den andre delen. Q U I C K S O R T A L
DetaljerEn implementasjon av binærtre. Dagens tema. Klassestruktur hovedstruktur abstract class BTnode {}
En implementasjon av binærtre Dagens tema Eksempel på binærtreimplementasjon Rekursjon: Tårnet i Hanoi Søking Lineær søking Klassestruktur hovedstruktur abstract class { class Person extends { class Binaertre
DetaljerHva 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 =
DetaljerTDT4100 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
DetaljerINF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1.
INF1010 Eksamenstips Løsningsforslag prøveeksamen del 1. michael@ifi.uio.no INF1010 FSE 25. mai 2011 (uke 21) 2 Les igjennom hele oppgaven. Les igjennom hele oppgaven en gang til, marker i teksten ting
DetaljerLø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 =
DetaljerLenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.
Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. "Taher" type: String : type: :... type: : inf1010student null michael@ifi.uio.no INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public
DetaljerINF januar 2015 Stein Michael Storleer (michael) Lenkelister
INF1010 29. januar 2015 Stein Michael Storleer (michael) Lenkelister Lenke + lister = lenkelister Vi starter med lenkeobjektene Lager en kjede av objekter ved hjelp av pekere class { ; Legger Jl data innholdet
DetaljerUNIVERSITETET 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
DetaljerObligatorisk oppgave 4: Lege/Resept
Obligatorisk oppgave 4: Lege/Resept INF1010 Frist: mandag 27. mars 2017 kl. 12:00 Versjon 1.0 (111c894 ) Innhold 1 Innledning 1 1.1 Begreper................................ 2 2 Pasienter 2 3 Leger og lister
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Lørdag 15. desember 2001, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.
DetaljerUNIVERSITETET 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å
DetaljerHvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010
Hvorfor sortering og søking? Man bør ha orden i dataene umulig å leve uten i informasjonssamfunnet vi blir fort lei av å lete poleksempel internett alt er søking og sortering alternativer til sortering
DetaljerINF1010 notat: Binærsøking og quicksort
INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.
DetaljerINF1010 - Seminaroppgaver til uke 3
INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar
DetaljerAlgoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1
Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting
DetaljerUNIVERSITETET 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
DetaljerGjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
DetaljerOppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre
Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på
DetaljerINF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også
DetaljerUNIVERSITETET 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
DetaljerAlgoritmer og datastrukturer Kapittel 4 - Delkapittel 4.3
Delkapittel 4.3 En toveiskø (deque) Side 1 av 5 Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.3 4.3 En toveiskø (deque) 4.3.1 Grensesnittet Toveiskø En stakk kan godt ses på som en kø der vi
DetaljerEks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
DetaljerINF1010 Binære søketrær ++
INF1010 Binære søketrær ++ Programeksempler med insetting, gjenfinning av noder i et binært søketre samt eksempler på hvordan lage en liste av et binærtre. Hva må du kunne om binære søketrær i INF1010
DetaljerLøsnings forslag i java In115, Våren 1998
Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker
DetaljerIN1010 V19, Obligatorisk oppgave 2
IN1010 V19, Obligatorisk oppgave 2 Innleveringsfrist: Tirsdag 26.02 kl 23.59 Introduksjon I de obligatoriske oppgavene fremover skal du lage et system som holder styr på leger, pasienter, resepter og legemidler.
DetaljerLO191D/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
DetaljerINF1010. Grensesnittet Comparable<T>
INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd
DetaljerINF1000 - 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
DetaljerINF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak
LISTER Vanligste datastruktur Mange implementasjonsmåter (objektkjeder, array...) Operasjoner på listen definerer forskjellige typer lister (LIFO, FIFO,...) På norsk bruker vi vanligvis ordet «liste» for
DetaljerUNIVERSITETET 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 :
DetaljerINF Notater. Veronika Heimsbakk 10. juni 2012
INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N
DetaljerINF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre
INF1010 Rekursive metoder, binære søketrær Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter
DetaljerAlgoritmer og datastrukturer Løsningsforslag
1 Algoritmer og datastrukturer Løsningsforslag Eksamen 29. november 2011 Oppgave 1A Verdien til variabelen m blir lik posisjonen til den «minste»verdien i tabellen, dvs. bokstaven A, og det blir 6. Oppgave
DetaljerEnkle generiske klasser i Java
Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt
DetaljerOPPGAVE 5b og 8b Java Kode
OPPGAVE 5b og 8b Java Kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene
Detaljer1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
DetaljerDagens tema INF1010 INF1010 INF1010 INF1010
I eksemplene om lister og binære trær har vi hittil hatt pekerne inne i objektene i strukturen. ( Innbakt struktur ).Eksempel: Dagens tema Implementasjon av strukturer (lister, binære trær) class { ; ;
DetaljerLøsningsforslag Test 2
Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.
DetaljerLø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
DetaljerEKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
Detaljer1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
DetaljerAlgoritmer og datastrukturer Eksamen
Algoritmer og datastrukturer Eksamen 24.02.2010 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator som ikke kommuniserer. Faglærer: Ulf Uttersrud Råd og tips: Bruk ikke for
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.
DetaljerINF1010 Sortering. Marit Nybakken 1. mars 2004
INF1010 Sortering Marit Nybakken marnybak@ifi.uio.no 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
DetaljerUNIVERSITETET 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
DetaljerEksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %
Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 Oppgave 10 Tegning av datastrukturen (vekt 5% av del B) Tegn datastrukturen til
DetaljerINF1010, 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
DetaljerAlgoritmer og datastrukturer Eksamen
Eksamen - Algoritmer og datastrukturer - Høgskolen i Oslo og Akershus - 27.11.2012 Side 1 av 6 Algoritmer og datastrukturer Eksamen 27.11.2012 Eksamensoppgaver Råd og tips: Bruk ikke for lang tid på et
DetaljerG høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato: 09.12.
G høgskolen i oslo Emne: Algoritmer og datastrukturer Emnekode: 80131A Faglig veileder: UlfUttersrud Gruppe(r) : Dato: 09.12.2004 Eksamenstid: 9-14 Eksamensoppgaven består av: Tillatte hjelpemidler Antall
DetaljerUNIVERSITETET 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
DetaljerINF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk
INF2440 Prøveeksamen, løsningsforslag, 20 mai 2015 Arne Maus PSE, Inst. for informatikk 1 Prøveeksamen Er en modell av hva du får til eksamen: - like mange (+-1) oppgaver som eksamen og nesten samme type
DetaljerINF1000 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
DetaljerRepitisjonskurs. Arv, Subklasser og Grensesnitt
Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett
DetaljerEksamen 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
DetaljerOO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0
OO-eksempel I eksemplet er det deklarert tre klasser: 1) Fag (skal instansieres ett objekt for hvert fag) 2) Student (skal instansieres ett objekt for hver student) 3) Studenter (abstrakt klasse skal ikke
DetaljerINF 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
DetaljerAlgoritmer og datastrukturer Løsningsforslag
Algoritmer og datastrukturer Løsningsforslag Eksamen 30. november 2010 Oppgave 1A Et turneringstre for en utslagsturnering med n deltagere blir et komplett binærtre med 2n 1 noder. I vårt tilfelle får
DetaljerNy/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00
Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerLø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
DetaljerKapittel 9: Sortering og søking Kort versjon
Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen
DetaljerAlgoritmer og datastrukturer Løsningsforslag
Algoritmer og datastrukturer ved Høgskolen i OsloSide 1 av 6 Algoritmer og datastrukturer Løsningsforslag Eksamen 24. februar 2010 Oppgave 1A 1. Komparatoren sammenligner først lengdene til de to strengene.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF2440 Praktisk parallell programmering Prøveeksamensdag : 26. mai 2014 Tidspunkter: 11.00 Utdeling av prøveeksamen 15:15
DetaljerAlgoritmer og datastrukturer Eksamen
Eksamensoppgave i Algoritmer og datastrukturer ved Høgskolen i Oslo Side 1 av 5 Algoritmer og datastrukturer Eksamen 30.11.2010 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator
DetaljerNB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..
Løsningsforslag Eksamen V2007 Oppgave 1 NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Oppgave 1.1 Klasse som pakke rinne n primitiv datatype, slik at vi kan
DetaljerEksamen 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
DetaljerAlgoritmer 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
Detaljer2 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.
DetaljerRepetisjon. INF1000 - gruppe 13
Repetisjon INF1000 - gruppe 13 Lese fra fil Scanner import java.util.*; void lesfrafil() { try { Scanner innfil = new Scanner(new File( fugleobservasjoner.txt )); while (innfil.hasnext()) { String linje
Detaljer< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»
< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar
DetaljerLøsnings forslag i java In115, Våren 1999
Løsnings forslag i java In115, Våren 1999 Oppgave 1a Input sekvensen er: 9, 3, 1, 3, 4, 5, 1, 6, 4, 1, 2 Etter sortering av det første, midterste og siste elementet, har vi følgende: 2, 3, 1, 3, 4, 1,
DetaljerUNIVERSITETET I OSLO
Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Fredag 4. desember 2015 Tid for eksamen: 14.30 (4 timer)
DetaljerTDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Mandag 6. august 2012, kl. 15:00-19:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Rune Sætre. Kontaktperson under
DetaljerGjennomgang 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
DetaljerLøsningsforslag til Eksamen i fag SIF8005 Programmering. Torsdag 10. mai 2001 kl
Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for fysikk, informatikk og matematikk Institutt for datateknikk og informasjonsvitenskap Sensurfrist: 15. juni Løsningsforslag
DetaljerLenkelister og beholdere av lenkelister
Lenkelister og beholdere av lenkelister Et notat for INF1010 Stein Michael Storleer 4. februar 2013 Lister er den vanligste datastrukturen. Vi treffer på den overalt. Når vi har mange objekter i et program,
DetaljerINF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004
INF1010 Arv Marit Nybakken marnybak@ifi.uio.no 2. februar 2004 Motivasjon Arv bruker vi så vi skal slippe å skrive oss i hjel. Når vi programmerer, prøver vi gjerne å modellere en del av verden ved hjelp
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1020 Algoritmer og datastrukturer Eksamensdag: 15. desember 2004 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 6 sider.
DetaljerLenkelister, iteratorer, indre klasser. Repetisjonskurs våren 2018 kristijb
Lenkelister, iteratorer, indre klasser Repetisjonskurs våren 2018 kristijb Lenket liste av objekter Vi lager en lenke ved at objekter refererer til hverandre. Vanlige er ofte å ha Node-objekter som har
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 4. juni 2005 Tid for eksamen: 0900 1500 Oppgavesettet er på 5 sider. Vedlegg: Tillatte hjelpemidler: INF1010 Objektorientert
DetaljerArray&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
DetaljerDel 3: Evaluere uttrykk
Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)
DetaljerOblig 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,
DetaljerOppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.
Høgskoleni Østfold EKSAMEN Emnekode: Emnenavn: ITF20006 Algoritmer og datastrukturer Dato: Eksamenstid: 9. mai 2016 9.00 13.00 Hjelpemidler: Faglærer: Alle trykte og skrevne Jan Høiberg Om eksamensoppgaven
DetaljerUNIVERSITETET 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
DetaljerAlgoritmer og Datastrukturer IAI 21899
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 30. november 2000, kl. 09.00-14.00 LØSNINGSFORSLAG 1 Del 1, Binære søketrær Totalt
DetaljerOppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf
Oppgave 3 3 a IN1020 Algoritmer og datastrukturer orelesning 15: Gjennomgang av eksamen vår 2001 oppgave 3 Arild Waaler Institutt for informatikk, Universitetet i Oslo 11. desember 2006 Oppgave 3 a. Antagelser
DetaljerLøsningsforslag eksamen INF1020 høsten 2005
Løsningsforslag eksamen INF1020 høsten 2005 Merk at dette er et løsningsforslag på selve oppgavene, og ikke slik vi forventer at en besvarelse skal se ut. Dette gjelder spesielt oppgave 3. Oppgave 1: Flervalgsoppgaver
DetaljerForelesning 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
Detaljer1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 26. februar 2014 1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Vi tar utgangspunkt i dette programmet for
DetaljerForelesning 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
Detaljeralternativer til sortering og søking binære trær søketrær Ikke-rekursiv algoritme som løser Hanois tårn med n plater
Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»
Detaljer