Gjennomgang av eksamen V99

Størrelse: px
Begynne med side:

Download "Gjennomgang av eksamen V99"

Transkript

1 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 2001

2 Forslag til arbeidsplan 1 Les nøye gjennom hele oppgaven 2 Identifiser mulige klasser i systemet: en klasse for datamodell og beregninger og en (eller to) klasse(r) for kontroll og utsyn klasser som representerer (deler av) datastrukturen 4 Finn ut hvilke metoder som trengs i de ulike klassene Her kan det lønne seg å jobbe ovenfra-og-ned, dvs først metodene som kalles av bruker (via ordre) eller som brukes i hovedløkka deretter metodene som kalles av de førstnevnte metodene osv 3 Tegn klasse/objekt-diagram (også kalt mental modell) som inkluderer klasser og objekter (inkl hashtabeller), arrayer, referanser (ofte del av oppgaven) 5 Fyll ut klassene med resterende variable og skriv koden i metodene Ole Chr Lingjærde Institutt for informatikk 19 april 2001

3 Eksamensoppgave våren 1999 Holmenkollenstafetten - verdens største stafett med cirka løpere Ole Chr Lingjærde Institutt for informatikk 19 april 2001

4 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN 105 Eksamensdag : Mandag 7 juni 1999 Tid for eksamen : Oppgavesettet er på : 6 sider (inkludert vedlegg) Vedlegg : Klassen Stream fra JavaGently Tillatte hjelpemidler : Alle trykte og skrevne (Tilpasset Java 12)

5 Denne oppgaven dreier seg om å lage to programmer for å effektivisere Holmenkollstafetten I den utstrekning du kjenner til (detalj)opplysninger om Holmenkollstafetten og disse avviker fra det som gis i denne oppgaven, skal du bruke opplysningene som gis i oppgaven De er tilstrekkelige til å løse eksamen ---o 0 o --- Holmenkollstafetten er et gateløp på 15 etapper som løpes av lag i ulike løpsklasser (se fullstendig liste av løpsklasser i oppgave 1) Du skal nå lage to datasystemer for å hjelpe arrangørene til å få en tidsmessig dataløsning: I Et system som kjøres av klubbene som melder på (ett eller flere) lag til løpet Dette systemet skal du lage i oppgave 1) nedenfor Dette systemet produserer en fil (uansett hvor mange lag som meldes på) som klubben sender inn til arrangøren II Et system som kjøres av arrangøren Dette systemet skal (utfyllende opplysninger i hvert oppgavepunkt): a) Motta filer fra de klubbene, lese disse og bygge opp en passende datastruktur for hele løpet b) Kunne rette to typer av opplysninger om lag som en klubb har påmeldt (trekke lag, endre deltagere på etapper på ett lag)

6 c) Tildele startnummer til de ulike påmeldte lagene (en liste over lagnavn med startnummer og starttidspunkt skal produseres) d) Ta inn løpsresultater for de ulike lagene og skrive ut liste over vinnere i hver klasse og resultatliste for hver klubb Dette er opplagt ikke en fullstendig løsning for Holmenkollstafetten (håndtering av påmeldingsavgift, flere typer av løpsklasser og fullstendige, sorterte resultatlister mangler, men vi tenker oss at dette skal senere utvides til et ekte datasystem)

7 Oppgave 1 (20 %) Du skal her lage et enkelt system som klubbene skal bruke til å melde på ett eller flere lag til stafetten En klubb kan høyst melde på ett lag i hver løpsklasse Filen programmet skal produsere har følgende format eksempel: Idrettslaget-Koll Aktiv herre B 1 Ole Olsen Per Jensen Peder Kvikk Aktiv kvinne elite 1 Guri Grei Siri Kvikk Turid Antonsen ZZZ Filen skal altså starte med en linje som er klubbens navn (anta at det er skrevet som ett ord som ovenfor Hint: Husk at readstring() i Stream leser bare neste ord fram til en blank eller linjeskift), Etter klubbnavnet kommer angivelse av løpsklasse (tillatte verdier: Aktiv herre elite, Aktiv herre B, Aktiv dame elite, Aktiv dame B, Bedrift herre, Bedrift dame, Bedrift blandet ) for første lag som påmeldes Deretter kommer 15 nummererte linjer med løpere og løpernes 11-sifrete personnummer, en linje for hver etappe (du skal anta at det er bare ett fornavn og ett etternavn for hver løper) Dette gjentas for hvert lag som meldes på og det er ingen bestemt rekkefølge man må ha lagene i Filen avsluttes med en string ZZZ på en egen linje

8 Oppgave 1 Lag et enklest mulig menydrevet hovedprogram og datastruktur som produserer denne filen (ikke legg inn muligheter for rettinger/endringer, men anta at hvis klubben vil endre sin påmelding eller taster feil, taster de bare inn alle opplysningene på nytt) Merk: oppgaven refererer til 11-sifrete personnummer Normalt er det de 5 siste sifrene som kalles personnummer, mens alle 11 sifre kalles fødselsnummer I besvarelsen velger vi likevel å holde oss til oppgavens definisjon av personnummer

9 Oppgave 2 (80 %) I denne oppgaven skal du lage systemet som arrangøren skal bruke, og som er skissert på tidligere i dette oppgavesettet Oppg 2A Les nøye gjennom de øvrige spørsmålene i oppgave 2 og lag så en tegning av de klasser og viktigste datastrukturene du vil ha i systemet ditt Beskriv også kort (noen få linjer) hva hver klasse skal representere og inneholde Oppg 2B Lag klassen Holmenkollen som inneholder main() I denne klassen skal vi opprette nødvendig datastruktur, skrive ut en meny, motta valg fra brukeren, og så kalle relevante metoder i andre klasser (Dere som løser oppgaven i Simula: Lag et hovedprogram som oppretter nødvendig datastruktur, skriver ut en meny, mottar valg fra brukeren, og så kaller relevante prosedyrer i systemets klasser) Oppg 2C Lag metoden lesfrafil (), som mottar en fil fra en klubb (som beskrevet i oppg1) og som oppdaterer datastrukturene dine med opplysningene på fila Oppg 2D Lag en metode sjekk() som går gjennom alle løpere på ett lag og sjekker at løperne på laget hverken løper flere etapper på dette laget eller deltar på andre lag i hele stafetten (Hint: Bruk personnummeret som er ulikt for alle løpere) Skriv ut passende opplysninger hvis du finner en slik løper

10 Oppg 2E Oppg 2F Lag en metode som er egnet til å brukes når en klubb vil endre sin påmelding Nå skal du bare tenke deg at klubben ringer inn til arrangøren (inntil 2 uker før start) og enten vil trekke påmeldingen av et lag eller vil sette inn andre løper(e) på en eller flere etapper Lag en tegning som viser tilstanden i datastrukturen før og etter at et lag blitt trukket Du skal nå anta at påmeldinger og rettelser er avsluttet Lag først en metode startnummer(), som går gjennom datastrukturen og skriver ut navn til deltagerklubbene i hver løpsklasse, og som samtidig teller opp antall deltagerklubber i hver løpsklasse, samt gir disse nummer Denne listen skrives ut Du skal bare bruke en nummerserie (1,2,) for hele løpet Oppg 2G Løpet skal starte kl 1200 med de aktive - dameklassene først (elite først, så B), deretter tilsvarende for herrer, og til sist bedriftsklassene for damer, herrer og blandet Alle lag i en løpsklasse starter samtidig Du skal nå skrive ut en liste for starttidspunkter for de ulike løpsklassene ut fra opptelling av antall lag i hver løpsklasse, og at det må være minimum 15 minutter mellom hver start, men at du også må legge til 15 min for start av neste løpsklasse for hvert 100 lag som starter i forrige løpsklasse (dvs hvis det er opp til 99 deltagere i Aktiv dame elite, starter neste klasse Aktiv dame B kl 1215, men er det fra 100 til 200 deltager, starter Aktiv dame B kl 1230, osv) Oppg 2H Lag en metode som brukes av en funksjonær ved registrering av sluttider etter hvert som lagene kommer i mål Han finner tiden ved å se på en klokke Det som skal registreres er lagets startnummer (som løperne har på seg og som følger den nummereringen du fant i pkt 2F) og klokkeslettet for målpassering som tre tall: time, minutt og sekund

11 Oppg 2I Oppg 2J Lag en metode som skriver ut vinnerlaget i hver løpsklasse Hint Skriv først en metode som for et lag regner ut sluttiden, dvs hvor lang tid laget har brukt fra starttidspunktet (som du regnet ut i 2G) til målpasseringsklokkeslettet (som er registrert i 2H) For hvert av klubbene lager du en rapport som viser hvilken plassering deres lag fikk Plasseringen finner du ved å telle opp hvor mange av de andre lagene i samme løpsklasse som hadde bedre sluttid Oppg 2K Kan puffes Definer først et filformat som lagrer resultatene for hele Holmenkollstafetten ett år, og en metode som skriver ut resultatene på fil på dette formatet Skisser så hvordan du vil legge til i datastrukturen din slik at du kan lese inn resultatene fra flere tidligere år på dette formatet og skrive ut rapporter om hvor godt hvert lag fra en klubb har gjort det tidligere år (og i hvilke år det var) og tilsvarende opplysninger pr løper hvor mange ganger har hun/han deltatt tidligere, på hvilke lag og med hvilket resultat

12 Innledende kommentarer Alt for lang oppgave - nesten umulig å rekke alt Vanlig misforståelse på oppgave 1 medførte at denne ble svær Tøff start på oppgave 2 To første delpunkter mye å gjøre og svært sentrale for hele oppgaven For å forenkle litt er aksessmodifikatorer (public/private) ikke benyttet i forslaget her Vi kommer istedet til å kommentere dette helt til slutt Ole Chr Lingjærde Institutt for informatikk 19 april 2001

13 Oppgave 1 Lag et enklest mulig menydrevet hovedprogram og datastruktur som produserer denne filen (ikke legg inn muligheter for rettinger eller endringer, men anta at hvis klubben vil endre sin påmelding eller taster feil, taster de bare inn alle opplysningene på nytt) Her er det kun snakk om å lese inn fra terminal og legge rett ut på fil Det er ikke nødvendig å bygge opp noen datastruktur som holder alle dataene som leses inn Ole Chr Lingjærde Institutt for informatikk 19 april 2001

14 Oppgave 1 (skisse) <import-setninger> class Oppg1Main { public static void main (String [] args) { Oppg1 oppg = new Oppg1(); class Oppg1 { <deklarasjoner> Oppg1 () { <deklarasjoner; åpne fil> <les inn klubbnavn, skriv til fil> <be bruker taste inn løpsklasse, skriv til fil Les inn navn på alle 15 løpere på laget i denne løpsklassen Skriv navnene til fil Gjenta til brukeren vil avslutte> <lukk filen> Ole Chr Lingjærde Institutt for informatikk 19 april 2001

15 class Oppg1 (skisse) class Oppg1 { <deklarasjoner> Oppg1 () { <deklarasjoner; åpne fil> <les inn klubb-navn og skriv til fil> løpskl = lesløpsklasse (); while (løpskl!= 0) { <skriv løpsklasse til fil> <les inn navn på alle lagets løpere; skriv ut på fil etterhvert> løpskl = lesløpsklasse (); <skriv ut ZZZ på fil og lukk filen> int lesløpsklasse() { <Be bruker taste inn en løpsklasse og returner denne > Ole Chr Lingjærde Institutt for informatikk 19 april 2001

16 Ferdig program import inf101*; class Oppg1 { Inn tastatur = new Inn(); Ut utfil = new Ut( Holmenkolldata ); String [] løpsklassenavn = {"Aktiv dame elite", "Aktiv dame B", "Aktiv herre elite", "Aktiv herre B", "Bedrift dame", "Bedrift herre", "Bedrift blandet"; Oppg1 () {/* Se eget ark */ int lesløpsklasse () {/* Se eget ark */ Ole Chr Lingjærde Institutt for informatikk 19 april 2001

17 int lesløpsklasse () { int svar; do { Systemoutprintln(" Velg ny løpsklasse (0 = ferdig): \n"); for (int i = 0; i < 7; i++) Systemoutprintln((i+1) + " - " + løpsklassenavn[i]); svar = tastaturinint(); while (svar < 0 svar > 7); return svar; Ole Chr Lingjærde Institutt for informatikk 19 april 2001

18 Oppg1 () { String klubbnavn, løperfnavn, løperenavn, løperpnr; int løpskl; Systemoutprint("Tast klubbens navn:"); klubbnavn = tastaturinstringln(); utoutstringln(klubbnavn); løpskl = lesløpsklasse(); while (løpskl!= 0) { utoutstringln(løpsklassenavn[løpskl-1]); for (int i = 1; i < 16; i++) { Systemoutprint("\nGi fornavn på løper " + i +" :"); løperfnavn = tastaturinstring(); Systemoutprint("\nGi etternavn på løper " + i +" :"); løperenavn = tastaturinstring(); Systemoutprint("\nGi personnummer på løper " + i +" :"); løperpnr = tastaturinstring(); utoutstringln( i + " " + løperfnavn + " " + løperenavn + " " + løperpnr); løpskl = lesløpsklasse(); utoutstringln("zzz"); utclose();

19 Oppgave 2A Les nøye gjennom de øvrige spørsmålene i oppgave 2 og lag så en tegning av de klasser og viktigste datastrukturene du vil ha i systemet ditt Beskriv også kort (noen få linjer) hva hver klasse skal representere og inneholde Fremgangsmåte: Vi går gjennom punktene 2B-2J og lager en liste over det som skal gjøres/lages Hva slags opplysninger må programmet holde rede på? Hvordan holder vi rede på dem? Her er det vesentlig hvilke operasjoner vi ønsker å gjøre på datastrukturen Grupper tingene som skal lages i naturlige enheter (som blir klasser) Beskriv kort klassene Lag et klasse/objekt-diagram Ole Chr Lingjærde Institutt for informatikk 19 april 2001

20 Liste over det som skal gjøres 2B datastruktur + løkke for innlesing av ordre 2C lese fil fra en klubb og oppdatere datastruktur 2D gå gjennom alle løpere på et lag, sjekke at de (1) bare løper en etappe og (2) bare for dette laget 2E fjerne et lag, endre løpere på et lag 2F skrive ut navn til klubbene i hver løpsklasse + telle opp antall klubber i hver løpsklasse + gi klubbene nummer 2G skrive ut liste med start-tider for de ulike løpsklassene For å bestemme start-tid: må vite antall lag (= antall klubber) i hver løpsklasse 2H Gitt lagnummer (= klubbnummer), finn lag og sett slutt-tid (time, min, sek) 2I For hver løpsklasse, finn laget med lavest slutt-tid 2J For hver klubb, finn alle lagenes plassering (ved å sammenlikne med andre lag i samme løpsklasse) Ole Chr Lingjærde Institutt for informatikk 19 april 2001

21 De viktigste begrepene Analysér teksten - understrek substantivene, finn de viktigste begrepene (objektene) i problemet (og antall) - Stafett (1 stk) - Løpsklasse (7 stk) - Lag (flere pr løpsklasse, opptil 7 pr klubb - Deltager (15 stk pr lag) - Etappe (15 stk pr stafett) - Klubb (flere i stafetten) Ole Chr Lingjærde Institutt for informatikk 19 april 2001

22 Begrepsrelasjoner En deltager har et navn (String), et personnr (String) og en etappe (int) Et lag består av 15 deltagere (array), tilhører en klubb (ref) og en løpsklasse (ref), og har et startnr (int), en slutt-tid (int,int,int) og en plassering (int) En klubb består av opptil 7 lag (array) og har et navn (String) og antalllag (int) Ole Chr Lingjærde Institutt for informatikk 19 april 2001

23 En løpsklasse består av mange lag/klubber (vet ikke hvor mange) og har en tittel (String), et klassenr (int) og en start-tid (int, int, int) Vi kan bruke hashtabell (= HashMap) med lag som nøkkel og klubb som element klubb som nøkkel og lag som element Hvilken velger vi? Vi kommer ikke til å søke (med get) på klubb eller lag i oppgavene 2F, 2G, 2I, kun lage liste (med iterator()) Dermed spiller det ingen rolle hvilken vi velger (vi kan bruke enten keyset() eller values() for å lage liste) Velger i denne besvarelsen å bruke klubb som nøkkel og lag som element

24 Stafetten har mange lag, klubber og løpsklasser; for å holde orden på alle kan vi bruke Hashtabell (=HashMap) med alle lagene (vet ikke hvor mange) Hashtabell (=HashMap) med alle klubbene (vet ikke hvor mange) Array over alle løpsklassene (7 stk) Trenger vi alle? 2D, 2E: for et gitt lag 2F: for hver klubb 2F, 2G, 2I: for hver løpsklasse Velger å bruke alle tre tabell-former i klassen Stafett Ole Chr Lingjærde Institutt for informatikk 19 april 2001

25 Hver av punktene ovenfor gir naturlig opphav til en klasse, dvs vi velger å definere klassene class Stafett { class Klubb { class Lopsklasse { class Lag { class Deltager { Nå er vi klare til å tegne et klasse/objekt-diagram Ole Chr Lingjærde Institutt for informatikk 19 april 2001

26 Klasse/objekt-diagram Holmenkollen Holmenkollen() Stafett lagene Lopsklasse klubbene 0 6 løpsklassene lag Klubb 0 6 lag antalllag Lag 0 14 løpere Deltager pnr navn navn etappe klubb løpsklasse startnr slutt-tid start-tid klassenr tittel plassering st

27 Oppgave 2B Lag klassen Holmenkollen som inneholder main() I denne klassen skal vi opprette nødvendig datastruktur, skrive ut en meny, motta valg fra brukeren, og så kalle relevante metoder i andre klasser Merk: her er det faktisk snakk om å lage seks klasser: Hovedklassen Holmenkollen som inneholder kontroll/utsyn Klassen Stafett som inneholder datastrukturen Klassene Deltager, Lag, Klubb, Lopsklasse Det eneste vi ikke skal gjøre, er å implementere (gi innmaten i) metodene som det spørres om i oppgavene 2C-2K Ole Chr Lingjærde Institutt for informatikk 19 april 2001

28 class Deltager { String navn, pnr; int etappe; Deltager (int etappe) {thisetappe = etappe; /* Andre ting */ class Lag { Lopsklasse løpsklasse; Klubb klubb; int startnr, slutttime, sluttmin, sluttsek; Deltager [] løpere = new Deltager[15]; int plassering = 1; Lag (Klubb klubb, Lopsklasse løpsklasse) { thisklubb = klubb; thisløpsklasse = løpsklasse; /* Andre ting */

29 class Klubb { String navn; int antalllag; Lag [] lag = new Lag[7]; Klubb (String navn) { thisnavn = navn; /* Andre ting */ class Lopsklasse { String tittel; int klassenr; int starttime, startmin, startsek; HashMap lag = new HashMap(); // key = Klubb, elem = Lag Lopsklasse (String tittel, int klassenr) { thistittel = tittel; thisklassenr = klassenr;

30 class Stafett { // DATAMODELL HashMap klubbene = new HashMap(); // key = String, elem = Klubb HashMap lagene = new HashMap(); // key = Lag, elem = Lag LopsKlasse [] løpsklassene = new LopsKlasse[7]; int lesløpsklasse() { /* OPPGAVE 2C - metode 1 (av 2) */ void lesfrafil(string fnavn) { /* OPPG 2C - metode 2 (av 2) */ void sjekk(lag lag1) { /* OPPGAVE 2D */ void sjekkalle() { /* Egnet for kall fra hovedmeny - 2D */ void endrepåmelding (Inn inn) { /* OPPGAVE 2E */ void startnummer() { /* OPPGAVE 2F */ void gistarttidspunkt() { /* OPPGAVE 2G */ void regslutttider (Inn inn) { /* OPPGAVE 2H */ void finnvinnere() { /* OPPGAVE 2I */ void giklubbeneresultatliste() { /* OPPGAVE 2J */

31 class Holmenkollen { Holmenkollen () { Stafett st = new Stafett(); /* Løkke for innlesning av ordre */ int lesordre () { /* Les inn ordre fra bruker */ public static void main (String [] args) { Holmenkollen hk = new Holmenkollen(); Ole Chr Lingjærde Institutt for informatikk 19 april 2001

32 int lesordre (Inn tastatur) { Systemoutprintln("\nVelg funksjon: "); Systemoutprintln("0 - Avslutt "); Systemoutprintln("1 - Les klubbfil"); Systemoutprintln("2 - Sjekk løpere (alle mot alle) "); Systemoutprintln("3 - Trekke lag eller endre løpere "); Systemoutprintln("4 - Gi startnummer "); Systemoutprintln("5 - Gi starttider, skriv startliste "); Systemoutprintln("6 - Registrer slutt-tider "); Systemoutprintln("7 - Finn vinnere i hver løpsklasse "); Systemoutprintln("8 - Gi klubbene resultatliste "); return tastaturinint(); Ole Chr Lingjærde Institutt for informatikk 19 april 2001

33 Holmenkollen () { Stafett st = new Stafett(); Inn tastatur = new Inn(); int ordre; Systemoutprintln("\n -- Program for Holmenkoll-løpet ---: \n"); ordre = lesordre(tastatur); while (ordre!= 0) { switch (ordre) { case 1: Systemoutprint("Gi klubb-fil navn:"); stlesfrafil(tastaturinstring()); break; case 2: stsjekkalle(); break; case 3: stendrepåmelding(inn); break; case 4: ststartnummer(); break; case 5: stgistarttidspunkt(); break; case 6: stregslutttider(inn); break; case 7: stfinnvinnere(); break; case 8: stgiklubbeneresultatliste(); break; default: Systemoutprintln("Velg et tall mellom 0 og 8"); ordre = lesordre(tastatur); Systemoutprintln("Programmet er ferdig");

34 Gjennomgang av eksamen V99 Holmenkoll-stafetten DEL 2 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Ole Chr Lingjærde Institutt for informatikk 19 april 2001

35 Oppgave 2C Lag metoden lesfrafil (), som mottar en fil fra en klubb (som beskrevet i oppg1) og som oppdaterer datastrukturene dine Skisse (kun innlesningen fra fil): void lesfrafil (String fnavn) { <diverse deklarasjoner> Inn fil = new Inn(fNavn); klubbnavn = filinstringln(); klassenr = lesløpsklasse(fil); // negativ hvis ZZZ while (klassenr >= 0) { <les data om 15 lagdeltagere fra fil> klassenr = lesløpsklasse(fil); Ole Chr Lingjærde Institutt for informatikk 19 april 2001

36 Holmenkollen Holmenkollen () Stafett lagene Lopsklasse klubbene 0 6 løpsklassene lag Klubb 0 6 lag antalllag Lag 0 14 løpere Deltager pnr navn navn etappe klubb løpsklasse startnr slutt-tid start-tid klassenr tittel plassering klubb = new Klubb(klubbNavn); klubbeneput(klubbnavn, klubb);

37 Holmenkollen Holmenkollen () Stafett lagene Lopsklasse klubbene 0 6 løpsklassene lag Klubb 0 6 lag antalllag Lag 0 14 løpere Deltager pnr navn navn etappe klubb løpsklasse startnr slutt-tid start-tid klassenr tittel plassering lag = new Lag(klubb, løpsklassene[klassenr]); lagleslag(fil);

38 Holmenkollen Holmenkollen() Stafett lagene Lopsklasse klubbene 0 6 løpsklassene lag Klubb 0 6 lag antalllag Lag 0 14 løpere Deltager pnr navn navn etappe klubb løpsklasse startnr slutt-tid start-tid klassenr tittel plassering klubbnyttlag(klassenr, lag); løpsklassene[klassenr]lagput(klubb, lag); lageneput(lag, lag);

39 Endelig versjon av LesFraFil void lesfrafil (String fnavn) { String klubbnavn, klassenavn, løperfnavn, løperenavn, løperpnr; int klassenr; Klubb klubb; Lag lag; Inn fil = new Inn(fNavn); klubbnavn = filinstringln(); klubb = new Klubb(klubbNavn); klubbeneput(klubbnavn, klubb); klassenr = lesløpsklasse(fil); // negativ hvis ZZZ while (klassenr >= 0) { lag = new Lag(klubb, løpsklassene[klassenr]); lagleslag(fil); klubbnyttlag(klassenr, lag); løpsklassene[klassenr]lagput(klubb, lag); lageneput(lag, lag); klassenr = lesløpsklasse(fil); Ole Chr Lingjærde Institutt for informatikk 19 april 2001

40 int lesløpsklasse (Inn fil) { // Leser indeksen til løpsklassen fra fil // Aktiv dame elite = 0, Aktiv dame B = 1, osv // ZZZ returnerer -1 String s; int svar = 0; s = filinstringln(); if (sequals( ZZZ )) svar = -1; else if (sequals("aktiv dame elite")) svar = 0; else if (sequals("aktiv dame B")) svar = 1; else if (sequals("aktiv herre elite"))svar = 2; else if (sequals("aktiv herre B")) svar = 3; else if (sequals("bedrift dame")) svar = 4; else if (sequals("bedrift herre")) svar = 5; else if (sequals("bedrift blandet")) svar = 6; return svar;

41 I klassen Lag: void leslag (Inn fil) { for (int i=0; i<15; i++) { løpere[i] = new Deltager(i); // i = etappe-nummer løpere[i]les(fil); // les opplysninger om deltager I klassen Klubb: void nyttlag (int klassenr, Lag laget) { lag[klassenr] = laget; // bruk lagets løpsklasse som pos i arrayet antalllag++; // NB: slik nyttlag er programmert, kan arrayet lag ha huller, dvs vi kan feks ha at lag[0]==null, lag[1]==et lag, lag[2]==null, osv

42 I klassen Deltager: void les (Inn fil) { int etappenr; String linje; StringTokenizer st; etappenr = filinint(); navn = filinstring() + " " + filinstring(); pnr = filinstring(); Ole Chr Lingjærde Institutt for informatikk 19 april 2001

43 Oppgave 2D Lag en metode sjekk() som går gjennom alle løpere på et lag og sjekker at løperne på laget hverken løper flere etapper på dette laget eller deltar på andre lag i hele stafetten Her velger vi å gjøre noen egne forutsetninger Metoden sjekk() slik den er beskrevet over er tungvint å bruke fra hovedmenyen i programmet (må gi ny ordre for hvert lag som skal sjekkes) Bedre: lage metoden sjekk() som over (naturligvis) og i tillegg lage metode sjekkalle() som kalles fra hovedmenyen, og som benytter sjekk() Ole Chr Lingjærde Institutt for informatikk 19 april 2001

44 void sjekk (Lag lag1) { String pnr1, pnr2; Lag lag2; Deltager løper1, løper2; for (int i=0; i<15; i++) { løper1 = lag1løpere[i]; // Se på en løper på lag1 pnr1 = løper1fåpnr(); Iterator it = lagenevalues()iterator(); while (ithasnext()) { // gå gjennom alle lagene i stafetten lag2 = (Lag) itnext(); // lag2 er et av disse lagene for (int j=0; j<15; j++) { løper2 = lag2løpere[j]; // Se på en løper på lag2 pnr2 = løper2fåpnr(); if (!løper1equals(løper2) && pnr1equals(pnr2)) { // To forskjellige løpere med samme personnr, dvs // samme person løper mer enn en gang! Skriv feilmelding: Systemoutprintln( Personen: + løper1fånavn() +, med pnr: + pnr1 + løper mer enn en gang! )

45 void sjekkalle() { Lag lag; Iterator it = lagenevalues()iterator(); while (ithasnext()) { lag = (Lag) itnext(); sjekk(lag); I klassen Deltager: String fånavn() { return navn; String fåpnr() { return pnr; I klassen Klubb: String fånavn() { return navn;

46 Oppgave 2E Lag en metode som er egnet til å brukes når en klubb vil endre sin påmelding Nå skal du bare tenke deg at klubben ringer inn til arrangøren (inntil 2 uker før start) og enten vil trekke påmeldingen av et lag eller vil sette inn andre løper(e) på en eller flere etapper Lag en tegning som viser tilstanden i datastrukturen før og etter at et lag blitt trukket For å finne et bestemt lag trengs klubbens navn løpsklasse For å finne en bestemt løper trengs i tillegg løperens personnummer Ole Chr Lingjærde Institutt for informatikk 19 april 2001

47 Skisse: void endrepåmelding (Inn tastatur) { Systemoutprint( Ønsket endring (T=trekke lag, E=endre lag): ); switch (tastaturinchar()) { case T : trekklag(tastatur); break; case E : endrelag(tastatur); break; default: Systemoutprintln( Ulovlig kommando ); break; void trekklag (Inn tastatur) { <deklarasjoner> <les inn klubbnavn og løpsklasse> <fjern laget fra datastrukturen> void endrelag (Inn tastatur) { <deklarasjoner> <les inn klubbnavn og løpsklasse> <les inn personnr på person som skal byttes ut> while <flere som skal byttes ut> { <les inn navn og personnr på person som skal inn> <finn deltager-objektet som skal endres> <endre deltager-objektet> <les inn personnr på person som skal byttes ut (0=ferdig)>

48 Å fjerne et lag Stafett klubbene løpsklassene 0 6 lagene Holmenkollen Holmenkollen() Klubb lag antalllag 0 navn 6 Lopsklasse lag tittel klassenr start-tid Lag løpsklasse løpere 0 klubb startnr 14 slutt-tid Deltager navn pnr etappe plassering lageneremove(lag); løpsklassene[klassenr]lagremove(klubb); klubblag[klassenr] = null; klubbantalllag--; if (klubbantalllag == 0) klubbeneremove(klubbnavn); Ole Chr Lingjærde Institutt for informatikk 19 april 2001

49 void fjernlag (Inn tastatur) { String klubbnavn; Klubb klubb; Lag lag; int klassenr; // Finn klubb, klassenr og lag Systemoutprint( Klubbens navn: ); klubbnavn = tastaturinstring(); klubb = (Klubb) klubbeneget(klubbnavn); Systemoutprintln( Løpsklasser: ); for (int i=0; i<7; i++) Systemoutprintln((i+1) + + løpsklassene[i]tittel); Systemoutprint( Velg løpsklasse (1-7): ); klassenr = tastaturinint() - 1; lag = (Lag) løpsklassene[klassenr]lagget(klubb); if (lag == null) Systemoutprintln( Klubben har ikke meldt på lag i den klassen!"); else { // Fjern laget lageneremove(lag); løpsklassene[klassenr]lagremove(klubb); klubblag[klassenr] = null; klubbantalllag--; if (klubbantalllag == 0) klubbeneremove(klubbnavn);

50 Å endre et lag Stafett klubbene løpsklassene 0 6 lagene Holmenkollen Holmenkollen() Klubb lag antalllag 0 navn 6 Lopsklasse lag tittel klassenr start-tid Lag løpsklasse løpere 0 klubb startnr 14 slutt-tid Deltager navn pnr etappe plassering lagløpere[i]skrivnavn(navn); lagløpere[i]skrivpnr(pnr); Ole Chr Lingjærde Institutt for informatikk 19 april 2001

51 void endrelag (Inn tastatur) { String klubbnavn, pnr, navn; Klubb klubb; Lag lag; int klassenr; <Finn klubb, klassenr og lag akkurat som i fjernlag ()> Systemoutprint( Personnr til løper som skal ut: ); pnr = tastaturinstring(); while (!pnrequals( 0 )) { int i=0; while (i<15 &&!lagløpere[i]lespnr()equals(pnr)) i++; if (i<15) { // Fant en løper med dette personnummeret Systemoutprint( Navn på ny løper (fornavn etternavn): ); navn = tastaturinstringln(); lagløpere[i]skrivnavn(navn); Systemoutprint( Personnr til ny løper: ); pnr = tastaturinstring(); lagløpere[i]skrivpnr(pnr); else Systemoutprintln( Ingen med dette personnummeret! ); Systemoutprint( Personnr til løper som skal ut (0=ferdig): ); pnr = tastaturinstring();

52 Oppgave 2F Lag først en metode startnummer(), som går gjennom datastrukturen og skriver ut navn til deltagerklubbene i hver løpsklasse, og som samtidig teller opp antall deltagerklubber i hver løpsklasse, samt gir disse nummer Denne listen skrives ut Du skal bare bruke en nummerserie (1,2, ) for hele løpet Vi skal altså produsere en utskrift omtrent som følger for hver løpsklasse: Løpsklasse: Aktiv herre elite Antall lag: 84 Startnummer Klubb 1 klubbnavn1 2 klubbnavn2 Ole Chr Lingjærde Institutt for informatikk 19 april 2001

53 void startnummer() { int nummer; Lopsklasse løpskl; Lag lag; nummer = 1; for (int i=0; i<7; i++) { løpskl = løpsklassene[i]; Systemoutprintln("Løpsklasse: " + løpskltittel()); Systemoutprintln("Antall lag: " + løpskllagsize()); Systemoutprintln( Startnummer Klubb"); Iterator it = løpskllagvalues()iterator(); while (ithasnext()) { lag = (Lag) itnext(); Systemoutprintln( + nummer + " " + lagklubbnavn); lagstartnr = nummer; nummer ++;

54 Oppgave 2G Du skal nå skrive ut en liste for starttidspunkter for de ulike løpsklassene ut fra opptelling av antall lag i hver løpsklasse [ ] void gistarttidspunkt() { Lopsklasse løpskl; int forsinkelse; // Forsinkelse (i minutter) fra kl 1200 String s; forsinkelse = 0; // Første pulje starter presis kl 1200 for (int i=0; i<7; i++) { løpskl = løpsklassene[i]; løpsklstarttime = 12 + forsinkelse / 60; løpsklstartmin = forsinkelse % 60; forsinkelse += * (løpskllagsize()/100); if (løpsklstartmin == 0) s = "00"; else s = StringvalueOf(løpsklstartMin); Systemoutprintln(løpskltittel + " starter kl" + løpsklstarttime + "" + s + "00"); Ole Chr Lingjærde Institutt for informatikk 19 april 2001

55 Oppgave 2H Lag en metode som brukes av en funksjonær ved registrering av sluttider etter hvert som lagene kommer i mål Han finner tiden ved å se på en klokke Det som skal registreres er lagets startnummer (som løperne har på seg og som følger den nummereringen du fant i pkt 2F) og klokkeslettet for målpassering som tre tall: time, minutt og sekund void regslutttider (Inn tastatur) { <deklarasjoner> <les inn startnummer fra terminal (0 = ferdig)> while <startnummer ulik 0> { <løp gjennom alle lagene helt til du finner det laget som har samme startnummer som det innleste nummeret>; if (<lag med samme nr ikke funnet>) <skriv feilmelding>; else <les inn slutt-tid fra terminal og registrer>; <les inn nytt startnummer fra terminal (0 = ferdig)> Ole Chr Lingjærde Institutt for informatikk 19 april 2001

56 void regslutttider (Inn tastatur) { int startnr; boolean found; Lag lag; Systemoutprint("Startnummer (avslutt med 0): "); startnr = tastaturinint(); while (startnr > 0) { found = false; Iterator it = lagenevalues()iterator(); while (ithasnext() &!found) { lag = (Lag) itnext(); if (lagstartnr == startnr) found = true; if (!found) Systemoutprintln( Ulovlig start-nummer"); else { Systemoutprint("Gi slutt-tid (time min sek): "); lagslutttime = tastaturinint(); lagsluttmin = tastaturinint(); lagsluttsek = tastaturinint(); Systemoutprint("Startnummer (avslutt med 0): "); startnr = tastaturinint();

57 Oppgave 2I Lag en metode som skriver ut vinnerlaget i hver løpsklasse Hint: skriv først en metode som for et lag regner ut sluttiden, dvs hvor lang tid laget har brukt fra starttidspunktet til målpasserings-klokkeslettet void finnvinnere () { Lag lag, bestelag; int bestetid; for (int i=0; i<7; i++) { bestetid = ; // Garantert større enn noen slutt-tid Iterator it = løpsklassene[i]lagvalues()iterator(); while (ithasnext()) { lag = (Lag) itnext(); if (lagslutttid() < bestetid) { bestetid = lagslutttid(); bestelag = lag; Systemoutprintln( Vinner i klassen + løpsklassene[i]tittel + er: + bestelagklubbnavn; Ole Chr Lingjærde Institutt for informatikk 19 april 2001

58 Ole Chr Lingjærde Institutt for informatikk 19 april 2001 Oppgave 2J For hver av klubbene lager du en rapport som viser hvilken plassering deres lag fikk Plasseringen finner du ved å telle opp hvor mange av de andre lagene i samme løpsklasse som hadde bedre sluttid void giklubbeneresultatliste () { Lag lag, lag2; int slutttid; for (int i=0; i<7; i++) { Iterator it = løpsklassene[i]lagvalues()iterator(); while (ithasnext()) { lag = (Lag) itnext(); slutttid = lagslutttid(); Iterator it2 = løpsklassene[i]lagvalues()iterator(); while (it2hasnext()) { lag2 = (Lag) it2next(); if (lag2slutttid() < slutttid) lagplassering ++; <gå gjennom alle klubbene, og skriv for hver klubb ut en resultatliste for alle klubbens lag (overlates til leseren)>

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN 105 Eksamensdag : Mandag 7. juni 1999 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 6 sider (inkludert vedlegg) Vedlegg

Detaljer

import java.io.*; import java.util.*; import javagently.text;

import java.io.*; import java.util.*; import javagently.text; //-------------------------------------------------------- // // Fil: Oppg1.java - // løser oppgave 1 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import

Detaljer

Gjennomgang av eksamen H99

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

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

UNIVERSITETET I OSLO

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 :

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

INF1000 (Uke 15) Eksamen V 04

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

Detaljer

INF1000 (Uke 15) Eksamen V 04

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

Detaljer

UNIVERSITETET I OSLO

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å

Detaljer

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

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004 Oppgave 1 Prøveeksamen i INF1000 Ole Christian og Arne 23. november 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

Detaljer

Løsningsforslag eksamen in105, høsten 2000

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.

Detaljer

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

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

Detaljer

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. 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];

Detaljer

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

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

Detaljer

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

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

Detaljer

Endret litt som ukeoppgave i INF1010 våren 2004

Endret 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

Detaljer

Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene.

Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene. Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene. Hovedformålet med eksamen er å skille ut de som har skjønt litt om programmering fra de som ikke har skjønt noe. For de som

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 4 1 Tre måter å lese fra terminal Først:

Detaljer

UNIVERSITETET I OSLO

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 :

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet PRØVEEKSAMEN i INF1000 23. november 2004 kl. 14.00 17.00 Dine svar skal skrives på disse oppgavearkene, og ikke på separate ark. Dette gjelder

Detaljer

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

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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00

Detaljer

Faglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten.

Faglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten. IN1010/INF1010 v2019 Eksamensinfo Eksamen IN1010/INF1010 våren 2019 Tid: 7. juni kl. 14:30-18:30 (4 timer) PRAKTISK INFORMASJON Hvis du synes noen deler av oppgaven er uklare, kan du legge dine egne forutsetninger

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

"Nelsons kaffebutikk"

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

Detaljer

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator Litt mer om uttrykk: ++ og -- INF : Forelesning Løkker og arrayer Mye og viktig stoff. Du MÅ løse oppgaver selv for å lære!. september 6 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for

Detaljer

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal. I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus

Detaljer

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

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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Kandidatnummer: UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet eksamen Eksamen i : INF1000 Grunnkurs i objektorientert programmering Eksamensdag : Mandag 3. desember 2007 Tid for

Detaljer

Løsningsforslag til eksamen i INF1000 våren 2006

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 =

Detaljer

INF1000 (Uke 4) Mer om forgreninger, While-løkker

INF1000 (Uke 4) Mer om forgreninger, While-løkker INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen I dag Repetisjon easyio Enkle if-setninger

Detaljer

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 101 - Grunnkurs i objektorientert programmering Eksamensdag : Tirsdag 4. juni 2002 Tid for eksamen : 09.00-15.00 Oppgavesettet

Detaljer

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus

Detaljer

Forelesning inf Java 4

Forelesning inf Java 4 Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette

Detaljer

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4 Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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å

Detaljer

INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon

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

Detaljer

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

Detaljer

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 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 =

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO PRØVEEKSAMEN INF1 - H6 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1 Grunnkurs i objektorientert programmering Dato: Torsdag 3. november 6 Tid for prøveeksamen

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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)

Detaljer

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. 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

Detaljer

GJØVIK INGENIØRHØGSKOLE

GJØVIK INGENIØRHØGSKOLE GJØVIK INGENIØRHØGSKOLE Postboks 191-2801 GJØVIK KANDIDATNUMMER: E K S A M E N FAGNAVN: FAGNUMMER: Programmering i C++ / Pascal / C LO154A, LO151A og LO142A EKSAMENSDATO: 7. juni 1994 TID: 09.00-14.00

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold 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:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Torsdag 4. desember 2014 Tid for eksamen: 14.30 (4 timer)

Detaljer

Java 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004

Java 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004 Java 4 Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo 1 Tre måter å lese fra terminal Først:

Detaljer

INF1000 : Forelesning 3

INF1000 : Forelesning 3 INF1000 : Forelesning 3 Programeksempler Løkker Arrayer Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet i Oslo 1 Body Mass Index (BMI) Vi skal lage et program

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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

Detaljer

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program Body Mass Index (BMI) Programeksempler Løkker Arrayer Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet i Oslo INF1000 : Forelesning 3 1 Vi skal lage et program

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO OPPGAVEN BLIR GJENNOMGÅTT PÅ FORELESNINGEN 24/10. DU BØR FORBEREDE DEG TIL FORELESNINGEN VED Å SETTE AV MINST TRE-FIRE TIMER TIL Å PRØVE Å LØSE OPPGAVEN PÅ EGENHÅND. UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige

Detaljer

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 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

Detaljer

INF1000 (Uke 14) Resten av eksamen H03 + del av V05

INF1000 (Uke 14) Resten av eksamen H03 + del av V05 INF1000 (Uke 14) Resten av eksamen H03 + del av V05 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen Eksamen H03, oppgave 2 2 Oppgave 2.1

Detaljer

Løsningsforslag, inf101, våren 2001

Løsningsforslag, inf101, våren 2001 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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

EKSAMEN. 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

Detaljer

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N FAGNAVN: Grunnleggende programmering FAGNUMMER: IMT 1031 EKSAMENSDATO: 19.desember 2005 KLASSE(R): 05HBIND*, 05HBINFA, 05HBISA,

Detaljer

Eksempel: Body Mass Index (BMI)

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

Detaljer

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

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder: Lese fra fil Filbehandling Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo INF1000 : Forelesning 5 Vi må først importere pakken easyio Vi åpner

Detaljer

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

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

Detaljer

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

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

Detaljer

Oblig4 - forklaringer. Arne og Ole Christian

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

Detaljer

Eksempel: Body Mass Index (BMI) Forelesning inf1000 - Java 3. Ferdig program (første del) Ferdig program (siste del)

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,

Detaljer

INF1000 : Forelesning 4

INF1000 : 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

Detaljer

Forelesning inf Java 5

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

Detaljer

Forelesning inf Java 5

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

Detaljer

i=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

i=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

Detaljer

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

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

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

Detaljer

INF 1000 Prøveeksamen. 23. november Ole Christian og Arne. Oppgave 1 (10 poeng) Er disse programsetningene lovlige i Java? Oppgave 2 (10 poeng)

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

Detaljer

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator Litt mer om løkker Arrayer le Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i slo Java Repetisjon: operatorene ++ og -- Instruksjon i = i + i = i - Alternativ Prefiks-operator

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO 1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN 115 Eksamensdag : Lørdag 20 mai, 2000 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 5 sider Vedlegg : Intet. Tillatte

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1000 Grunnkurs i objektorientert programmering Eksamensdag : Onsdag 21. November 2012 Tid for prøveeksamen : 12-16 Oppgavesettet

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Tirsdag 12. juni 2012 Tid for eksamen: 9:00 15:00 Oppgavesettet er

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 10. juni 2005 Tid for eksamen: 14.30 17.30 Oppgavesettet er på

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Kandidatnummer: BOKMÅL UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF1000 Grunnkurs i objektorientert programmering Eksamensdag : Fredag 1. desember 2006 Tid for eksamen

Detaljer

KONTINUASJONSEKSAMEN

KONTINUASJONSEKSAMEN Høgskolen i Gjøvik KONTINUASJONSEKSAMEN FAGNAVN: FAGNUMMER: Grunnleggende programmering og datastrukturer LO169A EKSAMENSDATO: 4. september 1996 KLASSE: 1 AA/AE TID: 09.00-14.00 FAGLÆRER: Frode Haug ANTALL

Detaljer

Forelesning inf Java 3

Forelesning inf Java 3 Forelesning inf1000 - Java 3 Tema: Mer om forgreninger Løkker Arrayer Litt om easyio Ole Christian Lingjærde, 5. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Eksempel:

Detaljer

Forelesning inf Java 3

Forelesning inf Java 3 Forelesning inf1000 - Java 3 Tema: Forgreninger Løkker Arrayer Ole Christian Lingjærde, 5. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 5. september 2013 1 Eksempel: Body Mass Index (BMI)

Detaljer

(MVC - Model, View, Control)

(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

Detaljer

OOP: Et stort eksempel

OOP: Et stort eksempel OOP: Et stort eksempel Administasjon av hopprenn Konkret eksempel på OOP-program. Programmet skal registrere navn og idrettslag til skihoppere trekke startlisten til første omgang lese inn lengde og 5

Detaljer

Administasjon av hopprenn. OOP: Et stort eksempel. Hva er objektene? Klassediagram av hopprenn-systemet

Administasjon av hopprenn. OOP: Et stort eksempel. Hva er objektene? Klassediagram av hopprenn-systemet Administasjon av hopprenn OOP: Et stort eksempel Konkret eksempel på OOP-program. Programmet skal registrere navn og idrettslag til skihoppere trekke startlisten til første omgang lese inn lengde og 5

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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

Detaljer

Hvis 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.

Hvis 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å

Detaljer

Hvis 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.

Hvis 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å

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO FASIT/LØSNINGSFORSLAG (kommentarene er for læringsformål og avspeiler ikke nødvendigvis hva som ble vektlagt ved sensuren denne gang). Forslaget er laget av Ole Christian Lingjærde. UNIVERSITETET I OSLO

Detaljer

Oblig 4Hybelhus litt mer tips enn i oppgaven

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,

Detaljer

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

Oppgavesettet 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

Detaljer

Oblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000

Oblig4 - 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

Detaljer

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt 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

Detaljer

Gjennomgang av en tenkt eksamensoppgave

Gjennomgang av en tenkt eksamensoppgave Tidsbruk fram til eksamen: et forslag Gjennomgang av en tenkt eksamensoppgave INF1000, 21. oktober 2008 Ole Christian Lingjærde Løs oppgaver for hverandre på tavle og kritiser hverandre Arbeid med obliger

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Mandag 30. november 2009 Tid for eksamen: 14.30 17.30

Detaljer

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

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

Detaljer

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne Side 1 av 7 Bokmålstekst Emne: PROGRAMMERING (nytt pensum, 10 studiep.) Grupper: laa, lab, lac, lia, lib, lic Eksamensoppgaven best~r av: Tillatte hjelpemidler: Antall sider (inkl. forsiden): 7 Alle trykte

Detaljer