NB!!!! VIKTIG ANGÅENDE DATAFILA:
|
|
- Bo Håland
- 8 år siden
- Visninger:
Transkript
1 INF1000, Oblig2, H2006, Tolkning av oppgaven NB!!!! VIKTIG ANGÅENDE DATAFILA: For å fastholde både leietagernes saldi og hyblenes utgifter, må hver linje i datafila ha to (ikke bare ett) tilsvarende tall slik: int gang; char hybel; String leietagernavn; int saldo; int utgifter; Dette gjelder uavhengig av hvilken løsning man velger OM INNKAPSLING AV OBJEKTENES PRIVATE DATA Her var min tavle-gjennomgåelse litt ufullstendig. Selv om dette egentlig ikke er noe nødvendig tema i oppgaven, tar jeg det med her for å unngå at noen havner i villfarelse. Gjennomgangen ligger bakerst. (kanskje har programspesifikasjonen blitt endret i forhold til tidligere versjoner av oppgaven, uten at endringen er reflektert i filspesifikasjonen). Hva databehandling angår, skal oblig2 ha gitt dere trening i å - behandle en todimensjonal struktur både mht. - gjennomløp av hele strukturen og - aksessering av enkeltelementer i strukturen, Det som ren syntaktisk er nytt i oblig2, er - filbehandling og - klasser og objekter. Den store utfordingen i oblig3 ligger imidlertid i - å sette seg inn i et stort system - på grunnlag av en spesifikasjon som - stort sett ikke går ned til de minste detaljer, - er åpen for tolkninger, og - inneholder opplysninger som ikke er relevante for programutviklingen. Stilt overfor et slikt problem, er det overordentlig viktig å - ekstrahere relevant informasjon, og - filtrere ut irrelevant informasjon, og på det grunnlaget å - utforme sin egen spesifikasjon, - bl.a. med tolkninger av de punktene som er uklare, - slik at den gir grunnlag for en programskisse i form av et - skall i java-kode (der uferdige deler typisk består av tomme metoder). class ObjekttypeA { class ObjekttypeB { class Funksjonalitet { variabler variabler variabler konstruktor konstruktor konstruktor metoder metoder hjelpemetoder menymetode-1 menymetode-2 Vi skal lage et system for å administrere utleie og innkreving av husleie i et enetasjes leietagerhus med 4 ganger, nummerert fra 1 til 4, hver med 7 hybler, nummerert fra 'B' til 'H', hver med med plass til én leietager, samt et fellesarealer med nummer 'A' Til den enkelte leietager knyttes en saldo, og til den enkelte hybelen knyttes en utgiftspost (også kalt utestående) Som vi skal se, legges det opp til at det er forholdet mellom saldo og utgifter som bestemmer hvor mye leietageren til enhver tid enten skylder hybelhuset eller har til gode fra hybelhuset
2 Regnskapsføringen Kjernen til forståelsen av programmet i sin helhet ligger i forståelsen av hvorden regnskapet utføres - mht. forholdet mellom - fast husleie og - varierende strømutgifter og - mht. forholdet mellom - husregnskapet, - hybelregnskapet og - leietagerregnskapet. Regnskapet for de enkeltvise hyblene I programspesifikasjonen sies det ikke noe om - grunnlaget for leietagerens løpende innbetaling. Vi velger å la dette være - den faste månedlige leien plus - et stipulert månedlig strømforbruk. Vi kan da la de innbetalte stipulerte strømregningene akkumuleres i leietagerens saldo og la de faktisk strømregningen akkumuleres i hybelens utgiftspost. Når leietageren flytter ut, trekkes summen av faktiske strømregninger fra summen av innbetalte stipulerte strømregninger. Den faste husleien trekkes derimot fortløpende fra leietagerens saldo ved kjøringen av månedsregnskapet. Atskilling av strøm- og leie-regnskapet På den måten holdes, for hybelens del, husleieregnskapet og strømregnskapet atskilt, dvs. hybelen tar seg av strømregnskapet, mens leietageren noterer løpende innbetalinger og månedlige trekk av husleie. Siden strømregningen legges til hybelens utgifter etterskuddsvis for hver måned, vil strømregningen for den måneden en leietager flytter ut, bli lagt til hybelens utgifter først etter at sluttopgjøret er foretatt og hybelens utgifter er satt til 0. Denne strømregningen vil således hefte ved hybelen når en ny leietager evt. flytter inn. (Som nevnt under må vi anta at en tom hybel ikke genererer noen strømregning, slik at den tiloversblevne regningen fra utflytningsmåneden på sett og vis skyves bortover fra måned til måned til den fanges opp av en evt. ny leieboer, uten at det blir lagt noe til regningen underveis.) Ting som det kan være greit for oss å vite, men som ikke har betydning for programmet Vi antar at for en hybel som står tom en helt måned så blir strømregninen = 0, men dette ikke får noen betydning for utformingen av programmet, siden strømregningen for hver måned legges til hybelens utgifter uavhengig om den er 0 eller større enn 0. Når en leietager flytter ut, så er hennes totale leie + strømutgifter allerede innarbeidet i hybelgårdens totale regnskap, så, når vi, slik oppgaven sier, går ut fra at hun ved sluttoppgjøret alltid betaler det hun skylder eller utbetales det hun har til gode, så har dette oppgjøret ingen innflytelse på gårdens regnskap. Hvorvidt leietageren flytter frivillig eller kastes ut har på sin side ikke noen betydning for beregningen av sluttopgjøret.
3 Regnskapet for hele huset Atskillelsen av leie- og strømregnskapet lar oss - dele opp den månedlige regnskapskjøringen i to faser. Rent logisk er det slik at - regnskapet for den faste delen av leien er basert på hvilke hybler som er bebodd, mens - strømregnskapet kjøres mot alle hyblene, uavhengig av om de er bebodd. Rent tidsmessig kan det kanskje lønne seg å - kjøre disse to operasjonene i én og samme løkke, slik at vi - slapp å løpe gjennom hele datastrukturen to ganger. Men dette har også sin pris, og det spørs om ikke vinninga går opp i spinninga, for: - nå må vi hele tiden teste for situasjoner som bare dukker opp fordi vi insisterer på gjøre to ting samtidig. For å få koden mest mulig enkel, logisk koherent og forståelig, - er det bedre å gjøre én ting av gangen. Men hadde det dreid seg om å lese gjennom tusener, for ikke å si millioner av poster, måtte vi ha avveid tidsmessige effektivitet mot kodemessige enkelhet på en annen måte. Regnskapsføringen i detalj Månedsregnskapet Husleie - løp gjennom alle hyblene hvis løpende hybel er bebodd, - send regningen til hybelen, som eller - be hybelen om å få tak i leietageren - sender den videre til beboeren - og gi regningen direkte til henne - legg fortjenesten inn i totalfortjenesten ellers - øk antall ubebodde hybelmåneder med 1 Strøm - løp gjennom strømregningen - identifiser løpende rom - hvis dette er et fellesareal - trekk strømregningen fra totalforjenesten ellers - legg strømregningen til rommets utgifter Enkelinnbetaling - registrer rom og beløp - finn rommet i den doble arrayen og - send innbetalingen til hybelen eller - be hybelen om å få tak i leietageren og - som sender den videre til beboeren - send innbetalingen direkte til henne - for påplussing av dennes saldo Sluttoppgjør - registrer rom - finn rommet i den doble arrayen, - hent differansen mellom leietagersaldo og hybelutgifter fra hybelen og - skriv denne til skjermen - be hybelen nullstill seg, dvs. - nullstille hybelutgiftene og - nullstille leietagerreferansen Input og output Regnskapsfil 28 hybellinjer på formen int gang; char hybel; String leietagernavn; int saldo; int utgifter; Er hybelen tom, er navnet "TOM HYBEL". En avsluttende linje på formen int totantmnd; int anttommehybelmåneder; int totalfortjeneste Data lese fra fil til hybelarrayen og til tre heltall tilsvarende de tre siste tallene. Data skrives til fil fra hybelarrayen og tre heltall tilsvarende de tre siste tallene. Strømregning 32 hybellinjer på formen Det siste tallet i hybellinjen ikke er nevnt i oppgaveteksten, men jeg kan ikke se hvordan vi skulla ha klart oss uten. int hus:int gang:byte hybel:int:kwh-forbruk; Hus er uten betydning i vårt program
4 Datastruktur La oss vurdere datastrukturen på egen hånd, uten å skjele til oppgavens tips. Ut fra det skillet vi har innført mellom behandling av strøm- og leieutgifter, er det nærliggende, når det gjelder de enkeltvise hybler, å skille leietageren fra hybelen. Dermed kan leietageren selv holde orden på sin saldo, mens hybelen bare formidler de relevante beløpene fra regnskapsfører til leietageren og vice versa, eller hybelen presenterer sin leieboer for regnskapsføreren som kan utveksle beløp med denne direkte Det er nokså åpenbart at vi her har to kandidater for klasser leietageren og hybelen. Leieboren opprettes med et gitt navn og en initell saldo (depositum) og har ellers metoder for å registrere sine innbetalinger og kommunisere sin saldo. Hybelen opprettes med en tom leietager-referanse og en initell utgift = 0, og har ellers metoder for å - formidle beløp mellom leietager og regnskapsfører, eller presentere leietager for regnskapsfører, - håndtere egne strømutgifter, og - beregne og returnere balansen ved utflytting. Så gjelder det regnskapsføringen. Slik dere har jobbet til nå, kan det være fristende å legge dette sammen med metoden main. Legg imidlertid merke til at regnskapsføreren er en klart identifiserbar entitet med klart definerte oppgaver. Husk dessuten på at vi bør ha rom for at programmet utvides og gis nye funksjoner, og at det da vil være lite hensiktsmessig ganske enkelt å la hovedklassen vokse. Så alt i alt er det egentlig nokså opplagt av regnskapsføreren må få sin egen klasse. (Det er ikke like opplagt hvor menyhåndteringen skal ligge. Vi velger imidlertid å se på den beksrevne menyen som ekslusivt å gjelde regnskapsføringen. Eventuelle nye hovedfunksjoner vil da få sine menyer, mens main får en meny for valg av hovedfunksjon) Objektenes private data innkapsling og tilgjengelighet De aller fleste objekter i et program inneholder data som andre objekter ikke bør tillates å tukle med. Omverdenen gis derfor bare tilgang til disse via metoder typisk for å hente ut verdien til en variabel eller gi objektet en verdi for oppdatering av en av sine variabler. (Dette er ennå ikke noe tema i kurset, men det ligger litt under tankegangen for det som er sagt over.) Som et eksempel ser vi på forholdet mellom leietager, hybel og regnskapsfører, når leietageren hhv. betaler og belastes husleie, ved den månedlige regnskapskjøringen. Vi ser på to varianter, der R er regnskapsføreren, H er hybelen og L er leietageren 1. R får tak i L ved H's hjelp og sender de aktuelle beløpene direkte til L. 2. R sender beløpene til H som sender dem videre til L. Variant 1 class Leietager { int saldo; void endresaldo(int beløp){ saldo += beløp; class Hybel { Leietager leietager = null; Leietager getleietager() { return leietager; class Hybelhus { Hybel finnhybel(string hybelid){ return hyblene[hybelid.charat(0) - '0'][hybelID.charAt(1) - 'A']; void belastleie(string hybelid, int leie){ finnhybel(hybelid).getleietager().endresaldo(leie * -1); void registrerbetaling(string hybelid, int betalt){ finnhybel(hybelid).getleietager().endresaldo(betalt); Metoden belastleie ber først hybelobjektet om en peker til dets leietager, og ber deretter leietagere om å endre sin saldo i henhold til leien. Utførelsen av registrerbetaling følger samme mønster.
5 Variant 2 class Leietager { int saldo; void endresaldo(int beløp){ saldo += beløp; class Hybel { Leietager leietager = null; void endreleietagersaldo(int beløp){ leietager.endresaldo(beløp); class Hybelhus { Hybel finnhybel(string hybelid){ return hyblene[hybelid.charat(0) - '0'][hybelID.charAt(1) - 'A']; void belastleie(string hybelid, int leie){ finnhybel(hybelid).endreleietagersaldo(leie * -1); void registrerbetaling(string hybelid, int betalt){ finnhybel(hybelid).endreleietagersaldo(betalt); Metoden belastleie sender endringsbeløpet til hybelobjektet som så sender det videre til sitt leietagerobjekt. Utførelsen av registrerbetaling følger samme mønster.
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,
Detaljer1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje
DetaljerOblig3Hybelhus (INF Høst 2011) én av to mulige oppgaver for oblig3 (du løser denne eller Oblig3Pi)
Oblig3Hybelhus (INF1000 - Høst 2011) én av to mulige oppgaver for oblig3 (du løser denne eller Oblig3Pi) Gulbrand Grås Husleiesystem Mål: Formålet med oppgaven er å gi erfaring med å løse et større programmeringsproblem
DetaljerOppgaven består av to deler, del A og del B. Alle skal besvare både del A og del B, men det finnes noen valgmuligheter innenfor hver del.
Oblig 4 INF1000-SIKT Gulbrand Grås Husleiesystem Mål: Formålet med oppgaven er å gi erfaring med å løse et større programmeringsproblem ved hjelp av klasser og objekter (og tilhørende metoder), dessuten
DetaljerGulbrand Grås Husleiesystem
Oblig3Hybelhus (INF1000 - Høst 2012) én av to mulige oppgaver for oblig3 (du løser denne eller Oblig3Pi) Gulbrand Grås Husleiesystem Mål: Formålet med oppgaven er å gi erfaring med å løse et større programmeringsproblem
DetaljerOblig 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
DetaljerOblig 3 tips litt mer tips enn i oppgaven
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3 tips litt mer tips enn i oppgaven I denne oppgaven skal vi se på Gulbrands tre-etasjes studenthus Utsyn. Hver etasje (-3) har7 hybler og et fellesrom.
DetaljerOblig4Hybelhus (INF Høst 2013) én av to mulige oppgaver for oblig4 (du løser denne eller Oblig4Pi)
Oblig4Hybelhus (INF1000 - Høst 2013) én av to mulige oppgaver for oblig4 (du løser denne eller Oblig4Pi) Gulbrand Grås Husleiesystem Mål: Formålet med oppgaven er å gi erfaring med å løse et større programmeringsproblem
DetaljerObligatorisk oppgave nr. 3 (av 4) i INF1000, V-2007
Obligatorisk oppgave nr. 3 (av 4) i INF1000, V-2007 Leveringsfrist Oppgaven må leveres senest fredag 23. mars kl 16.00 via det elektroniske innleveringssystemet. Viktig: les slutten av oppgaven for detaljerte
DetaljerGenerelt om oblig 3. Oppgaveteksten kort sammendrag. Deloppgaver/menyvalg 15/03/2010. INF1000 Forelesning 9
Generelt om oblig 3 INF1000 Forelesning 9 15. mars 2010 Tips til oblig 3, separatorer i easyio, Eliza (bruk av HashMap), mer om metoder og klasser Christian M. Hansen Institutt for informatikk, UiO Les
DetaljerGulbrand Grås husleiesystem
Oblig nr. 3 alternativ a (av 4) i INF1000 vår 2009 Gulbrand Grås husleiesystem Leveringsfrist Oppgaven må leveres senest kl 16:00 fredag 16. oktober 2009. Formål Trening i å løse et større programmeringsproblem
DetaljerOblig4 - 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
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
DetaljerOblig 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
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
DetaljerDagens 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
DetaljerINF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004
INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
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
DetaljerOblig3 - obligatorisk oppgave nr. 3 (av 4) i INF1000
Oblig3 - obligatorisk oppgave nr. 3 (av 4) i INF1000 Ærlige Johans husleiesystem Leveringsfrist Oppgaven må leveres senest fredag 21. oktober kl 16.00. Viktig: les slutten av oppgaven for detaljerte leveringskrav.
DetaljerINF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
Detaljer(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
DetaljerObligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006
Obligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006 Advarsel Etter forelesningen 6. mars har vi gjennomgått alt stoffet som trengs for å løse oppgaven. Du kan imidlertid godt starte arbeidet allerede
DetaljerUke 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
DetaljerInnhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java
INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:
DetaljerINF1000: noen avsluttende ord
Pensum Det som er gjennomgått på forelesningene INF1000: noen avsluttende ord Arne og Fredrik Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige virkninger
DetaljerEKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 20.02.2017 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Teorifagbygget, Hus 3,
Detaljer13.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,
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.
DetaljerGulbrand Grås husleiesystem
Obligatorisk oppgave 3 (INF1000 Høst 2008) alternativ 1: OO-system Gulbrand Grås husleiesystem Leveringsfrist Oppgaven må leveres senest fredag 24. oktober kl 16.00. Viktig: Les slutten av oppgaven for
DetaljerHva 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,
DetaljerOblig 3 (INF Høst 2010)
Oblig 3 (INF1000 - Høst 2010) - Universitetet i Oslo 1 Oblig 3 (INF1000 - Høst 2010) Gulbrand Grås Husleiesystem Mål: Formålet med denne oppgaven er å gi trening i å løse et større programmeringsproblem
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 INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:
DetaljerKom 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:
DetaljerINF1000: noen avsluttende ord
Pensum INF1000: noen avsluttende ord Arne og Ole Christian Det som er gjennomgått på forelesningene Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige
DetaljerHvordan angripe en større oppgave? (og hva skal jeg gjøre i oblig 7!?)
Hvordan angripe en større oppgave? (og hva skal jeg gjøre i oblig 7!?) Skaff deg et godt overblikk... Les oppgaveteksten godt! Forstå hva oppgaven skal gjøre. Se på eksempelkjøringen! Hvilke klasser trenger
DetaljerINF1000 (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
DetaljerTDT4102 Prosedyre og Objektorientert programmering Vår 2015
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 3 Frist: 2014-02-07 Mål for denne øvinga:
DetaljerHvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.
Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på
DetaljerHvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.
Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på
DetaljerSudokubrettet Et sudokubrett består av n n ruter. Vi bruker følgende begreper i oppgaven:
INF1010 2016 Innleveringsoppgave 8 SUDOKU Versjon 29. mars. Denne versjonen gjelder oppgave 8. Resten er tatt med bare for å gi en pekepinn om arbeidet videre. Det kommer andre krav til del 10 og 11 når
DetaljerOblig 4 (av 4) INF1000, høsten 2009 Værdata, leveres innen 6. nov. kl
Oblig 4 (av 4) INF1000, høsten 2009 Værdata, leveres innen 6. nov. kl. 16.00 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
DetaljerSudokubrettet Et sudokubrett består av n n ruter. Vi bruker følgende begreper i oppgaven:
INF1010 2015 Obligatorisk oppgave 9, 10 og 11 SUDOKU Versjon 26. mars. Ved behov for presiseringer i del 10 og 11, kan det komme ny versjon 16. april, men ingen endringer i selve oppgaven. Denne obligatoriske
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008
Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008 Leveringsfrist Oppgaven må løses individuelt og leveres senest fredag 22. februar 2008 kl 16.00 via Joly. Viktig: les slutten av oppgaven for
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
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å
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
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
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 h2006
Oblig2 - obligatorisk oppgave nr 2 (av 4) i INF1000 h2006 Leveringsfrist Oppgaven må leveres senest fredag 30 september kl 1600 Viktig: les slutten av oppgaven for detaljerte leveringskrav Formål Formålet
DetaljerOBJEKTER 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
DetaljerEndret litt som ukeoppgave i INF1010 våren 2004
Endret litt som ukeoppgave i INF1010 våren 2004!!!" # # $# ##!!%# # &##!'! Kontroller at oppgavesettet er komplett før du begynner å besvare det. Les gjerne gjennom hele oppgavesettet før du begynner med
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
Detaljeri=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
DetaljerForelesning 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
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009
Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009 Leveringsfrist Oppgaven må løses individuelt og leveres senest fredag 20. februar kl 16.00 via Joly. Viktig: les slutten av oppgaven for detaljerte
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000
Oblig2 - obligatorisk oppgave nr 2 (av 4) i INF1000 Leveringsfrist Oppgaven må leveres senest fredag 29 september kl 1600 Viktig: les slutten av oppgaven for detaljerte leveringskrav Formål Formålet med
Detaljerløsningsforslag-uke5.txt
INF 1000 LØSNINGSFORSLAG TIL UKEOPPGAVER FOR UKE 5 1) Setningen er kompakt skrivemåte for int[] a; a = new int[50]; hvor den første setningen deklarerer arrayen a, og den andre setningen oppretter et array-objekt
DetaljerMER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:
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];
DetaljerINF1000: 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.
DetaljerINF våren 2017
INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Prøveeksamen 2010 Eksamensdag: 26. mai 2010 Tid for eksamen: 00.00 06.00 Oppgavesettet er på 7 sider. Vedlegg: ingen Tillatte
DetaljerIntroduksjon 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
DetaljerINF1000: 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];
DetaljerEtter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering
Etter uke 6 skal du Kjenne til motivasjonen for objektorientert programmering Introduksjon til objektorientert programmering INF1001 Høst 2016 Forstå hva en klasse er, og forskjellen på klasse og objekt
DetaljerSensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013
Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013 Oppgave 1) Her var det en manglende høyreparentes i 1 b) slik at de som svarer virker ikke eller lignende istedenfor det riktige svaret, skal
DetaljerINF1000 : Forelesning 4
INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet
DetaljerUtførelse av programmer, metoder og synlighet av variabler i JSP
Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen
Detaljer23.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
Detaljeri=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4
Repetisjon: nesting av løkker Kort repetisjon av doble (nestede) løkker Mer om D-arrayer Introduksjon til D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk
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
DetaljerIN1000 Obligatorisk innlevering 7
IN1000 Obligatorisk innlevering 7 Frist for innlevering: 23.10. kl 12:00 Introduksjon I denne innleveringen skal du lage et program som simulerer cellers liv og død. Dette skal du gjøre ved hjelp av en
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerObligatorisk oppgave 5: Labyrint
Obligatorisk oppgave 5: Labyrint INF1010 Frist: mandag 24. april 2017 kl. 12:00 Versjon 1.0 (1709ba6 ) Innhold 1 Innledning 2 2 Notasjon og terminologi 3 2.1 Formelle definisjoner.........................
DetaljerHva 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
DetaljerINF1000 Forelesning 8. Litt repetisjon: Metoder og klasser Innkapsling av variable og metoder Hvordan gripe an et stort problem?
INF1000 Forelesning 8 Litt repetisjon: Metoder og klasser Innkapsling av variable og metoder Hvordan gripe an et stort problem? 5 gode råd Hva er en metode? En metode er en valgfritt antall programsetninger
DetaljerIN1010 V18, Obligatorisk oppgave 5
IN1010 V18, Obligatorisk oppgave 5 Innleveringsfrist: Tirsdag 17.04. kl 10:00 Versjon 1.3 (12.04.2018) Sist modifisert av Silje Merethe Dahl. Innledning I denne oppgaven skal du bruke rekursjon til å lage
DetaljerINF Ekstrainnlevering
INF000 - Ekstrainnlevering Temaer på innleveringen: Hele pensum fram til nå. Oppgave E.) Tema: Beslutninger (if/else) Filnavn: Rekkefolge.java a) Lag et program som leser inn tre tall fra brukeren. b)
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
DetaljerInnhold. INF1000 (Uke 11) Programmering. Rep: Metoder. Rep: Hva er en metode? Litt repetisjon. To måter å programmere på
Innhold Litt repetisjon INF1000 (Uke 11) Programmering To måter å programmere på Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen 2006-04-03
DetaljerOblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000
Oblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000 Leveringsfrist Innleveringsfristen er fredag 14. november kl 16.00. Viktig: se side 4 for detaljerte leveringskrav. Formål Formålet med denne oppgaven
DetaljerHØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING
HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING Eksamensoppgave i kurset: Programmering i C++. Fagnr: LV 121 A Eksamensdato: 10 februar, 2003. Faglærer: Cecilie Rolstad Antall oppgaver: 5 Antall sider,
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
DetaljerINF1000 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
DetaljerKort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder
INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet
DetaljerINF1010 MVC i tekstbaserte programmer
INF1010 MVC i tekstbaserte programmer Marit Nybakken marnybak@ifi.uio.no 9. februar 2004 Marit har ingen utdanning innen systemutvikling og vet antageligvis ikke hva hun prater om. Hun har dog skumlest
DetaljerVelkommen 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
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000
Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 Leveringsfrist Oppgaven må leveres senest fredag 30. september kl 16.00. Viktig: les slutten av oppgaven for detaljerte leveringskrav. Formål Formålet
DetaljerLitt 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
DetaljerNull, && og søppeltømmeren. INF Forelesning 9: Mer om objekter og klasser, tips til oblig 3. Eksempel Student med én konstruktør
INF1000 - Forelesning 9: Mer om objekter og klasser, tips til oblig 3 9. mars 2009 Christian M. Hansen Institutt for informatikk, UiO 1 Null, && og søppeltømmeren Av og til har vi behov for å teste om
DetaljerMattespill Nybegynner Python PDF
Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.
DetaljerObligatorisk oppgave 1 INF1020 h2005
Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte
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)
DetaljerIN våren 2019 Onsdag 16. januar
IN1010 - våren 2019 Onsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel
DetaljerFeilmeldinger, brukerinput og kontrollflyt
Feilmeldinger, brukerinput og kontrollflyt Skjønne hvordan et program presist utføres og forberede seg på håndtering av feil INF1000, uke2 Ragnhild Kobro Runde Programmeringskrøll Programmet vil ikke kjøre
DetaljerIN våren 2018 Tirsdag 16. januar
IN1010 - våren 2018 Tirsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel
DetaljerTDT4102 Prosedyreog objektorientert programmering Vår 2016
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 4 Frist: 2016-02-12 Mål for denne øvingen:
DetaljerLæringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop
Læringsmål uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2018 uke 7 Siri Moe Jensen Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,
DetaljerEKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Teorifagb, hus 3, og og Adm.bygget, Aud.max og B.
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 06.12.2016 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Tillatte hjelpemidler:
DetaljerINF Obligatorisk innlevering 5
INF1000 - Obligatorisk innlevering 5 Frist: 2. Oktober kl 22:00 Temaer denne uka: Klasser og objekter. I denne obligen skal du som nytt tema jobbe med klasser og objekter, i tillegg til å bruke det du
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet
Detaljer