En introduksjon til objektorientert programmering
|
|
|
- Cecilie Eggen
- 9 år siden
- Visninger:
Transkript
1 En introduksjon til objektorientert programmering Hvordan oppsto oop? Hva er oo? To eksempler [Horstmann ] Klassen String [Horstmann 2.5] Java-biblioteket [Horstmann appendix D] En oppsummering
2 Hvem oppfant oo? Hvordan oppnår man slik heder? Ifi-professorene Ole-Johan Dahl og Kristen Nygaard: 2000: kommandør av St Olav 2001: ACM Turing award («Informatikkens Nobel-pris») 2002: IEEE John von Neumann medal
3 Hva er så dette oo? Hva er oo? Bakgrunnen i 1967 var at man i snart 20 år hadde programmert med variabler, arrayer og metoder. Det lar seg gjøre, men det er lett å miste oversikten når man skal skrive store programmer. Løsningen Hva om vi i stedet kan programmere akkurat det vi skal benytte i programmet? Sagt med andre ord: Vi kan programmere hvordan et sykkelspeedometer fungerer med variabler og metoder, men hadde det ikke vært bedre å programmere selve sykkelspeedometeret?
4 Hva er et sykkelspeedometer Eksempel 1: Et sykkelspeedometer Et sykkelspeedometer er tilkoplet en føler på hjulet og kan vise farten vise kjørt distanse nullstilles sette omkretsen av hjulet
5 Basis for all oop er klasser Klasser Vi programmerer ting (både gjenstander og ideer) ved å definere klasser. Klassen blir da en modell av tingen. class Sykkelspeedometer { :
6 Grensesnittet er det viktigste i en klasse Grensesnittet Vi må aller først finne ut hvordan vi skal bruke klassen, med andre ord hvilke operasjoner vi ønsker. Summen av operasjonene kalles klassens grensesnitt («interface»). Grensesnitt for Sykkelspeedometer lese farten lese distansen nullstille distansen lese omkretsen av hjulet øke omkretsen 1 cm senke omkretsen 1 cm I tillegg finnes signal fra sensoren på hjulet intern klokke som gir puls hvert millisekund
7 Grensesnittet er det viktigste i en klasse Grensesnittet beskrives som metoder: class Sykkelspeedometer { String visfart() {... String visdistanse() {... void nullstill() {... String visomkrets() {... void oekomkrets() {... void senkomkrets() {... void tellimpuls() {... void tellmillisek() {... :
8 Grensesnittet er det viktigste i en klasse Det finnes ulike metoder Hittil har vi brukt metoder for å slippe å gjenta så mye kode. Slike metoder er markert som static. Grensesnittmetodene skal manipulere tilstanden i det enkelte objektet. De er ikke markert som static. Er dette hele sannheten? Nei; den fulle sannheten åpenbares om to uker.
9 Hvordan skal vi representere alt dette? Representasjon Når grensesnittet er bestemt, må vi finne ut hvilke data vi må lagre i hvert objekt for at klassen skal fungere slik vi ønsker. Her finnes det flere mulige alternativer; jeg har valgt: private double omkrets = 0.0; private double distanse = 0.0; private double tid = 0.0; private double tid1 = 0.0; private double tid2 = 0.0; (Legg merke til at alle er private.) // Hjulets omkrets // Distanse hittil // Loepende tid (i ms) // Tidspunkt siste impuls // Tidspunkt forrige impuls
10 Hvordan skal vi representere alt dette? Innkapsling Når vi programmerer, er det lurt å ha så få globale navn (på variabler, metoder etc) som mulig. Med mange navn er det lettere å miste oversikten og dermed gjøre feil. En fordel med klasser er at både grensesnittet og implementasjonen defineres inni klassene; de er innkapslet der. Dermed reduserer vi antall globale navn.
11 Hvordan skal vi representere alt dette? Beskyttelse Det er mulig å bruke variablene i representasjonen som vanlige variabler, men det anbefales ikke. Det er tryggere om de brukes bare av grensesnittmetodene. Ved å angi at representasjonsvariablene er private, vil Java-kompilatoren hjelpe oss med dette.
12 Da er klassen ferdig! Til sist kan vi skrive kode i grensesnittmetodene: Sykkelspeedometer.java class Sykkelspeedometer { private double omkrets = 0.0; private double distanse = 0.0; private double tid = 0.0; private double tid1 = 0.0; private double tid2 = 0.0; // Hjulets omkrets // Distanse hittil // Loepende tid (i ms) // Tidspunkt siste impuls // Tidspunkt forrige impuls void nullstill() { distanse = 0.0; void tellmillisek() { tid++; // Samme som tid = tid+1;
13 Da er klassen ferdig! void tellimpuls() { distanse += omkrets; // Samme som distanse = distanse+omkrets; tid2 = tid1; tid1 = tid; void oekomkrets() { omkrets += 0.01; void senkomkrets() { omkrets -= 0.01;
14 Da er klassen ferdig! String visdistanse() { return "" + distanse; String visfart() { double tid = (tid2-tid1) / ; return "" + distanse/tid/3.6; String visomkrets() { return "" + omkrets;
15 Til slutt lager vi objekter Til slutt kan vi lage objekter av klassene våre NB! En klasse er bare en mal (dvs en arbeidstegning eller produksjonsbeskrivelse). Med new lager vi objekter (også kalt instanser) av klassene. Vi kan lage vilkårlig mange. Vi benytter variabler til å holde orden på objektene og utføre metodene. Sykkelspeedometer s = new Sykkelspeedometer(); s.nullstill(); s.tellimpuls();
16 Til slutt lager vi objekter TestSykkelspeedometer.java class TestSykkelspeedometer { public static void main(string[] arg) { Sykkelspeedometer s = new Sykkelspeedometer(); //... System.out.println("Jeg har syklet " + s.visdistanse() + " km."); System.out.println("Farten er " + s.visfart() + " km/t.");
17 Hva er et telleverk? Eksempel 2: Et telleverk [Horstmann 8.2] Et telleverk gjør det enkelt å telle ting, for eksempel personer.
18 Oppskrift for å lage en klasse Hvordan lager man en klasse? 1 Hvilke ting/begreper skal vi modellere? (Eksamenshint: Hvilke substantiver er brukt i oppgaven?) 2 Hva er grensesnittet? Hvilke operasjoner trenger vi overfor objektene? (Eksamenshint: Hvilke verb brukes i forbindelse med klassene nevnt i forrige punkt?) 3 Hvordan skal klassen implementeres? Hvilke objektvariabler trenger vi for å lagre nok om tilstanden? 4 Lag objekter av klassen for testing.
19 Oppskrift for å lage en klasse 1 Hva skal vi modellere? Svaret er enkelt: et telleverk. class Counter { :
20 Oppskrift for å lage en klasse 2 Hva er grensesnittet? Vi vil klikke for å telle. Vi ønsker å lese av verdien. class Counter { void count() {... int getvalue() {... :
21 Oppskrift for å lage en klasse 3 Hva er representasjonen? En enkelt teller (en int) er nok. class Counter { private int value; void count() {... int getvalue() {... :
22 Oppskrift for å lage en klasse Den ferdige klassen class Counter { private int value; void count() { value++; Counter.java int getvalue() { return value;
23 Oppskrift for å lage en klasse Testing TestCounter.java class TestCounter { public static void main (String[] arg) { Counter concertcounter = new Counter(); Counter boardingcounter = new Counter(); boardingcounter.count(); boardingcounter.count(); boardingcounter.count(); System.out.println("Concert: " + concertcounter.getvalue()); System.out.println("Boarding: " + boardingcounter.getvalue()); $ java TestCounter Concert: 0 Boarding: 3
24 Hvilke typer har vi nevnt hittil? Datatyper De viktigste er: int et heltall int n = 5; long et stort heltall long v = 0L; double et flyt-tall double pi = 3.14; char et tegn char c =? ; boolean sann/usann boolean t = true;
25 Skal vi jobbe med ett eller mange tegn? Datatypen char En String kan lagre tekster med vilkårlig antall tegn. En char kan lagre nøyaktig ett tegn.
26 Noe er helt logisk! Datatypen boolean 1 Vi har brukt tester som er sanne eller usanne i løkker og valgsetninger: if (alder >= 18)... while (n > 0 && m > 0)... Slike tester må gi et resultat false eller true. Vi kan lagre slike verdier i boolean-variabler: boolean myndig = alder >= 18; if (myndig)... 1 George Boole var en engelsk/irsk matematiker.
27 Er String en helt vanlig klasse? Klassen String String er en nesten vanlig klasse; den er en del av Javas klassebibliotek så vi kan bruke den til å jobbe med tekster. Grensesnitt (det viktigste) int compareto(string other) gjør en sammenligning boolean equals(string other) tester likhet int length() finner tekstens lengde String substring(int begin, int end) plukker ut en del av teksten
28 Det er lett å lage nye String-objekter Å lage String-objekter NB! new String() gir et nytt String-objekt med tomt innhold. new String(s) gir et nytt String-objekt der innholdet er en kopi av en annen string s. Spesielt for akkurat String: "Abc... " er et String-objekt. s1 + s2 gir et nytt String-objekt som er de to tekstene skjøtt sammen.
29 Lengden er viktig Hvor lang er en tekst? int length() forteller oss hvor mange tegn det er i teksten.
30 La oss demonstrere hvordan det virker Et eksempel TestStringLength.java class TestStringLength { public static void main (String[] arg) { String g = new String("Grunnkurs"); String o = "objektorientert"; System.out.println("L1: " + g.length()); System.out.println("L2: " + "i".length()); System.out.println("L3: " + o.length()); $ javac TestStringLength.java $ java TestStringLength L1: 9 L2: 1 L3: 15
31 Er tekstene like? Sammenligning av tekster boolean equals(string other) sammenligner to tekster og gir sann om de er helt like. int compareto(string other) forteller om den andre teksten kommer før eller etter i en alfabetisk sortering: a.compareto(b) gir < 0 om a kommer før b = 0 om a og b er like > 0 om a kommer etter b (Dette fungerer egentlig bare for engelsk; for norsk med æøå må man benytte andre teknikker.)
32 La oss vise dette i praksis Et eksempel TestStringSammenligning.java class TestStringSammenligning { public static void main(string[] arg) { System.out.println("Per vs Per: " + "Per".equals("Per")); System.out.println("Per vs per: " + "Per".equals("per")); System.out.println("Per vs Ida: " + "Per".compareTo("Ida")); $ javac TestStringSammenligning.java $ java TestStringSammenligning Per vs Per: true Per vs per: false Per vs Ida: 7
33 Det er mulig å hente ut deler av tekster Å hente ut deler av en tekst String substring(a, b) lager et nytt String-objekt med innhold fra deler av teksten fra og med a til (men ikke med) b. "smiler".substring(1,4) s m i l e r "mil"
34 Nyttig for alle treskjærere Parameteren til main er en array med String-er som inneholder parametre oppgitt når vi kjører programmet. TestStringInitialer.java class TestStringInitialer { public static void main(string[] arg) { String hun = arg[0]; String han = arg[1]; System.out.println(hun.substring(0,1) + " + " + han.substring(0,1) + " = SANT"); $ javac TestStringInitialer.java $ java TestStringInitialer Kari Ola K + O = SANT
35 Hvor finner jeg nyttige klasser? Java-biblioteket Java har et bibliotek med hundrevis av klasser. Heldigvis er det godt beskrevet: Appendix D i læreboken
36 Hva er grensesnittet til String?
37 Husk at Java-biblioteket er stort! Hint: Ikke gå dere vill i biblioteket! Java-biblioteket er fascinerende lesing, men Slå opp når dere trenger svar på konkrete spørsmål (som «Hva angir 2. parameter til String.substring»?). Unngå leting à la «Jeg vet ikke helt hva jeg trenger, men kanskje jeg finner noe jeg kan bruke?» Let mer en gang dere har bedre tid.
38 Hva er det viktigste dere skal ha lært i dag? Hovedpunkter Med klasser kan man modellere både virkelige ting og nyttige begreper. En klasse er en mal/konstruksjonstegning av det som skal modelleres. Grensesnittet til klassen angis med metoder. Vi må finne ut hvilken representasjon (dvs hvilke objektvariabler) som er nødvendig. Med new kan vi lage objekter basert på klassene. En variabel kan peke på et objekt; ved hjelp av den kan vi utføre metodene i grensesnittet.
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
INF 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
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,
Introduksjon 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
Klasser, 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
Velkommen 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
INF1000 Metoder. Marit Nybakken [email protected] 16. februar 2004
INF1000 Metoder Marit Nybakken [email protected] 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
INF1000: 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
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
Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse
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:
INF1000: 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
Innhold. INF1000 Høst Klasser og objekter. Uke 7: Mer objektorientert programmering Siri Moe Jensen
Innhold INF1000 Høst 2015 Uke 7: Mer objektorientert programmering Siri Moe Jensen Oo: Hva skjer egentlig i programmene våre? Hva var det vi gjorde annerledes i Uke 5? Klassemetoder (deklarert som static)
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
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 =
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
BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13.
BOKMÅL Side 1 av 5 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTERINGSEKSAMEN
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ø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:
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
Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
INF1000 undervisningen INF 1000 høsten 2011 Uke september
INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første
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
Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
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
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
Leksjon 3. Kontrollstrukturer
6108 Programmering i Java Leksjon 3 Kontrollstrukturer Del 2 Løkker Roy M. Istad 2015 Utførelse av et program Programflyt så langt start setning setning setning setning Sekvensielt Alle setninger utføres,
Java-kurs. Andreas Knudsen <[email protected]> Nils Grimsmo <[email protected]> 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:
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
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
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00
Dagens 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
INF1000 Behandling av tekster
INF1000 Behandling av tekster Marit Nybakken [email protected] 23. februar 2004 Tekster Vi kommer nesten aldri utenom å bruke tekststrenger i programmene våre, ikke minst fordi det nesten alltid skal
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
Oversikt. 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
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
EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består
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));
INF1000 - 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
OPPGAVE 5b og 8b Java Kode
OPPGAVE 5b og 8b Java Kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene
Kapittel 8: Programutvikling
Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal ([email protected]) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk
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
OBJEKTER 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
Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder
6108 Programmering i Java Leksjon 6 Objekt Del 2: 6.4 6.5 Roy M. Istad 2015 Generelt oppsett av egendefinert klasse Eks: Student Evt. importsetninger public class Klasse { Objektvariabler - instansvariabler
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
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : INF1000 Grunnkurs i objektorientert programmering Eksamensdag : Fredag 2. desember 2005 Tid for eksamen : 14.30 17.30
INF1000: 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.
Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon
Oversikt INF1000 Uke 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning Uttrykk
1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
INF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser
INF1010, 21. januar 2016 Klasser med parametre = Parametriserte klasser = Generiske klasser Stein Gjessing Inst. for Informatikk Universitetet i Oslo Først litt repetisjon fra i går class LagBiler { public
Læreboken på 45 minutter
Kap 1 Kap 2 Kap 3 Kap 4 Kap 5 Kap 6 Kap 7 Kap 8 Annet Læreboken på 45 minutter Hva er viktig? Hva er ikke fullt så viktig? Hvorfor har vi en lærebok? Læreboken forteller stort sett mer detaljert enn forelesningene.
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
Universitetet 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
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
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
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
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
OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?
OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.
Oblig 4Hybelhus litt mer tips enn i oppgaven
Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,
Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.
Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet
Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.
Høgskoleni Østfold EKSAMEN Emnekode: Emnenavn: ITF20006 Algoritmer og datastrukturer Dato: Eksamenstid: 9. mai 2016 9.00 13.00 Hjelpemidler: Faglærer: Alle trykte og skrevne Jan Høiberg Om eksamensoppgaven
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 :
1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne
Side 1 av 7 Bokmålstekst Emne: PROGRAMMERING (nytt pensum, 10 studiep.) Grupper: laa, lab, lac, lia, lib, lic Eksamensoppgaven best~r av: Tillatte hjelpemidler: Antall sider (inkl. forsiden): 7 Alle trykte
2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
Eksamen. Objektorientert Programmering IGR 1372
+ JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV
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
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
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
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
Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon
Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: [email protected] Utdanning: Dataingeniør, 2000 Cand.Scient,
Mer objektorientert programmering
Mer objektorientert programmering Klasser og objekter En klasse med konstruktør og en array Innkapsling En klasse med datafil og kommandoløkke Klassen ArrayList Hva er hva? Klasser og objekter Det er viktig
Lenkelister. 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 [email protected] INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public
Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre
Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal
TDT4100 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
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 =
< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»
< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" [email protected] INF1010 21. februar
Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.
Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører
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
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 Delprøve Kandidatnr: Prøvedato: 2. mars 2005 Varighet: 3 timer (9:00 12:00) Fagnummer: LO196D Fagnavn: Videregående programmering med
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
