INF1000 - Løsning på seminaropppgaver til uke 8

Like dokumenter
Løsningsforslag til eksamen i INF1000 våren 2006

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

INF1000 Prøveeksamen Oppgave 7 og 9

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

Læreboken på 45 minutter

INF Uke 10. Ukesoppgaver oktober 2012

UNIVERSITETET I OSLO

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

INF100 Institutt for informatikk Universitetet i Bergen Øving 5

INF Notat om I/O i Java

IN1010 våren januar. Objektorientering i Java

UNIVERSITETET I OSLO

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

Løse reelle problemer

Løse reelle problemer

Mer objektorientert programmering

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

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

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

Objektorientert Programmering Ekstraordinær eksamen 2014

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

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

Post-it spørsmål fra timen (Arv og subklasser)

/** *Kamp klassen inneholder kampfakte og hoveddelen av kampmotoren. young */

INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012

TOD063 Datastrukturer og algoritmer

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

Klasser og objekter. Tuva Kristine Thoresen 22. oktober Institutt for Informatikk

Eksempel 1 Eksempel 2 Dramatisering. INF1000 uke 3. Sundvollen 7. september 2015 Dag Langmyhr. INF1000 Sundvollen

Repetisjon. INF gruppe 13

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

HØGSKOLEN I SØR-TRØNDELAG

Løsningsforslag INF desember 2007

Fra Python til Java, del 2

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

INF1010 Sortering. Marit Nybakken 1. mars 2004

IN Notat om I/O i Java

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

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

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

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

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL

Kapittel 9: Sortering og søking Kort versjon

INF Seminaroppgaver til uke 3

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

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

INF1010 våren 2018 tirsdag 23. januar

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

UNIVERSITETET I OSLO

import java.util.arraylist;

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

UNIVERSITETET I OSLO

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

INF1010 våren Arv og subklasser - del 2

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

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

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

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

OPPGAVE 5b og 8b Java Kode

INF1000: Forelesning 6. Klasser og objekter del 1

Løsningsforslag, inf101, våren 2001

IN1010 V19, Obligatorisk oppgave 2

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

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

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

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

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

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

Jentetreff INF1000 Debugging i Java

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden

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

Leksjon 7. Filer og unntak

Forelesning inf Java 4

UNIVERSITETET I OSLO

Gjennomgang av eksamen H99

UNIVERSITETET I OSLO

INF1000: noen avsluttende ord

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

Eksamen Objektorientert Programmering 2012

INF1010 våren januar. Objektorientering i Java

String-manipulasjon og I/O i Java. INF1000 h14 - Hans Petter Taugbøl Kragset

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

HØGSKOLEN I SØR-TRØNDELAG

Avdeling for ingeniørutdanning Institutt for teknologi

Klasser, objekter, pekere og UML. INF gruppe 13

Del 3: Evaluere uttrykk

Løsningsforslag Test 2

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

Transkript:

INF1000 - Løsning på seminaropppgaver til uke 8 Oppgave 1 a) for(string nokkel : studenter.keyset){ System.out.println(nokkel); Studenten sitt navn blir skrevet ut. b) for(student dennestudenten : studenter.values()){ System.out.println(denneStudenten.toString()) Oppgave 2 a) Til en billettkø passer ArrayList best, siden man her kan bruke indeksen for å hele tiden hente ut element på plass 0. b) Til et personregister hvor personer har en unik id vil det passe best med HashMap, siden man her kan hente ut personen med nøkkel som id. Oppgave 3 Gitt HashMap en studenter der nøkkelverdien representerer et navn. Skriv metoden under for å finne ut om det finnes en student med navnet Espen Askeladd: public boolean finnstudent(string navn){ for(student dennestudenten : studenter.values()){ if(dennestudenten.tostring().equals(navn)){ return true; return false; 1

Oppgave 4 Om vi prøver å legge til to studenter ved samme navn i et HashMap vil den gamle studenten overskrides og ikke legger nåes ved nøkkelen. Oppgave 5 Forslag til datastrukturer: Bruk HashMap i OppskriftsBok for å lagre alle oppskriftene. Bruk ArrayList i Oppskrift for å lagre hver linje i filen. Bruk ArrayList i Oppskrift for å holde styr over alle ingrediensene. UML-diagram: OppskriftsMain public class OppskriftsMain{ public static void main(string [] args) throws Exception{ OppskriftsBok boka = new OppskriftsBok("oppskrifter.txt"); boka.skrivutalleoppskrifter(); System.out.println(boka.finnesOppskrift("Kantarellsuppe")); //Flere tester. 2

OppskriftsBok import java.util.hashmap; import java.io.file; import java.util.scanner; public class OppskriftsBok{ private HashMap<String, Oppskrift> oppskrifter = new HashMap<String, Oppskrift>(); public OppskriftsBok(String filnavn) throws Exception{ lagoppskrifterfrafil(filnavn); private void lagoppskrifterfrafil(string filnavn) throws Exception{ File filen = new File(filnavn); Scanner fil = new Scanner(filen); String //Linje er "Tittel". while(true){ //Forste linje er oppskriftstittel Oppskrift oppskriften = new Oppskrift(linje); oppskrifter.put(oppskriften.tostring(), oppskriften); //Legg til ingredienser. while(!linje.equals("oppskrift:")){ oppskriften.leggtilingrediens(linje); //Legg til oppskriftstekst. while(!linje.equals("tittel:")){ oppskriften.leggtiloppskriftslinje(linje); if(!fil.hasnextline()){ return; 3

/*Skriver ut alle oppskrifter i boken.*/ public void skrivutalleoppskrifter(){ for(oppskrift denneoppskriften : oppskrifter.values()){ System.out.println("\nTittel: " + denneoppskriften.tostring()); System.out.println("\nIngredienser:"); denneoppskriften.skrivutingredienser(); System.out.println("\nOppskrifttekst:"); denneoppskriften.skrivutoppskrift(); /*Sjekker om en oppskrift eksisterer i boken.*/ public boolean finnesoppskrift(string oppskriftstittel){ for(string denneoppskriftenstittel : oppskrifter.keyset()){ if(denneoppskriftenstittel.equals(oppskriftstittel)){ return true; return false; /*Skriv ut spesifikk oppskrift. Tips: Du burde sjekke om oppskriftstittelen finnes forst.*/ public void skrivutoppskrift(string oppskriftstittel){ if(finnesoppskrift(oppskriftstittel)){ Oppskrift oppskrift = oppskrifter.get(oppskriftstittel); else { System.out.println("Oppskrift finnes ikke"); 4

Oppskrift import java.util.arraylist; public class Oppskrift{ private String tittel; private ArrayList<String> oppskriften = new ArrayList<String>(); private ArrayList<String> ingredienser = new ArrayList<String>(); /*Metode som sjekker om noen om oppskriftens ingredienser kan inneholder allergier.*/ public Oppskrift(String oppskriftstittel){ this.tittel = oppskriftstittel; /*Skriver ut oppskriften. */ public void skrivutoppskrift(){ for(string dennelinjen : oppskriften){ System.out.println(denneLinjen); /*Skriver ut ingredienser. */ public void skrivutingredienser(){ for(string denneingrediensen : ingredienser){ System.out.println(denneIngrediensen); /*Returnerer tittelen paa oppskriften.*/ public String tostring(){ return tittel; /*Legger til en ingrediens i oppskriften.*/ public void leggtilingrediens(string ingrediensen){ ingredienser.add(ingrediensen); public void leggtiloppskriftslinje(string oppskriftslinje){ oppskriften.add(oppskriftslinje); 5