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



Like dokumenter
Gjennomgang av eksamen V99

UNIVERSITETET I OSLO

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

Løsningsforslag eksamen in105, våren 2000

TOD063 Datastrukturer og algoritmer

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Repetisjon. INF gruppe 13

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

INF Løsning på seminaropppgaver til uke 8

INF1010 våren 2018 tirsdag 23. januar

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

INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først)

OOP: Et stort eksempel

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

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

INF 1010, vår 2005 Løsningsforslag uke 11

OPPGAVE 5b og 8b Java Kode

Løsningsforslag Test 2

INF2100. Oppgaver 26. september til 1. oktober 2007

Litt om pakker og mest om data inn og ut

Videregående programmering 6

Løsningsforslag, inf101, våren 2001

INF Uke 10. Ukesoppgaver oktober 2012

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

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

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

Mer objektorientert programmering

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Forelesning inf Java 4

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

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 15.

UNIVERSITETET I OSLO

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

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

Inf 1000 høst 2005 Løsningsforslag ordinær eksamen

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

UNIVERSITETET I OSLO

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

INF2100. Oppgave 1. Oppgave 2 4. Løsningsforslag til oppgaver uke 40 og Se figur 1 på neste side.

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

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs

LO191D/LC191D Videregående programmering

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

INF100 Institutt for informatikk Universitetet i Bergen Øving 5

Forelesningen i dag: Meny for hver omgang. Hovedmenyen. I hovedmenyen skal vi foreta registrering av nye

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

INF2100. Oppgaver 23. og 24. september 2010

Eksempel: Body Mass Index (BMI)

INF Notat om I/O i Java

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

Løsningsforslag til eksamen i INF1000 våren 2006

(! )! #!! *#+,$&!! &#$

3 #$ *#+,$&!! &#$ (! )! #! 6 &#)%#. / 5$ #%#.67 / "## #&! %# # & #!!& %&$ # $!!!!# $#

INF1000 : Forelesning 5

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man

UNIVERSITETET I OSLO

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Innhold. INF1000 Høst Klasser og objekter. Uke 7: Mer objektorientert programmering Siri Moe Jensen

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

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

INF2100. Oppgave 1, 2 og 3. Løsningsforslag til oppgaver 23. og 24. september Her er det mange mulige løsninger her er én: import java.io.

Innlesning fra tastatur med easyio. INF1000 høst Vi må først skrive i toppen av programmet: import easyio.*;

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

Oblig 4Hybelhus litt mer tips enn i oppgaven

INF2100. Oppgaver 9. oktober 2012 C 100 X 10

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

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

INF2100. Oppgaver 6. og 11. oktober 2011 C 100 X 10

Forelesning inf Java 3

UNIVERSITETET I OSLO

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

Ole Christian Lingjærde, 12. september 2013

HØGSKOLEN I SØR-TRØNDELAG

Forelesning inf Java 4

Oppgave01.java class Bongo { 2 public static void main(string[] args){ 3 int[][][]bongo = new int[2][3][4]; 4 5 // SVAR: 24 6 } 7 } 8

IN Notat om I/O i Java

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

INF1010 våren Arv og subklasser del 1 (pluss litt I/O og unntaksbehandling)

INF1010 våren Arv og subklasser - del 2

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

INF2100. Oppgaver uke 40 og

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

INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012

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

Oppgave 1 - Kortsvarsoppgave. INF1000 eksamen V05. Oppgave 1 (c) Oppgave 1 (b) Svar: a = 9, b=10

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

Forelesning inf Java 3

Eksamen. Objektorientert Programmering IGR 1372

INF1000 : Forelesning 3

UNIVERSITETET I OSLO

Forelesning inf Java 5

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

Forelesning inf Java 5

INF1000: Forelesning 4. Mer om arrayer Metoder

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

UNIVERSITETET I OSLO

Transkript:

//-------------------------------------------------------- // // Fil: Oppg1.java - // løser oppgave 1 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import java.io.*; import java.util.*; import javagently.text; public class Oppg1 static PrintWriter ut; static BufferedReader inn; static String [] løpsklassenavn = "Aktiv herre elite", "Aktiv herre B", "Aktiv dame elite", "Aktiv dame B", "Bedrift dame", "Bedrift herre", "Bedrift blandet"; static int klassemeny() throws IOException System.out.println(" Velg ny løpsklasse (0 = ferdig): \n"); System.out.println((i+1) + " - " + løpsklassenavn[i+1]); int j = Text.readInt(inn); return j; public static void main ( String[] args) throws IOException String klubb, løperfnavn, løperenavn, løperpnr; int løpskl; inn = Text.open(System.in); ut = Text.create("Holmenkoll.data"); System.out.println("\n -- Program for å lage Holmenkoll-stafett - fil: \n"); System.out.print("Tast klubbens navn:"); klubb = Text.readString(inn); ut.println(klubb); løpskl = klassemeny(); while ( løpskl!= 0) ut.println(løpsklassenavn[løpskl-1]); for (int i = 1; i < 16; i++) System.out.print("\nGi fornavn på løper " + i +" :"); løperfnavn = Text.readString(inn); System.out.print("\nGi etternavn på løper " + i +" :"); løperenavn = Text.readString(inn); System.out.print("\nGi personnavn på løper " + i +" :"); løperpnr = Text.readString(inn); ut.println( i + " " +løperfnavn + " " + løperenavn + " " + løperpnr); løpskl = klassemeny(); ut.println("zzz"); ut.close();

// end main // end **** class Oppg1 ***** //-------------------------------------------------------- // // Fil: Holmenkollen.java - // løser oppgave 2 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import java.io.*; import java.util.*; import javagently.text; class Deltager String navn, pnum; int nr; Deltager (int i) nr = i; void lesdeltager(bufferedreader data)throws IOException int i = Text.readInt(data); if (i!= (nr+1) )System.out.println("Feil i fila, i delager nr :" + nr); navn = Text.readString(data) + " " + Text.readString(data); pnum = Text.readString(data); String lesnavn() return navn; String lespnum() return pnum; void skrivnavn(string n) navn =n; void skrivpnum(string p) pnum =p; class LopsKlasse String tittel; int klassenr; int starttime, startmin, startsek = 0; Hashtable lagene = new Hashtable(); // key = Klubb, elem = Lag LopsKlasse(String t, int nr) tittel = t; klassenr = nr; class Lag LopsKlasse lop; Klubb klubben; int startnum, slutttime, sluttmin, sluttsek; int plassering = 1; Deltager [] lopere = new Deltager[15]; Lag(Klubb k, LopsKlasse l) lop = l; klubben = k; void leslag(bufferedreader data)throws IOException

for (int i = 0; i<15; i++) lopere [i] = new Deltager(i); lopere[i].lesdeltager(data); int slutttid() return ((slutttime - lop.starttime)*3600 + (sluttmin - lop.startmin)*60 + (sluttsek - lop.startsek)); class Klubb String navn; int antlag = 0; Lag lagene [] = new Lag[7]; Klubb (String n) navn = n; void nyttlag( int lklasse, Lag l) lagene[lklasse] = l; antlag++; class HolmenkollLopet Hashtable alleklubbene = new Hashtable(), // key = KNavn, elem = Klubb allelagene = new Hashtable(); // key = Lag (ikke bruket) elem = Lag LopsKlasse [] start = new LopsKlasse[7]; BufferedReader data; HolmenkollLopet () for(int i = 0; i<7; i++) start[i] = new LopsKlasse(Holmenkollen.lopsKlasseNavn[i],i); int leslopsklasse() throws IOException // OPPGAVE 2C - metode 1 (av 2) // leser indeksen til lopsklassen fra fil "Akiv herre elite" = 0,... // "ZZZ" - returnerer -1 String s1 = Text.readString(data), s2, s3; int svar = 0; if(s1.equals("zzz")) return -1; s2 = Text.readString(data); if( s1.equals("bedrift")) if ( s2.equals("herre")) svar = 4; else if ( s2.equals("dame")) svar = 5; else svar = 6; else s3 = Text.readString(data); if ( s2.equals("herre") && s3.equals("elite")) svar = 0; else if (s2.equals("herre") && s3.equals("b")) svar = 1; else if (s2.equals("dame") && s3.equals("elite")) svar = 2;

else svar = 3; return svar; // end leslopsklasse void lesfrafil(string fnavn) throws IOException // OPPG 2C - metode 2 (av 2) String klubbnavn, klassenavn, loperfnavn, loperenavn, loperpnr; int lopskl; Klubb k; Lag l; data = Text.open(fNavn); klubbnavn = Text.readString(data); k = new Klubb(klubbNavn); alleklubbene.put(klubbnavn,k); lopskl = leslopsklasse(); while (lopskl >0) l = new Lag( k, start[lopskl]); l.leslag(data); k.nyttlag(lopskl,l); start[lopskl].lagene.put(k,l); allelagene.put(l,l); lopskl = leslopsklasse(); data.close(); // end lesfrafil void sjekk( Lag l) // OPPGAVE 2 D String p,p2; Lag l2; for( int i = 0; i < 15; i++) p = l.lopere[i].lespnum(); for ( Enumeration e = allelagene.elements(); e.hasmoreelements();) l2 = (Lag) e.nextelement(); for (int j = 0; j < 15; j++) p2 = l2.lopere[j].lespnum(); if (p.equals(p2) && p!= p2) // same value, different object System.out.println(" Personen: " + l.lopere[i].lesnavn() + ", med Pnr: " + p + " deltar på:" + l.klubben.navn + " og " + l2.klubben.navn );

// end sjekk void sjekkalle() // Laget for å være egnet for kall fra hovedmeny - 2 D Lag l; for ( Enumeration e = allelagene.elements(); e.hasmoreelements();) l = (Lag) e.nextelement(); sjekk(l); // end sjekkalle void endrepåmelding(bufferedreader inn ) throws IOException // OPPGAVE 2 E String Knavn,pnum,f,e; Klubb k; int lopsk; Lag l = null; Text.prompt("Gi klubb-navn:"); Knavn = Text.readString(inn); k = (Klubb)alleKlubbene.get(Knavn); System.out.println("Gi løpsklasse:"); for ( int i = 0; i < 7 ; i++) System.out.println( i + " - " + Holmenkollen.lopsKlasseNavn[i]); lopsk = Text.readInt(inn); if (k!= null) l = (Lag) start[lopsk].lagene.get(k); if (l == null) System.out.println("Feil i klubb-navn."); else System.out.println("Velg : T - trekke lag, E - endre lag: "); if (Text.readString(inn).equals("T")) // Trekk et lag start[lopsk].lagene.remove(k); allelagene.remove(l); k.lagene[lopsk]=null; k.antlag --; if ( k.antlag == 0) alleklubbene.remove(knavn); else // endre et lag System.out.print("Gi personnummer til løper som skal ut:"); pnum = Text.readString(inn); while (! pnum.equals("0")) int i; for ( i = 0; i < 15 ; i++) if( l.lopere[i].lespnum().equals(pnum)) break; if ( i < 15) System.out.print("Gi nytt fornavn:");

f = Text.readString(inn); System.out.print("Gi nytt etternavn:"); e = Text.readString(inn); l.lopere[i].skrivnavn( new String(f+ " " +e)); System.out.print("Gi nytt personnummer:"); l.lopere[i].skrivpnum ( new String(Text.readString(inn))); else System.out.println("Feil i personnummer."); System.out.print("Gi personnummer til løper som skal ut (0 = ferdig):"); pnum = Text.readString(inn); // end endrepåmelding void startnummer() // OPPGAVE 2 F int num = 1; for(enumeration e = start[i].lagene.elements(); e.hasmoreelements();) ((Lag)e.nextElement()).startNum = num++; // end startnummer void gistarttidspunkt() // OPPGAVE 2 G LopsKlasse lk; int oldtime = 12, oldmin = 0, oldnum =0, faktor; String s = "00"; lk = start[i]; lk.startmin = oldmin; lk.starttime = oldtime; faktor = lk.lagene.size()/100 + 1; oldmin += faktor * 15; while (oldmin >= 60) oldmin -= 60; oldtime++; if (lk.startmin == 0 ) s = "00" ; else s= "" + lk.startmin; System.out.println("Løpsklasse: " + lk.tittel + ", starter kl." + lk.starttime +"." + s + ".00, antall Lag =" + lk.lagene.size()); // end gistarttidspunkt void regslutttider(bufferedreader inn ) throws IOException // OPPGAVE 2 H int startnum; boolean found ; Lag l = null; System.out.print("Gi startnummer (avslutt med 0):"); startnum = Text.readInt(inn); while ( startnum > 0)

found = false; for (int i = 0; i < 7 &&! found; i++) for(enumeration e = start[i].lagene.elements(); e.hasmoreelements() &&! found;) l =(Lag)e.nextElement(); if (l.startnum == startnum) found = true; if (! found) System.out.println("Feil start-nummer"); else System.out.print("Gi slutttime:"); l.slutttime = Text.readInt(inn); System.out.print("Gi sluttmin:"); l.sluttmin = Text.readInt(inn); System.out.print("Gi sluttsek:"); l.sluttsek = Text.readInt(inn); System.out.print("Gi startnummer (avslutt med 0):"); startnum = Text.readInt(inn); // end regslutttider void finnvinnere() // OPPGAVE 2 I Lag l = null, bestelag ; int bestetid ; l = null; bestelag = null; bestetid = 10000000; for(enumeration e = start[i].lagene.elements(); e.hasmoreelements();) l =(Lag)e.nextElement(); if (l.slutttid() < bestetid ) bestetid = l.slutttid(); bestelag = l; if ( l!= null) System.out.println("Vinner i " + start[i].tittel + " er: " + bestelag.klubben.navn); // end finnvinner void giklubbeneresultatliste() // OPPGAVE 2J Lag l = null ; Klubb k = null; int slutttid ; for(enumeration e = start[i].lagene.elements(); e.hasmoreelements();) l =(Lag)e.nextElement(); slutttid = l.slutttid(); for(enumeration e2 = start[i].lagene.elements(); e2.hasmoreelements();) if ( ((Lag)e2.nextElement()).sluttTid() < slutttid) l.plassering ++; for (Enumeration e = alleklubbene.elements(); e.hasmoreelements();) k = (Klubb) e.nextelement(); System.out.println("Resultatliste for klubben: " + k.navn);

for (int i= 0; i < 7; i++) l = k.lagene[i]; if (l!= null) System.out.println("Løpsklasse: " + l.lop.tittel + ", plass: " + l.plassering + ",tid (sekunder):" + l.slutttid()); // end giklubbeneresultatliste // end class HolmenkollLopet public class Holmenkollen static BufferedReader inn; static String [] lopsklassenavn = "Aktiv herre elite", "Aktiv herre B", "Aktiv dame elite", "Aktiv dame B", "Bedrift dame", "Bedrift herre", "Bedrift blandet"; static int meny() throws IOException System.out.println("\nVelg funksjon: "); System.out.println("0 - Avslutt "); System.out.println("1 - Les kubbfil"); System.out.println("2 - Sjekk løpere (alle mot alle) "); System.out.println("3 - Trekke lag eller endre løpere "); System.out.println("4 - Gi startnummer "); System.out.println("5 - Gi starttider, skriv startliste "); System.out.println("6 - Registrer slutt-tider "); System.out.println("7 - Finn vinnere i hver løpsklasse "); System.out.println("8 - Gi klubbene resultatliste "); return Text.readInt(inn); public static void main ( String[] args) throws IOException HolmenkollLopet h; inn = Text.open(System.in); h = new HolmenkollLopet(); System.out.println("\n -- Program for å administrere Holmenkollløpet ---: \n"); int menyvalg = meny(); while ( menyvalg!= 0) switch(menyvalg) case 1: Text.prompt("Gi klubb-fil navn:"); h.lesfrafil(text.readstring(inn)); break; case 2: h.sjekkalle(); break; case 3: h.endrepåmelding(inn); break; case 4: h.startnummer(); break; case 5: h.gistarttidspunkt(); break; case 6: h.regslutttider(inn); break; case 7: h.finnvinnere(); break; case 8: h.giklubbeneresultatliste(); break; default: System.out.println("Velg et tall mellom 0 og 7"); break;

menyvalg = meny(); System.out.println("Programmet er ferdig"); // end main // end **** class Holmenkollen *****