"Nelsons kaffebutikk"
|
|
|
- Albert Arntsen
- 9 år siden
- Visninger:
Transkript
1 "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
2 Nelsons kaffebutikk Området som programmet skal handle om Oppgavene som brukerne (kundene) skal gjøre Testrekkefølge: En funksjon om gangen Brukerevaluering Programutførelse og test Kompilering og retting av syntaksfeil Analyse Hva består området av? Hvilke funksjoner skal programmet dekke? Kravspesifikasjon Design Hvordan skal programmet struktureres? Program og datastruktur Kodingsrekkefølge En funksjon om gangen En klasse om gangen Koding Velge array, evt. flere dimensjoner HashMap Nelsons kaffebutikk modifisert (JavaGently 8.6) IN105-javaNelson-2
3 Analyse Lageradministrasjon (inventory) Mange kaffeslag (blend, kind, coffee, type): Java, columbiansk, VIP, kenyansk, o Hvert kaffeslag har et navn, en pris, mengde på lager, minimumsnivå, strekkode Hvert kaffeslag leveres i partier (batches) o Hvert parti har en mengde og en utløpsdato Funksjoner o Klargjøre for mottak av partier o Vise data o Sjekke minimumsbeholdning o Sjekke hvor mye tilgjengelig o Endre pris o Legge til et parti til beholdning o Selge kaffe o Fjern for gammel kaffe IN105-javaNelson-3
4 Analyse: Modell av butikken Ett kaffelager Flere slag (type) Flere partier for hvert slag KaffeLager KaffeSlag KaffeParti mange mange IN105-javaNelson-4
5 Design: Metoder i KaffeLager-objektet KaffeLager JavaGently side 235 selg() nyttparti() slagene viskaffe() nyttkaffeslag() KaffeLager() utførordre() sjekkutløpsdato() lagerverdi() lesfrafil() skrivpåfil() Det lages bare en instans (et objekt) av denne klassen IN105-javaNelson-5
6 KaffeSlag Design: Metoder i de øvrige objektene Java JavaGently side 235 KaffeSlag() vispåskjerm() navn KaffeParti sjekkminimumsbeholdning(int dato) endrepris() nyttparti() pris parti KaffeParti() double selg() mengde 60.0 Boolean sjekkutløp(int dato) selg() sjekkutløp(int dato) lesfra(stream innfil) skrivpå(stream utfil) vispåskjerm double tilgjengelig() lesfra (Stream innfil) skrivpå (Stream utfil) utløpsdato IN105-javaNelson-6
7 Design: Velge datastruktur Array HashMap Lengde Fast Ubegrenset Ordning 0 til max-1 Ingen 2 og flerdimensjonale Gjennomløp Enkel for-løkke Iteration Sette inn objekt Tilordning put Oppdatere antall Ta ut objekt Tilordning, evt. flytting, remove oppdatere antall Søking Ingen get Kaffeslagene Kaffepartiene 1 Ubegrenset antall 1 Ubegrenset antall 2 Ingen ordning 2 Stadig nye inn og ut 3 Gjennomløpes ved les/skriv på fil 3 Kronologisk ordning 4 Opprette og fjerne 4 Gjennomløpes ved les/skriv på fil 5 Søking etter navnet 5 Opprette nye, fjerne eldste HashMap 6 Ingen søking, ta neste Array best 3 6, HashMap 1 2 IN105-javaNelson-7
8 Dato og tid Java har klasser for dette i pakken util + Mange muligheter Tungt å sette seg inn i Kan bruke int int dato1, dato 2; dato1 < dato2 ønsker vi skal bety at dato1 kommer før dato2. Leser derfor alle datoer inn fra terminal og fil på formen ååååmmdd IN105-javaNelson-8
9 KaffeLager KaffeSlag Modellen KaffeParti slagene Kenyan Java Columbian navn pris navn pris navn pris parti parti parti utløpsdato mengde 60.0 utløpsdato mengde 30.0 utløpsdato mengde 20.0 utløpsdato mengde 80.0 IN105-javaNelson-9
10 Kontrolløren KaffeKontroll main KaffeLager kl = new KaffeLager(); kl.utførordreogtavarepådata(); kl IN105-javaNelson-10
11 KaffeLager Konstruktør og utførordreogtavarepådata KaffeLager() slagene = new HashMap(); in = new Stream (System.in); filnavn = "kaffe.data"; slagene void utførordreogtavarepådata() lesfrafil(); utførordre(); skrivpåfil(); in filnavn kaffe.data IN105-javaNelson-11
12 Filformat 3 Columbian Antall kaffeslag Navn på kaffeslag Pris Antall partier Mengde Utløpsdato Java Kenyan IN105-javaNelson-12
13 KaffeLager void lesfrafil() lesfrafil slagene KaffeSlag k; innfil = new Stream (filnavn, Stream.READ ); int antslag = innfil.readint( ); for (int i=1; i<=antslag; i++) { k = new KaffeSlag( ); k.lesfra(innfil); slagene.put(k.navn,k); } // Slutt for filnavn k innfil Java navn pris første 1 void lesfra(stream innfil) siste 1 navn = innfil.readstring( ); pris = innfil.readdouble( ); siste = innfil.readint( ); for (int i=1; i<=siste; i++) { parti[i] = new KaffeParti(); parti[i].lesfra( ); innfil } KaffeSlag maxpartier 100 KaffeSlag() parti = new KaffeParti[maxPartier+1]; parti filnavn kaffe.data KaffeParti void lesfra(stream innfil) mengde = innfil.readdouble( ); utløpsdato = innfil.readint( ); innfil mengde 60.0 utløpsdato IN105-javaNelson-13
14 Testing For å teste en funksjon, må vi ha en måte å observere hva den gjør lesfrafil lager endringer i modellen i primærlageret, så vi kan ikke vite hva den gjør før vi lager utskriftsmetoder IN105-javaNelson-14
15 Etter å ha klarlagt funksjonalitet datastruktur og programstruktur Rekkefølge i koding skal de enkelte metoder defineres og kodes. To veier: En funksjon av gangen med nødvendige metoder i hver klasse for å kunne utføre funksjonen o Eks: Innlesing i personregister + Kan teste hver funksjon hvis vi har utskriftsrutiner Må holde oversikt over variable i mange klasser Vil følge denne rekkefølgen i Kaffebutikken En klasse av gangen med de metodene som trengs for å utføre alle funksjoner + Konsentrasjon om variablene i denne klassen Må kunne forutse hva en metode i en annen klasse kan gjør IN105-javaNelson-15
16 Organisering av metodene Standard framgangsmåte for koding av en av de ordrene programmet skal utføre er å lage en metode i hvert objekt som gjør sin jobb med å søke / lese av / oppdatere variablene i sitt objekt for denne ordren Metoden i KaffeLager kaller metoden i KaffeSlag som igjen kaller metoden i KaffeParti KaffeLager KaffeSlag KaffeParti selg() mange selg() mange selg() IN105-javaNelson-16
17 KaffeLager KaffeLager skrivpåfil void skrivpåfil() KaffeSlag k; utfil = new Stream (filnavn, Stream.WRITE); utfil.println(slagene.size()); Iterator it = slagene.values( ).iterator ( ); while (it.hasnext ( )) { k = (KaffeSlag) e.next(); k.skrivpå( utfil ); } utfil.close( ); k slagene filnavn innfil filnavn kaffe.data IN105-javaNelson-17
18 KaffeSlag og KaffeParti skrivpå Java KaffeSlag navn pris første 1 void skrivpå(stream utfil) utfil.println(navn+" "+pris+" "+antallpartier()); for (int i=første; i<=siste; i++) parti[i].skrivpå(utfil); utfil siste 3 maxpartier 100 parti filnavn void skrivpå (Stream utfil) kaffe.data KaffeParti utfil utfil.println(mengde+" "+utløpsdato); mengde 60.0 utløpsdato IN105-javaNelson-18
19 KaffeLager utførordre void utførordre () String ordre="0"; while (!ordre.equals( "A" )) { System.out.println ("Ordre (Vis all kaffen, " + "nytt Kaffeslag, nytt Parti, " + "Selg, sjekk Utløpsdato, " + "Lagerverdi, Avslutt)?" ); ordre = in.readstring( ); if ( ordre.equals ( "V" )) { viskaffe ( ); } else if ( ordre.equals ( "K" )){ nyttkaffeslag( ); } else if ( ordre.equals ( "P" )){ nyttparti( ); } else if ( ordre.equals ( "S" )){ selg( ); } else if ( ordre.equals ( "U" )){ sjekkutløpsdato( ); } else if ( ordre.equals ( "L" )){ lagerverdi( ); } } // Slutt kommando-løkka slagene in IN105-javaNelson-19
20 KaffeLager KaffeLager viskaffe void viskaffe() KaffeSlag k; Iterator it = slagene.values( ).iterator( ); while ( it.hasnext( )) { k = (KaffeSlag) it.next( ); k.vispåskjerm( ); } k slagene IN105-javaNelson-20
21 KaffeSlag og KaffeParti vispåskjerm Java KaffeSlag navn pris første 1 siste 3 maxpartier 100 void vispåskjerm() System.out.println( ); System.out.println(navn); System.out.print( "Pris: kr" + Stream.format(pris,6,2)); System.out.println(" Antall partier: " + antallpartier( )); System.out.println(" Mengde Utløpsdato"); for (int i = første; i <= siste; i++) parti[i].vispåskjerm( ); } // slutt vispåskjerm parti void vispåskjerm() System.out.println( Stream.format (mengde, 6, 1) + " " + utløpsdato); KaffeParti mengde 60.0 utløpsdato IN105-javaNelson-21
22 KaffeLager nyttkaffeslag KaffeLager void nyttkaffeslag( ) throws IOException System.out.print( "Navn? " ); String navn = in.readstring( ); System.out.print( "Pris? " ); double pris = in.readdouble( ); slagene.put(navn, new KaffeSlag(navn,pris)); pris navn slagene Brazilian KaffeSlag må ha en konstruktør som tar verdier gjennom parametre IN105-javaNelson-22
23 Nytt kaffeslag-objekt Brazilian KaffeSlag navn pris første 1 KaffeSlag(String n, double p) siste 0 // Konstruktør som får verdier tilsendt navn = n; pris = p; parti = new KaffeParti[maxPartier+1]; maxpartier 100 parti IN105-javaNelson-23
24 Design: Invariant for parti-arrayen Nye partier settes inn sist i parti int siste er indeksen for siste (nyeste) parti som er satt inn Gamle partier tas ut fra begynnelsen int første er indeksen for første (eldste) parti som stadig er med int maxpartier er høyeste indeks i parti Invariant: 1<=i<første: KaffeParti[i] = første<=i<=siste: KaffeParti[i]!= siste<i<=maxpartier: KaffeParti[i] = Når siste==maxpartier og det kommer et nytt parti, flyttes alle partiene først i arrayen, slik at første==1 0 1 første siste maxpartier IN105-javaNelson-24 parti
25 KaffeLager KaffeLager selg void selg() KaffeSlag k; String navn; System.out.print ( "Kaffeslag? " ); navn = in.readstring( ); k slagene // Leter fram kaffeslaget med dette navnet: navn k = (KaffeSlag) slagene.get(navn); if (k!=) { // Et kaffeslag med dette navnet ble funnet Java k.selg( ); } else System.out.println( "Beklager ingen kaffe som heter " + navn ); IN105-javaNelson-25
26 KaffeSlag selg void selg() navn pris Java parti double vilselge; vilselge System.out.print( "Hvor mange kilogram? " ); 100 vilselge = in.readdouble( ); if (vilselge > pålager( )) System.out.println( "Beklager, vi har bare " + pålager( )+ " på lager nå" ); else { double solgtnå = 0, igjenåselge = vilselge; for (int i = første; igjenåselge > 0; i++) { solgtnå = parti[i].selg( igjenåselge ); igjenåselge = igjenåselge - solgtnå; } fjerntommepartier( ); } double pålager() double beholdning=0; for (int i=første; i<=siste; i++) { første 5 siste 9 KaffeSlag maxpartier 100 solgtnå 0 igjenåselge 100 beholdning 0 if (parti[i]!= ) beholdning = beholdning + parti[i].mengde; } // Slutt for return beholdning; 0 1 første siste maxpartier IN105-javaNelson-26
27 KaffeParti KaffeParti selg Testdata for salg; double selg(double vilselge) Et kaffeparti som double solgt; if (mengde>=vilselge) { mengde = mengde-vilselge; return vilselge; } else { solgt = mengde; mengde = 0; return solgt; } vilselge 60 ikke fins Mer enn på lager Mer enn det er i ett parti Mindre enn det første partiet for salg mengde 60.0 utløpsdato IN105-javaNelson-27
28 KaffeSlag fjerntommepartier Java KaffeSlag navn void fjerntommepartier() parti for (int i=første; i<=siste; i++) { if (parti[i]!= ) { // Unødvendig test hvis invarianten holder if (parti[i].mengde==0) { parti[i]=; første = i+1; } } // Slutt if (parti[i]!= ) } // Slutt for 0 1 første siste maxpartier Testes enklest ved å sette maxpartier til 3 eller et annet lite tall IN105-javaNelson-28
29 KaffeLager KaffeLager sjekkutløpsdato void sjekkutløpsdato( ) int dato; System.out.print( "Dato (ååååmmdd)? " ); dato = in.readint( ); KaffeSlag k; Iterator it = slagene.values( ).iterator( ); while ( it.hasnext( )) { k = (KaffeSlag) it.next( ); k.sjekkutløpsdato(dato); } // slutt while k dato slagene IN105-javaNelson-29
30 KaffeSlag sjekkutløpsdato Java KaffeSlag navn pris første 7 double sjekkutløpsdato(int dato) for (int i=første; i<=siste; i++) { if (parti[i].utløpsdato<dato) { parti[i]=; første = i+1; } // Slutt if } // Slutt for siste 9 maxpartier 100 dato parti 0 1 første siste maxpartier IN105-javaNelson-30
31 navn void nyttparti() pris Java første 7 KaffeSlag siste 9 maxpartier 100 if (første==1 & siste==maxpartier) { System.out.println("Beklager, programmet er fullt"); } else { if (siste==maxpartier) { // Her er første>1 // Flytter alle objektene slik at de starter i parti[1] for (int i=første; i<=siste; i++) parti[i-første+1] = parti[i]; siste = antallpartier(); første = 1; }; siste++; parti[siste] = new KaffeParti(); parti[siste].lesfraterminal(); } // Slutt else KaffeSlag nyttparti parti 0 1 første siste maxpartier IN105-javaNelson-31
32 KaffeParti lesfraterminal void lesfraterminal() System.out.print ("Mengde? "); mengde = in.readdouble( ); System.out.print ("Utløpsdato (ååååmmdd)? "); utløpsdato = in.readint( ); mengde 60.0 utløpsdato KaffeParti Fullstendig program via programeksempelsida IN105-javaNelson-32
IN105-javaNelson-2. array, evt. flere dimensjoner. Institutt for informatikk Jens Kaasbøll sept. 1999. En funksjon om gangen En klasse om gangen
"Nelsons affebuti" et esempel på systemutviling med objeter Originale lysar av Jens Kaasbøll - mindre endringer av G. Sagestein og Knut Hegna IN5-javaNelson- Analyse Lageradministrasjon (inventory) Mange
Litt om pakker og mest om data inn og ut
Litt om pakker og mest om data inn og ut IN105-javainnogut-1 import java.io.*;. Data inn fra tastaturet lesemetode tastatur BufferedReader void lesemetode (String [ ] args) throws IOException {... /* sett
3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster
3 emner i dag! INF1000 Uke 5 Litt om objekter, pekere og null Filer og easyio Litt mer om tekster Litt om objekter, filer med easyio, tekst 1 2 Objekter og pekere Vi lager pekere og objekter når vi bruker
Repetisjon. INF1000 - gruppe 13
Repetisjon INF1000 - gruppe 13 Lese fra fil Scanner import java.util.*; void lesfrafil() { try { Scanner innfil = new Scanner(new File( fugleobservasjoner.txt )); while (innfil.hasnext()) { String linje
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
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
Eksempel med to-dimensjonal array Filbehandling Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 6 Vi skal lage et program som illustrerer
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
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 =
13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
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 =
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
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.
Objektorientert design av kode. Refaktorering.
Objektorientert design av kode. Refaktorering. DEL 2 INF1010-forelesning 9. mars Ragnhild Kobro Runde Kjennetegn på god design (fra INF1050) En god utforming gjør den jobben den er ment å gjøre. En god
23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
22.02.2009. Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java
Spørsmål fra forrige forelesning INF1000 Forelesning 7 Operator-presedens i Java? Hvordan virker metodene inword()/inint()/etc. i In-klassen i easyio når vi skriver inn flere verdier på tastaturet? Litt
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
Oppgave 1 (Programtolkning) INF1000 Eksamen V06. Oppgave 1 (Programtolkning) Oppgave 1 (Programtolkning)
INF1000 Eksamen V06 1a: Hva blir skrevet ut når programmet nedenfor kjøres? class stringhåndtering{ public static void main (String[] args){ String s = "Lykke til på eksamen"; String t = "Eksamen"; System.out.println(s.indexOf(t));
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
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
TOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først)
INF1010 våren 2019 Onsdag 30. januar Mer om unntak i Java (med litt repetisjon av I/O først) Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type:
Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011) HashMap, innstikksortering, javadoc (kap. 9.1-9.11, m.m. i "Rett på Java" 3. utg.) NB! Legg merke til at disse er løsningsforslag. Løsningene
Gjennomgang av eksamen V99
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
Inf1000 (Uke 10) HashMap og ArrayList
Inf1000 (Uke 10) HashMap og ArrayList Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Bibliotekpakker i Java Det er laget mange
Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2
Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien
IN1010 våren januar. Objektorientering i Java
IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som
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
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];
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
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
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
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
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å
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: Varighet: Fagnummer: Fagnavn: Klasse(r): Studiepoeng: Faglærer(e): Hjelpemidler: Oppgavesettet består av:
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
Innlesning fra tastatur med easyio. INF1000 høst 2010. Vi må først skrive i toppen av programmet: import easyio.*;
Innlesning fra tastatur med easyio INF1000 høst 2010 Forelesning 2: Innlesning fra terminal Boolean-variable if-setninger Løkker Litt mer om heltall: divisjon og modulo Vi må først skrive i toppen av programmet:
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:
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
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
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
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
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
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
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
Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs
Forkurs INF1010 Dag 3 Andreas Færøvig Olsen ([email protected]) Eivind Storm Aarnæs ([email protected]) Institutt for Informatikk, 14. januar 2015 Forkurs INF1010 - dag 3 Strenger Fil-I/O Unntakshåndtering
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
(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
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
Oppgave 1 - Kortsvarsoppgave. INF1000 eksamen V05. Oppgave 1 (c) Oppgave 1 (b) Svar: a = 9, b=10
Oppgave 1 - Kortsvarsoppgave (a) INF1000 eksamen V05 class SkrivHei { public static void main (String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 2; j ++) { i = i + 4; System.out.println("hei");
INF1000 - Løsning på seminaropppgaver til uke 8
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()){
Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7
Gjennomgang prøveeksamen 2014 oppgave 1, 2, 4, 5, 7 1a: Hva er verdien til tall etter at følgende kode er utført: 17 int tall = 5; tall = (tall*3) + 2; 5 15 17 1b: Anta at følgende programsetninger utføres.
Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr
Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser
Generelt om oblig 3. Oppgaveteksten kort sammendrag. Deloppgaver/menyvalg 15/03/2010. INF1000 Forelesning 9
Generelt om oblig 3 INF1000 Forelesning 9 15. mars 2010 Tips til oblig 3, separatorer i easyio, Eliza (bruk av HashMap), mer om metoder og klasser Christian M. Hansen Institutt for informatikk, UiO Les
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
IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden
Øving 4 Thorstein Brekke Operativsystemer Oppgave 1 Kode for Murer: // Uke4oppgave1murer.cpp : main project file. #include "stdafx.h" using namespace System; using namespace Threading; using namespace
Løse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve Repetisjon fra forrige uke: while Syntaks: while (condition) do1; do2;... Eksempel:
Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket
Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke
INF1010 våren januar. Objektorientering i Java
INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort
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
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
Løsningsforslag til eksamen i INF1000
Løsningsforslag til eksamen i INF1000 Are Magnus Bruaset (oppgave 1a e og 3) Dag Langmyhr (oppgave 1f j og 2) 11. juni 2004 1 Flervalgsoppgave (I løsningsforslaget her står noen kommentarer om hvorfor
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
Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen ([email protected]) Tuva Kristine Thoresen ([email protected]) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
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
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
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
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 :
Oversikt. INF1000 Uke 3. Repetisjon Program. Repetisjon Program. Litt repetisjon Program Variabler og Uttrykk Presedens Matematiske funksjoner
Oversikt INF1000 Uke 3 Innlesing fra terminal, formatert utskrift og forgreininger Litt repetisjon Program Variabler og Uttrykk Presedens Matematiske funksjoner Innlesing Formatert utskrift Repetisjon
Post-it spørsmål fra timen (Arv og subklasser)
Post-it spørsmål fra timen 30.01 (Arv og subklasser) Tegning Spørsmål: Skjønte ikke tegningene Hater tegningene. Lær meg å tegne. Mvh frustrert elev. Spørsmål: Datastruktur-tegning, og hvor mye detaljer
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 :
Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering
Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at
programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"
Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"
UNIVERSITETET I OSLO
Kandidatnummer: Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1000 Grunnkurs i objektorientert programmering Prøveeksamensdag : Tirsdag 10. november 2015 Tid
for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(i*j); System.out.println();
Repetisjon: nesting av løkker 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
Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b
Oppgave 1 1 a INF1020 Algoritmer og datastrukturer Forelesning 14: Gjennomgang av eksamen vår 2001 oppgave 1,2,4 Arild Waaler Institutt for informatikk, Universitetet i Oslo Oppgave 1 a Programmer en ikke-rekursiv
