INF1000 Klasser og objekter
|
|
- Edith Andresen
- 8 år siden
- Visninger:
Transkript
1 INF1000 Klasser og objekter Marit Nybakken March 1, 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet på eksamen, de er bare ment som en forklaring, ingen streng definisjon. Motivasjon Kurt eier en geitefarm. Han driver oppdrett av geiter med vanlig pels og angorapels. Geitene han avler på kan ha mange farger, hvit, sort, rød, grønn og blå. De kan også ha ulike tegninger: striper, prikker og sjakkmønster. Han avler også frem syngende geiter, og trener dem opp til å synge mange forskjellige sanger, mest innenfor svensk folkemusikk, Evert Taube og desslike, og han har en liste over alle sangene som de syngende geitene har lært. Ikke alle geitene kan synge, men alle kan breke. Kurt selger videre geiter til andre oppdrettere og til folk som ønsker en syngende geit som husdyr. For å få fart på omsetningen, ønsker han å lage en webside med presentasjon av alle geitene sine, og har vendt seg til deg for å be om hjelp. Kurt har satt opp webcamera og mikrofon i alle båsene. Folk skal kunne se på video av hver enkelt geit og få vite all informasjon som Kurt har om geiten. De skal kunne søke på geiter som har en bestemt farge, pels eller mønster. I tillegg skal man kunne se stamtavlen til hver geit. Man kan også stille en geit et spørsmål som den kan legge ut svar på når den har tid, eller høre den synge en sang fra repertoaret. Man skal også kunne se hva slags killinger man sannsynligvis vil få hvis man parrer to fritt valgte geiter med hverandre. Kurt har selvfølgelig all slik informasjon liggende, siden han er en ekspert på geiter fra barnsben av. Når Kurt ikke avler på geiter, driver han med traktorpulling og atomfysikk. 1
2 Figure 1: Her er Kurt Han er en hyggelig fyr, og liker å slappe av med en kopp te og Nytt på Nytt på NRK1. Du vil derfor ikke få noe problem med å samarbeide med ham, så lenge du takler geitelukten. Han vil bare at du skal lage et fint system til ham, så skal han fylle inn informasjonen selv. Du klør deg i hodet. Dette høres ut som en enorm oppgave. Hvor mange arrayer kan man komme til å trenge her for å få lagret all informasjonen om geitene? Og når du endelig har fått alle haugene av String-arrayer på plass, hvordan skal du klare å konsentrere deg lenge nok av gangen til å lage alle de dusinvis av indre for-løkkene som skal til for å finne igjen all informasjon om en geit? Og hvordan skal du få stilt den et spørsmål og hørt den synge? Klasser og objekter Objektorientering er en ny og for dere uvant måte å dele opp det et program skal gjøre på og dataene det skal inneholde. Vi er nå nødt til å starte litt fra bunnen av igjen og for øyeblikket glemme det vi har lært om arrayer, løkker, variable og metoder som måter å skrive et program på. Vi skal se på programmet vi skal lage på et litt høyere nivå. Vi vil at det først og fremst skal bestå av en samling med geiter. Hver geit har en rekke egenskaper. Blant disse har vi 2
3 alder vekt kjønn farge pelstype tegning navn og kanskje idnummer og kanskje syngeferdigheter En geit har også to andre geiter som mor og far. Den har kanskje også flere kull bestående av en rekke geitekillinger, som jo er geiter igjen. I tillegg til å ha egenskaper kan geitene også utføre oppgaver. Disse vil være å synge (eventuelt bare breke) svare på spørsmål. parre seg med andre geiter Ut i fra dette lager vi oss en oppskrift på hva en geit er. Vi gjør dette ved å lage oss en ny klasse Geit. Enhver egenskap en geit kan ha representerer vi med en variabel, deklarert utenfor metodene. Enhver oppgave en geit kan utføre, represesenterer vi med en metode. // Definisjonen av en geit class Geit { // Egenskapene til en geit int alder, idnummer, syngeferdigheter; double vekt; boolean kjønn, pelstype; String farge, tegning, navn; Geit mor, far; // peker på mor og far 10 Geit [ ] killinger; // Oppgavene en geit kan utføre void syng(string sang) { 3
4 // Syng en sang String svarpåspørsmål(string spørsmål) { // Så hvordan er det egentlig å være en geit? 20 // Jo, nå skal du høre... Kull parrdeg(geit make) { // En helt naturlig del av livet på en bondegård Jassånå, tenker du. Nå har du laget en geit til programmet. Men vi skal jo ha hundrevis, kanskje tusenvis av geiter. Må vi lage en tilsvarende klasse Geit2, Geit3 osv opp til Geit4700? Nei, det trenger vi ikke. Det vi har laget er en slags Geitedefinisjon. Når vi har denne definisjonen, kan vi ut i fra den lage oss så mange geiter vi bare vil ved å lage objekter av klassen Geit. Et objekt lager vi ved å si new Geit(). Imidlertidig vil geita bare stikke av igjen hvis vi bare skriver new Geit(); på en linje. Vi er nødt til å feste et halsbånd til geita, så vi kan få tak i henne senere. Dette gjør vi ved å lage oss en Geite-peker som vi setter til å peke på objektet: Geit geitami; // Lager en Geite-peker Geit enannengeit; // lager nok en Geitepeker geitami = new Geit(); // Lager en ny geit, og setter pekeren geitami til å peke på den så den ikke stikker av enannengeit = new Geit(); // Lager nok en geit og setter den andre pekeren til å peke på den. Geit nokengeit = new Geit(); // Gjør begge deler på en linje. Nå har vi laget oss tre geiter. Foreløpig har vi ikke gitt geitene forskjellige egenskaper, så vi kan ikke akkurat se forskjell på dem. Vi skal derfor endre på objektvariablene til hvert objekt. Dette er altså de variablene som vi deklarerte helt på toppen. geitami.navn = "Torstein"; geitami.farge = "Blå"; enannengeit.navn = "Hjørdis"; enannengeit.farge = "Rød"; nokengeit.navn = "Kjartan II"; nokengeit.farge = "Hvit"; 4
5 Nå er det lett å se forskjell, geitene har forskjellig farge og har forskjellige navn. Det er viktig å huske på at hvis man endrer på objektvariablene til ett objekt, så gjelder ikke det for alle de andre objektene. Hvis jeg kaller den ene geita mi for Hjørdis, så betyr ikke det at alle de andre også heter Hjørdis, de fortsetter å hete Torstein og Kjartan. Du har også ditt eget navn, studentnummer, mor og far, hybel og teddybjørn. Du deler ikke dette med hele verden. Hvert objekt har på samme måte sine kopier av objektvariablene, slik at vi kan lagre info per objekt. Det samme gjelder metodene i objektet. Hvis du ber en geit om å synge, får du ikke det samme resultatet som hvis du ba en annen geit om å synge. Det avhenger av geitas syngeferdigheter, kjønn og alder (avgjør bass/tenor/sopran) kanskje arv og opplæring fra mor og far, og en masse andre forhold. Vi kan kalle en metode i et av geiteobjektene på denne måten geitami.syng( Calle Schewens vals ); Altså objektpeker.metodenavn(parametre); Da kalles metoden nettopp i geiteobjektet som pekes på av geitami, den som heter Torstein og er blå. Hvis Torstein tidligere ble satt til å være 1 år og syngeferdighetene hans er gode, vil han muligens synge Calle Schewen med en lys og vakker tenor. Kurt har laget en sangliste til oss, med alle de sangene som han lærer opp geitene i. Alle geitene skulle gjerne ha hatt denne tilgjengelig. Ofte kan ikke brukerne av websiden noe om svensk folkemusikk, og ber bare en geit om å synge en tilfeldig sang. Da hadde det vært praktisk om geitene kunne delt en liste over alle sangene, kanskje med tittel, forfatter noter og tekst, slik at de ikke får panikk og scenefrykt og plutselig ikke husker noen av sangene. Vi lager oss derfor en klasse Sang: // Definisjonen på en sang class Sang { // Egenskapene til en sang String tittel; String forfatter; Image noter; String tekst; 5
6 final String nasjonalitet = "Svensk"; // er bare det som 10 // rocker på geitefarmen // En sang kan vise seg selv frem // på forskjellige måter, alt etter hva som er praktisk // for geita void visnoter() { // Hent frem bildet av notene og vis det på skjermen? void vistekst() { // Vis frem teksten på skjermen, pent formatert med // vers og understrekning av ordrim 20 og geitene skal nå dele på en liste av alle sangene // Definisjonen av en geit class Geit { static Sang [ ] fellesrepertoar; // Egenskapene til en geit int alder, idnummer, syngeferdigheter; double vekt; //... osv 10 Legg merke til static foran Sang-arrayen. Dette betyr at alle objektene deler på arrayen. Arrayen er en klassevariabel. Hvis du legger til en sang, sletter en sang eller endrer på en sang i arrayen, så synes dette for alle objektene. Dette er riktig bruk at static, vi bruker det til å la objektene dele variable. Kurt vil nå legge til en sang til repertoaret. Vi lager først et nytt Sang-objekt med informasjonen om sangen Sang nysang = new Sang(); nysang.navn = "Rosa på ball"; nysang.forfatter = "Evert Taube"; nysang.tekst = "Tänk att jag dansar med Andersson\n" + "lilla jag, lilla jag med Fritiof Andersson.\n" + "Tänk att bli uppbjuden av en så n populär person.\n"; noter da. 6
7 Figure 2: Og her er Torstein Man har nå to måter å putte inn sangen i fellesarrayen. Man kan enten si Geit.fellesrepertoar[antall_sanger] = nysang; Altså, bruke Klassenavn.arraynavn. Eller vi kan gå via en av geitene geitami.fellesrepertoar[antall_sanger] = nysang; Altså, pekernavn.arraynavn. Det spiller ingen rolle hvilken av geitene vi her bruker, da arrayen er den samme for alle geitene. Nå er det kanskje noen som lurer litt på hvor all denne koden som lager geiter og styrer rundt med geitene skal ligge. Og hvor skal vi lagre alle pekerne til geitene? Skal den ligge i klassen Geit? Nei, absolutt ikke. En geit er et ganske ignorant vesen, den vet bare om seg selv, hva den heter, hvilken farge den har, hva den veier, og bryr seg ikke med alle de andre geitene (med mindre det dreier seg om å lage geitebarn). Kun programkode for egenskaper som en geit har og oppgaver den kan utføre skal ligge inni denne klassen. 7
8 Når vi støter på slike problemer kan vi heller prøve å forestille oss hvordan det fungerer i den virkelige verden. Hvor befinner alle geitene seg? Jo, de befinner seg på geitefarmen, eventuelt i fjøset. Dette gir opphav til en ny klasse Geitefarm, der alle geitene skal være. Når man er i geitefarmen, kan man også tusle rundt, lete etter geiter med bestemte farger, bestemte navn, osv. // En farm har mange geiter.... class Geitefarm { Geit [ ] allegeitene = new Geit[1000]; int antall geiter = 0; String bestyrer; Inn tast = new Inn(); 10 void meny() { // Her kan Kurt styre geiteregisteret while(<ikkeavslutt>) { // Legg til en geit // Parr en geit med en annen geit // Søk etter geit 20 // Her kan Kurt legge til en geit i registeret void leggtilgeit() { // Lag den nye geiten Geit g = new Geit(); // Les inn informasjon og lagre i geiteobjektet 30 System.out.print("Navn: "); g.navn = tast.instring(); System.out.print("ID: "); g.idnummer = tast.inint(); System.out.print("Kjønn? M/F "); tast.skipwhite(); char kjonn = tast.inchar(); if(kjonn == M ) g.kjonn = false; else 40 g.kjonn = true; // osv... // Legg geita inn i registeret allegeitene[antall geiter] = g; 8
9 antall geiter++; // Søk etter geiter med en bestemt farge 50 void finngeitermedfarge() { System.out.println("Farge: "); String farge = tast.instring(); for(int i=0;i<antall geiter;i++) { if(allegeitene[i].farge.equals(farge)) { // Geit funnet, vis informasjon 60 // Finn en geit med en bestemt id Geit finngeit(int id) { for(int i=0;i<antall geiter;i++) { if(allegeitene[i].id == id) { return allegeitene[i]; return null; 70 // Få en bestemt geit til å synge en sang void fågeittilåsynge(int geiteid, String sang) { Geit g = finngeit(geiteid); g.syng(sang); Vi har her altså en array der vi kan lagre pekerne til alle geiteobjektene. Dette er egenskapen til geitefarmen, den har mange geiter i båser, hver plass i arrayen representerer en bås der det kan stå en geit. Vi legger en peker inn i arrayen/binder fast halsbåndet til geita til båsen ved å skrive allegeitene[båsnummer] = geitepeker; Da vil det for fremtiden være slik at allegeitene[båsnummer] også peker på dette Geite-objektet. Geitefarmen vet også hvor mange geiter den har i alt. Siden det er den som lagrer geitene, er det også den som må kunne legge til nye geiter, fjerne geiter (hvis en geit dør), søke blant geitene og få geitene til å utføre oppgaver. Den har derfor metoder for hver av disse oppgavene. 9
10 Hvorfor har vi ikke satt alle metodene og variablene til static i klassen Geitefarm? Vi skal fra nå av som oftest unngå det. Statiske metoder og variable skal brukes der det gir mening å bare ha ett eksemplar. I teorien kan vi tenke oss at vi etterhvert ville utvide programmet vårt med flere geitefarmer. Kanskje Kurt går i samarbeid med resten av geitefarmene i området for å øke den genetiske variasjonen. Da har vi behov for å lage flere objekter av klassen Geitefarm, en for hver farm. Dette ville ikke gå hvis alle metodene og geitearrayen var static. Alle programmer startes i main-metoden, og den har vi ikke laget enda. Vi skal nå lage oss en siste klasse som kun inneholder main og starter opp geitefarmen til Kurt. // Denne klassen starter bare opp registeret class GeitefarmMain { public static void main(string [ ] args) { Geitefarm f = new Geitefarm(); f.bestyrer = "Kurt"; f.meny(); 10 Her lages det nå en ny geitefarm, bestyreren av farmen settes til å være Kurt og vi starter opp menyen i objektet. Denne menyen vil fortsette å kjøre til brukeren på en eller annen måte velger å avslutte, og da avslutter samtidig programmet. Konklusjon Vi har nå sett en ny måte å programmere på. Vi prøver å modellere programmets verden med objekter som har bestemte egenskaper, og lar disse objektene interaktere med hverandre ved hjelp av metoder. Vi får dermed et mer intuitivt og oversiktlig program, i og med at det minner mye mer om den verden vi forsøker å representere med programmet vårt. Programmet er selvfølgelig langt fra ferdig. Andre klasser kan etterhvert komme inn. Kanskje vi ønsker oss en Bestyrer-klasse for bestyrerne av geitefarmene. Vi så også at geitene hadde en array av Kull. Kull må da være en 10
11 klasse som inneholder informasjon om et geitekull, med fødselsdato, far og en liste med geiter, og den har vi heller ikke laget. Vi trenger også et webinterface til Geitefarmklassen, med metoder som kommuniserer med geitefarmen og henter ut informasjon om geitene. Kanskje ønsker vi også å lagre mer informasjon om brukerne av websystemet, for eksempel lagre navn, adresse, brukernavn og passord, og da kommer det fort inn en klasse WebBruker. Og så videre. Selv om modellering med objekter kan gjøre programmene lettere å holde oversikten over, kan vi fremdeles fort lage kaos. Vi skal senere lære mer om hvordan vi kan planlegge pg dokumentere objektorienterte programmer ved hjelp av diagrammer. 11
INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004
INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
DetaljerINF1000 HashMap. Marit Nybakken marnybak@ifi.uio.no 2. november 2003
INF1000 HashMap Marit Nybakken marnybak@ifi.uio.no 2. november 2003 Dette dokumentet skal tas med en klype salt og forfatteren sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
DetaljerEnkle generiske klasser i Java
Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt
DetaljerINF1000. Marit Nybakken 10. februar 2004
INF1000 Løkker Marit Nybakken marnybak@ifi.uio.no 10. februar 2004 Motivasjon En ting datamaskinen er veldig flink til er å gjøre den samme tingen mange mange ganger på rad. Oppgaver som skal utføres innebærer
DetaljerOblig 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,
DetaljerINF1010 Sortering. Marit Nybakken 1. mars 2004
INF1010 Sortering Marit Nybakken marnybak@ifi.uio.no 1. mars 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
DetaljerINF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012
INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver
DetaljerLøsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse
DetaljerKlasser, objekter, pekere og UML. INF1000 - gruppe 13
Klasser, objekter, pekere og UML INF1000 - gruppe 13 Klasse Beskriver ofte ting fra den virkelige verden Veldig ofte et substantiv (Person, Bok, Bil osv.) class Person { String navn; int alder; } class
DetaljerINF1000: Forelesning 6. Klasser og objekter del 1
INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK 2 Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer navn, brukernavn og telefonnummer.
DetaljerOBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK
INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer, bruker og telefonnummer Med
Detaljer1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje
DetaljerINF1000 Behandling av tekster
INF1000 Behandling av tekster Marit Nybakken marnybak@ifi.uio.no 23. februar 2004 Tekster Vi kommer nesten aldri utenom å bruke tekststrenger i programmene våre, ikke minst fordi det nesten alltid skal
DetaljerINF1000: Forelesning 7
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en
DetaljerINF1000: noen avsluttende ord
Pensum Det som er gjennomgått på forelesningene INF1000: noen avsluttende ord Arne og Fredrik Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige virkninger
Detaljer23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
DetaljerINF1000: Forelesning 7. Konstruktører Static
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter
Detaljerprogrameksempel 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"
DetaljerINF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004
INF1010 Arv Marit Nybakken marnybak@ifi.uio.no 2. februar 2004 Motivasjon Arv bruker vi så vi skal slippe å skrive oss i hjel. Når vi programmerer, prøver vi gjerne å modellere en del av verden ved hjelp
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerINF1000 Mer om objekter
INF1000 Mer om objekter Marit Nybakken marnybak@ifi.uio.no 8. mars 2004 Dette dokumentet skal tas med en bøtte salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
DetaljerINF1010 MVC i tekstbaserte programmer
INF1010 MVC i tekstbaserte programmer Marit Nybakken marnybak@ifi.uio.no 9. februar 2004 Marit har ingen utdanning innen systemutvikling og vet antageligvis ikke hva hun prater om. Hun har dog skumlest
DetaljerLø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 =
DetaljerUNIVERSITETET 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
Detaljerløsningsforslag-uke5.txt
INF 1000 LØSNINGSFORSLAG TIL UKEOPPGAVER FOR UKE 5 1) Setningen er kompakt skrivemåte for int[] a; a = new int[50]; hvor den første setningen deklarerer arrayen a, og den andre setningen oppretter et array-objekt
DetaljerUNIVERSITETET 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
DetaljerForkurs INF1010. Dag 2. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 2 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 7. januar 2014 Forkurs INF1010 - dag 2 Klasser og pekere Klasser
DetaljerJava-kurs. Andreas Knudsen <andreakn@idi.ntnu.no> Nils Grimsmo <nilsgri@idi.ntnu.no> 9th October 2003
Java-kurs Andreas Knudsen Nils Grimsmo 9th October 2003 1 (Dette blir lagt ut på nett, du trenger ikke ta notater.) 1 Motivasjon For de som ikke går å data:
DetaljerINF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd
J INF1010 Tråder J Marit Nybakken marnybak@ifi.uio.no Motivasjon Til nå har vi kun skrevet programmer der programmet bare var på ett sted i koden til enhver tid (bortsett fra når vi har drevet med GUI,
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerForkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.
Forkurs INF1010 Dag 2 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 14. januar 2016 Forkurs INF1010 - dag 2 Feilmeldinger 2 Forkurs INF1010
DetaljerINF1000 Prøveeksamen Oppgave 7 og 9
INF1000 Prøveeksamen Oppgave 7 og 9 Høst 2015 Siri Moe Jensen 7a) Skriv en klasse Gave med to variabler som forteller hva som er i gaven, og hvor mye den har kostet. Klassen skal ha en konstruktør med
DetaljerUNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet er på
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerUNIVERSITETET 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)
DetaljerLC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Objektorientert modellering
DetaljerINF1010 UML. Marit Nybakken 26. januar 2004
INF1010 UML Marit Nybakken marnybak@ifi.uio.no 26. januar 2004 Liten tolkning av UML-kapittelet i læreboka. 1 UML-diagrammer Det finnes mange forskjellige typer UML-diagrammer for å dokumentere og planlegge
DetaljerINF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
DetaljerDet du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.
Tetris Introduksjon Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å
DetaljerDagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.
Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter
DetaljerEksamen. Objektorientert Programmering IGR 1372
+ JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
DetaljerUNIVERSITETET 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 :
DetaljerIN våren 2019 Onsdag 16. januar
IN1010 - våren 2019 Onsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel
DetaljerForelesning inf Java 5
Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen
DetaljerINF våren 2017
INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer
DetaljerForelesning inf Java 5
Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program
DetaljerIN våren 2018 Tirsdag 16. januar
IN1010 - våren 2018 Tirsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel
DetaljerInnhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java
INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:
DetaljerOppgave 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];
DetaljerOblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59
Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være
DetaljerUNIVERSITETET 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
DetaljerSnake Expert Scratch PDF
Snake Expert Scratch PDF Introduksjon En eller annen variant av Snake har eksistert på nesten alle personlige datamaskiner helt siden slutten av 1970-tallet. Ekstra populært ble spillet da det dukket opp
DetaljerUke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO
Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier 11. okt. 2011 Siri Moe Jensen Inst. for informatikk, UiO 1 Innhold Eksamen INF1000 Høst 2011: Oppgave 4-7 Tekstmanipulering Metoder med og uten
DetaljerForkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
DetaljerOppgave 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
DetaljerSteg 1: Streken. Steg 2: En hoppende helt. Sjekkliste. Sjekkliste. Introduksjon. Hei der! Hoppehelt
Hei der! Hoppehelt Ser ut som dette er ditt første besøk, vil du ha en omvisning? Ekspert Scratch PDF Introduksjon Hoppehelt er litt inspirert av musikkspillet Guitar Hero. I Hoppehelt skal man kontrollere
DetaljerTetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!
Tetris Skrevet av: Kine Gjerstad Eide Kurs: Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett
DetaljerINF1000: noen avsluttende ord
Pensum INF1000: noen avsluttende ord Arne og Ole Christian Det som er gjennomgått på forelesningene Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerPrø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
DetaljerUniversitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk
Side 1 av 20 Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk Bokmål Eksamen i emnet INF100 Grunnkurs i programmering Torsdag 27. november 2014 Tid: 09:00 14:00
DetaljerTDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson
DetaljerArgumenter fra kommandolinjen
Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene
DetaljerKonstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:
Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i
DetaljerIN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
DetaljerVelkommen til. INF våren 2016
Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010
DetaljerSensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013
Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013 Oppgave 1) Her var det en manglende høyreparentes i 1 b) slik at de som svarer virker ikke eller lignende istedenfor det riktige svaret, skal
DetaljerEksamen 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering
Detaljerif-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS
Løkker og if-tester Gløer Olav Langslet Sandvika VGS 29.08.2011 Informasjonsteknologi 2 Funksjoner, løkker og iftester Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller
DetaljerDagens tema Kapittel 8: Objekter og klasser
Dagens tema Kapittel 8: Objekter og klasser Hva er objekter og klasser? Programmering med objekter Klassedeklarasjoner Generering av objekter Tilgang til elementer i objektene Objekt- og klassevariable
DetaljerTre 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:
DetaljerUNIVERSITETET 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
DetaljerUNIVERSITETET 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
DetaljerOblig 3 tips litt mer tips enn i oppgaven
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3 tips litt mer tips enn i oppgaven lørdag 3. okt 2009 I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
Detaljerpraktiske eksempler DOM Document Object Model DOM og Høst 2013 Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS
DOM og praktiske eksempler Gløer Olav Langslet Sandvika VGS Høst 2013 Informasjonsteknologi 2 DOM Document Object Model Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller
DetaljerINF1000: 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
DetaljerRepetisjon. INF1000 - gruppe 13
Repetisjon INF1000 - gruppe 13 Lese fra fil Scanner import java.util.*; void lesfrafil() { try { Scanner innfil = new Scanner(new File( fugleobservasjoner.txt )); while (innfil.hasnext()) { String linje
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:
DetaljerHvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.
Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på
DetaljerHvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.
Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerHva 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 =
DetaljerINF1000 oppgaver til uke 38 (17 sep 23 sep)
INF1000 oppgaver til uke 38 (17 sep 23 sep) Formål: Øve på programmering med forgreninger, løkker og arrayer. Teoritimer (plenumsøvinger): 1. Oppgave 4 og 6 i kapittel 4 i læreboka. 2. En blokk er en samling
DetaljerUNIVERSITETET 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
Detaljermed canvas Canvas Grafikk Læreplansmål Gløer Olav Langslet Sandvika VGS
Grafikk med canvas Gløer Olav Langslet Sandvika VGS Høsten 2011 Informasjonsteknologi 2 Canvas Læreplansmål Eleven skal kunne bruke programmeringsspråk i multimedieapplikasjoner Med CSS3, HTML og JavaScript
DetaljerUNIVERSITETET 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
DetaljerEksempel: 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,
DetaljerSå hva er affiliate markedsføring?
Så hva er affiliate markedsføring? Affiliate markedsføring er en internettbasert markedsføring hvor Altshop belønner deg for hver kunde som du rekrutterer til Altshop. Vi vil ta godt hånd om dem for deg
DetaljerUNIVERSITETET 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
DetaljerJentetreff INF1000 Debugging i Java
Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver
DetaljerLø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:
DetaljerLenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.
Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. "Taher" type: String : type: :... type: : inf1010student null michael@ifi.uio.no INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public
DetaljerUNIVERSITETET 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
DetaljerOversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program
Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning
DetaljerFra Python til Java, del 2
Fra Python til Java, del 2 Hvordan kjøre Java? På Ifis maskiner På egen maskin Et eksempel Array-er For-setninger Lesing og skriving Metoder Biblioteket Hva trenger vi egentlig? Å kjøre Java For å kunne
DetaljerUNIVERSITETET 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