Objektorientering i VB en introduksjon

Størrelse: px
Begynne med side:

Download "Objektorientering i VB en introduksjon"

Transkript

1 Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Objektorientering i VB en introduksjon Oppdatert av Atle Nes Objektorientering i VB en introduksjon Resymé: Visual Basic.NET er et objektorientert språk. Du vil i denne leksjonen få se hvordan du kan lage din egen klasse og objekter basert på denne klassen. Sentrale begreper innen objektorientering forklares og konkretiseres HVORFOR OBJEKTORIENTERING I DETTE KURSET? HVA ER NYTT MED OBJEKTORIENTERING? EKSEMPEL PÅ OBJEKTORIENTERT PROGRAMMERING Opprett en klasse i utviklingsmiljøet Kode for å realisere Person-klassen Hvordan lage objekter som baseres på en klasse? Grundig forklaring til koden bak Button1_Click OPPSUMMERING... 10

2 Objektorientering i VB en introduksjon side 2 av Hvorfor objektorientering i dette kurset? Tidligere (i emnet Programmering i Visual Basic) har vi kodet proseduralt (av prosedyre), det vil si at vi har laget kode for å utføre de oppgavene vi har ønsket å løse. Koden har vært bak knapper, og det er nokså rett fram å forstå en slik tilnærming til programmering: En koder rett og slett en rekke programmeringssetninger der en trenger det, og i den rekkefølgen det virker logisk. En annen, og i mange tilfeller bedre metode for å organisere koden, er å programmere objektorientert. Innenfor et slikt paradigme lager vi klasser, som består av programmerte metoder og egenskaper, og vi snakker også om begreper som arv og innkapsling. Paradigme betyr tankesett eller den måten en ser og opplever verden på. Med programmeringsparadigme, mener vi den stilen eller måten som kode formuleres på, eller kanskje heller: hvilket bilde programmereren har av det som skjer ved kjøring av et program. Til nå har vi operert innenfor et proseduralt, hendelsesbasert paradigme, og da har vi laget oppskrifter i form av mange setninger, som ved kjøring, gjør at vi oppnår en ønsket tilstand. Disse oppskriftene har startet når visse hendelser har inntruffet (klikke en knapp, mus over et tekstfelt, oppstart av program etc.). Egentlig har du hatt å gjøre med objekter allerede. En knapp, en form, en listeboks, en meldingsboks og et tekstfelt, er alle gode eksempler på objekter. Disse er veldig konkrete objekter som du kan se og oppleve. I tillegg kan du bruke mer abstrakte objekter, eller du kan lage dine egne objekter. I en objektorientert verden er all kode som kjøres, i form av objekter som kommuniserer med hverandre. I Visual Basic vil vi fortsatt bruke hendelser til å sette i gang kode, men når vi programmerer objektorientert, får vi som utviklere et litt annet verdensbilde å forholde oss til. Det er dette verdensbildet som skal presenteres i denne leksjonen. Det hele synes kanskje komplisert og litt unødvendig. Hva er motivasjonen for å utvikle objektorientert, og bli kjent med den objektorienterte verden som.net-rammeverket tilbyr oss? For å programmere større løsninger trengs det mye kode. De som programmerer mye, støter ofte på situasjoner som likner helt eller delvis på ting de har løst tidligere. Det er slitsomt å måtte skrive all kode om igjen, og det gjør det vanskeligere å rette feil og videreutvikle koden. En mulighet for å unngå å finne opp hjulet på nytt hver gang, er å bruke funksjoner. Da oppnås gjenbruk. Ofte er funksjoner akkurat det en trenger! Det kan derimot bli veldig mange funksjoner å forholde seg til i store systemer, og det er også ofte ønskelig å kunne gjenbruke eller generalisere mer enn det som tilbys gjennom en funksjon. Mer nøyaktig er det ofte ønskelig å knytte sammen data med de operasjonene vi utfører på disse dataene. Da er objektorientering løsningen. I en objektorientert verden brukes fortsatt funksjoner, men disse omtales der som metoder, og er bare en del av konseptet objektorientering. Objektorientering er mye mer enn bare en samling av funksjoner. I dette kurset skal du lære grunnleggende programmering. Visual Basic.NET er et fullverdig, objektorientert programmeringsspråk. Det er derfor riktig å introdusere objektorientering. Siden dette er et grunnleggende kurs, vil vi derimot ikke gå mye i dybden, og vi vil ikke gå inn på objektorientert analyse og design (med for eksempel UML). Det ville kreve mange leksjoner ja, kanskje et helt kurs bare om objektorientering, dersom vi skulle noe særlig i dybden. Du finner dessuten slike tema i videregående programmeringskurs. Vi forsøker derfor heller å gi en grunnleggende forståelse av hva objektorientering er, og hvordan

3 Objektorientering i VB en introduksjon side 3 av 11 klassene i.net-rammeverket kan brukes av deg på en effektiv måte. Det som gjennomgås her er likevel veldig viktig, og legger grunnlaget for de neste leksjonene og for kommende kurs. Til slutt bør nevnes at det er nordmennene Kristen Nygaard (http://no.wikipedia.org/wiki/kristen_nygaard) og Ole Dahl (http://no.wikipedia.org/wiki/ole-johan_dahl) som på slutten av 1960-tallet utviklet objektorientering som paradigme og programmeringsspråket Simula. Disse pionerene har betydd mye for Norge og for programmering. Figur 1: Ole Dahl og Kristen Nygaard, pionerer på OOP. I dag brukes objektorientert programmering (eller OOP som det ofte forkortes) over hele verden og i en rekke applikasjoner. Programmer som Notisblokk, Windows, Microsoft Word, Need For Speed (spill), Apples Mac OS X, læringsplattformer som it s learning og Fronter, og så videre, er laget innenfor OOP. Det er rett og slett mye lettere å programmere og vedlikeholde større løsninger og systemer ved å tenke i form av objekter. Legg merke til at det er fullt mulig å programmere også store systemer (på en effektiv og fin måte) uten å bruke objektorientering. En av grunnene til at OOP har fått så stort fotfeste, er at programutvikling ikke bare henger sammen med det å skrive kode, men også med analyse av problemet, design av systemet, feilsjekking, sikkerhet og liknende. OOP tilbyr metodikk for mye mer enn bare selve programmeringen, og foretrekkes derfor ofte av profesjonelle konsulentbyråer og store programleverandører Hva er nytt med objektorientering? Når vi programmerer objektorientert, får vi en del nye begreper å forholde oss til. Vi skal nå gjennomgå noen viktige begreper innen objektorientering. Et objekt kan være noe fysisk som vi kan ta og føle på: bil, hus eller person. Det kan være ting du kjenner fra Visual Studio: meldingsboks, form, listeboks eller vindu. Et objekt kan også være mer abstrakte konsepter, som ønske eller tid. En klasse er en oppskrift for hvordan et objekt ser ut. Tenk på en klasse som en idé. Du kan med en gang si hvordan et menneske ser ut, basert på kunnskap om idéen person. Du kan derfor si nokså nøyaktig hvordan Ole eller Lise ser ut. Det er klart at Ole og Lise ikke er like personer, men sammenliknet med en fisk eller en hund eller en bil, så er det liten tvil om at både Ole og Lise er personer. La oss prøve med ord å utvide forståelsen av klasse og objekt, og tydeliggjøre sammenhengen mellom dem. Forskjellen på et objekt og en klasse blir som forskjellen på konseptet person

4 Objektorientering i VB en introduksjon side 4 av 11 og den konkrete personen Lise. Du kan ikke føre en samtale med konseptet person, men du kan snakke med personen Lise uten problemer. Det er også en nær sammenheng mellom objekt og klasse. Et objekt har samme relasjon til en klasse som et hus har til arkitektens tegning. La oss nå konkretisere dette. Ole og Lise har en rekke egenskaper. De har hvert sitt navn. De har også en vekt, for eksempel henholdsvis 83 kg og 62 kg, og en høyde, for eksempel 192 cm og 170 cm. Hvis vi skulle programmert to personer utfra et objektorientert paradigme, ville vi først sagt at klassen person skulle ha egenskapene vekt og høyde. Deretter ville vi opprettet to objekter basert på klassen person, og sagt at det første objektet skulle hete Ole, veie 83 kg og være 192 cm høy. Det andre objektet skulle hete Lise, veie 62 kg og være 170 cm høy. Objektet har kunnskap om seg selv, og denne kunnskapen ligger lagret i form av egenskapsverdier. Vi skal senere i leksjonen se senere hvordan egenskaper realiseres i koden ved hjelp av det vi kaller objektvariabler. Lise og Ole kan også gjøre mye rart. De kan fortelle en vits, de kan bevege seg og de kan kanskje løse et problem. Det er også mulig å regne ut body mass index (BMI) for hver av dem, uten at vi trenger å lagre informasjonen om BMI fordi BMI kan beregnes basert på høyde og vekt. BMI er for øvrig et mål på hvor sunn (overvektig/undervektig) en person er, basert på at en høy person selvsagt også må veie mer for å være normal vektig enn en lav person. Vekt sier altså ikke alt alene. BMI er et mye mer nøyaktig mål for å beskrive og sammenlikne ved for eksempel mistanke om anorexi eller stor overvekt. Det er en vesentlig forskjell på egenskapen vekt og det å fortelle en vits. I programmering snakker vi om at objektene har metoder. En metode er noe som utføres. Det å bevege seg, er å utføre noe. Det å fortelle en vits, er også å utføre noe. Det å regne ut BMI, er også å utføre noe. Sammenlikn dette med det å faktisk veie 62 kg, som ikke er å utføre noe, men å ha en egenskap, og du ser da forskjellen på en metode og en egenskap. Egenskapen er et stykke data, mens metoden er en samling av instruksjoner som utfører noe (og gjerne benytter de dataene som er tilgjengelige, men ikke nødvendigvis). Et objekt er en instans av en bestemt klasse. Det kan være mange samtidige objekter basert på én og samme klasse (som vi har sett med både Lise og Ole basert på person ). Et stort poeng ved objektorientering, er såkalt innkapsling. Ved å lage kode for en person-klasse og i denne klassen angi hvilke egenskaper og metoder konkrete person-objekter skal ha (med kode), har vi samlet alt som har å gjøre med for eksempel konseptet person. Tilsvarende kunne vi laget en ny klasse for konseptet bil og enda en ny klasse for konseptet fisk. En Ferrari og en Toyota kunne vært instanser (objekter) av klassen bil, mens Snapsi eller Wanda kunne vært instanser (objekter) av klassen fisk. Wanda ville dermed leve sitt eget liv uavhengig av endringer i klassen bil. Hvordan fisken Wanda svømmer rundt i gullfiskbollen sin, vet man ikke, men man vet at den har mulighet til å gjøre det, og man vet at den er en konkret fisk ved navn Wanda (se også Tilsvarende vet vi ikke nøyaktig hvordan for eksempel en listeboks kan sortere innholdet sitt, men det viktige er at den kan gjøre nettopp det, og det kan vi utnytte i programmene våre. Med innkapsling vil vi slippe å tenke på detaljene med hvordan objekter og metoder fungerer, og dermed blir det lettere å gjenbruke kode på en effektiv måte. Dersom vi skulle illustrere klassen Person, så kunne den se slik ut:

5 Objektorientering i VB en introduksjon side 5 av 11 Figur 2: Illustrasjon av klassen Person. Sammenlikn klassen i Figur 2 med objektene i Figur 3, som vi kan si at realiserer klassen Person: Figur 3: Objektene ole og lise basert på klassen Person Eksempel på objektorientert programmering Siden alle mennesker skal ha et navn, en høyde og en vekt, og alle skal kunne fortelle minst en vits eller bevege seg, så må disse egenskapene og metodene beskrives i klassen person. La oss nå prøve å realisere konseptet person ved hjelp av objektorientert programmering i Visual Basic.NET. Vi tar i tillegg med utregning av BMI ( body mass index ). Deretter skal vi opprette konkrete objekter som baserer seg på klassen Person. Vi skal altså først modellere en generell person, og så lage de konkrete personene Lise og Ole Opprett en klasse i utviklingsmiljøet For å lage en klasse i Visual Studio (evt. Visual Basic Express), må du høyreklikke på prosjektfilen i Solution Explorer, og velge å legge til et nytt element. Du må så velge å legge til en ny klasse, og skrive inn navnet på klassen med.vb etterpå. Det som i praksis skjer, er at du lager en ny fil som heter for eksempel Person.vb og all koden som utgjør klassen skal inn i denne filen. Dette er vist i Figur 4 og Figur 5.

6 Objektorientering i VB en introduksjon side 6 av 11 Figur 4: For å lage en ny klasse, må du først legge til et nytt element fra Solution Explorer... Figur 5:... og deretter må du velge maltypen Class og skrive inn navnet som klassen skal ha. Ta også med.vb til slutt.

7 Objektorientering i VB en introduksjon side 7 av Kode for å realisere Person-klassen Når du i Figur 5 velger Add vil en ny fil vises, og i denne kan du skrive kode. Legg merke til hvordan du nå har fått et nytt element i Solution Explorer til høyre. Alt av kode i klassen må stå mellom kodeordene Public Class KlassensNavn og End Class. Figur 6: All kode som utgjør klassen Person må skrives mellom Public Class Person og End Class. Vi skal nå lage tre såkalte objektvariabler som tilhører klassen, og som skal inneholde verdier om vekt, navn og høyde for de ulike objektene som opprettes basert på klassen. Legg merke til at det er mange ulike navn på objektvariabel, blant annet felt og medlemsvariabel. Vi bruker objektvariabel for å omtale egenskaper. I tillegg lager vi en metode som finner personens BMI: Public Class Person Public navn As String 'navnet på personen Public vekt As Double 'antall kg Public hoyde As Double 'antall cm Public Function finnbmi() As Double 'Regner her ut "body mass index" 'Formelen for BMI = vekt / høyden opphøyd i andre, 'der høyden er angitt i antall meter Dim svaret As Double Dim meter As Double meter = hoyde / 100 'fordi vi skal regne i antall meter, ikke i cm svaret = vekt / (meter * meter) 'parentesene regnes ut først Return svaret 'sender svaret tilbake til stedet der metoden ble kalt opp End Function End Class Legg merke til hvordan alt ligger innenfor klassen. Det vi har gjort nå, er å beskrive hvordan en person kan se ut, men vi har ikke laget noen konkrete personer enda Hvordan lage objekter som baseres på en klasse? Nå kan vi lage to objekter basert på klassen Person, eller med andre ord vi skal lage de to konkrete personene Lise og Ole. Disse objektene kan vi for eksempel lage i formen vår, så vi åpner Form1.vb og lager en knapp der. Følgende kode plasseres så under Button1_Click:

8 Objektorientering i VB en introduksjon side 8 av 11 'Program som bruker klassen Person og lager to personer Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click 'Lager to objektvariabler av type Person Dim lise As Person lise = New Person Dim ole As Person ole = New Person 'Registrerer navn, høyde og vekt for Ole ole.vekt = 83 ole.navn = "Ole Nordmann" ole.hoyde = 192 'Registrerer navn, høyde og vekt for Lise lise.vekt = 62 lise.navn = "Lise Nordmann" lise.hoyde = 170 'Beregner "body mass index" til Ole og Lise Dim BMIverdi As Double BMIverdi = ole.finnbmi() MsgBox("Ole har BMI-verdien: " & BMIverdi) MsgBox("Lise har " & lise.finnbmi() & " som BMI-verdi") End Sub Lise har en BMI på 21,45 siden vekten deltpå høyden i meter opphøyd i andre, er 21,45. Detaljene i utregningen tar metoden BMI-verdi seg av. Regn gjerne ut selv om du er i tvil: 62/1,70/1,70 eller kanskje bedre skrevet slik: 62 / (1,7*1,7). Figur 7 viser resultatet når vi kjører programmet. Figur 7: Når programmet kjører og knappen Lag personer trykkes, vil objekter for å representere Ole og Lise lages. Deretter regnes BMI ut for begge, og presenteres på skjermen Grundig forklaring til koden bak Button1_Click. Setningen Dim ole As Person lager et objekt som baserer seg på klassen Person. Dette er egentlig bare en adresse i minnet i maskinen som peker til et objekt. For å lage objektet, må vi skrive New Person, og for å ikke bare la dette objektet flyte i løse luften, må vi knytte ole til det nye objektet. Se Figur 3 for en visualisering av dette. Derfor skriver vi de to linjene:

9 Objektorientering i VB en introduksjon side 9 av 11 Dim ole As Person ole = New Person Det er mulig å forkorte dette til én setning (for å spare plass i koden), og heller bruke det noe kortere formularet: Dim ole As New Person Hvis du velger den siste måten, så vær klar over hva som egentlig skjer: Du lager en referanse som kan inneholde adressen til et objekt, og samtidig lager du et objekt basert på klassen Person. I tillegg bindes disse sammen, slik at du får en referanse som peker på et virkelig objekt som har fått plass i minnet i maskinen. Klassen Person har mulighet for å lagre informasjon om hver enkelt person. Ole har trolig en vekt, en høyde og et navn. Dette kan vi registrere ved å fylle objektvariablene (egenskapene) med innhold. Siden disse er satt som Public i klassen Person, har vi lov til å endre dem direkte fra programkoden til Button1_Click. Dette gjøres ved bruk av punktum-notasjonen: ole.vekt = 83 Dette kan vi lese som ole sin vekt settes til 83. Utviklingsmiljøet gir oss hjelp til å angi riktig objektvariabel ved hjelp av en liste som popper opp i det vi skriver punktumet i listen. Det ser slik ut: Figur 8: Visual Studio har intellisense, og viser oss kontekstsensitiv hjelp mens vi koder. Det er ulemper ved å bruke denne måten til å sette verdier til objektvariabler, men det er greit i starten for å komme i gang med objektorientering og ikke overøses av detaljer. Det er heller ikke direkte galt å gjøre det slik, men det fins bedre måter som vi skal se senere (stikkord for den nysgjerrige, er bruk av konstruktør og Properties). Tilsvarende må vi angi noen egenskaper for Lise, og det gjør vi ved å sette objektvariablene vekt, navn og hoyde for objektet lise. Lise blir dermed 62 kg og 170 cm høy. Hva er så body mass index til Ole og Lise? Det er mer eller mindre komplisert å regne ut dette. Vi trenger faktisk ikke regne det ut, fordi den som har laget klassen Person har allerede laget en metode som kan finne BMI for oss! (Det var riktignok oss selv som lagde denne metoden, men vi kan jo leke at vi lagde denne for 1 år siden, og ikke husker detaljene nå). Vi slipper altså å finne opp hjulet på nytt, og kan bruke den ferdige metoden. Den krever ingen argumenter, så det er bare å la objektene kalle den opp. Se gjerne fort gjennom koden i klassen Person i avsnitt før du fortsetter å lese.

10 Objektorientering i VB en introduksjon side 10 av 11 Setningen ole.finnbmi() betyr at objektet ole skal kalle opp metoden finnbmi().dette går bra. Vi sier for øvrig gjerne ole sin finnbmi-metode når vi leser setningen for oss selv. Objektet ole ligger utenfor klassen Person, men objektet ole har likevel lov til å kalle metoden, fordi metoden ligger deklarert som Public i klassen Person. Dersom vi ikke hadde laget metoden som Public, kunne den ikke blitt kalt opp. Vi kommer tilbake til denne detaljen senere. Når metoden finnbmi() kalles opp, blir den utført linje for linje. Det den gjør er å regne ut antall meter som Ole er ved å ta det som ligger i objektet ole sin objektvariabel hoyde, og dele på 100. Svaret legges i den lokale variabelen meter, og siden denne variabelen er lokal vil den dø så snart metoden er ferdig utført. Deretter regnes BMI-verdien ut ved hjelp av formelen Figur 9: Formelen for å regne ut body mass index (illustrasjon hentet fra Wikipedia). Formelen er selvsagt formulert med Visual Basic-kode, og du kan se på detaljene i koden i avsnitt Svaret returneres så tilbake til dit metoden finnbmi() ble kalt opp. En metode oppfører seg altså på samme måte som en funksjon. Mange bruker for øvrig begrepene funksjon og metode om hverandre innen OOP. I dette kurset bruker vi bevisst funksjon om en frittstående sak, og metode om det som tilhører en klasse. Virkemåten til en metode og en funksjon, er helt lik. Det er ikke mulig å kalle opp metoden finnbmi() uten å gå via objektet ole eller objektet lise. I koden vår har vi gjort kallet på to litt ulike måter, bare for å illustrere at du kan bruke en metode på samme måte som en funksjon. I Ole sitt tilfelle, legger vi den verdien som metoden returnerer inn i variabelen BMIverdi, mens i Lise sitt tilfelle, skriver vi ut verdien direkte som del av teksten i en meldingsboks. Vi kaller altså lise sin finnbmi-metode, og vet at den vil gi oss body mass index for Lise Oppsummering En objektorientert tilnærming er fornuftig i mange reelle systemutviklingsprosjekter. Vi har i denne leksjonen sett på grunnleggende begreper innen OOP: En klasse er en generell modell av noe konkret, for eksempel en person. I klassen er det definert egenskaper og metoder (og også hendelser dersom en vil det). Egenskapene beskriver objektet, mens metodene kan utføre noe. Metodene vil typisk endre eller lese egenskapsverdiene, men kan i prinsippet gjøre hva vi måtte ønske. Når vi programmerer egenskaper, omtaler vi dette som objektvariabler. Et objekt er en instans, eller forekomst, av en klasse. Det fins mange personer som baserer seg på klassen person. Det vil si at vi kan ha mange objekter for hver klasse. Hvert objekt får alle metoder og egenskaper (objektvariabler) som er definert i klassen. Det som varierer, er verdiene i objektvariablene. Dermed blir som regel hvert objekt forskjellig fra andre objekter selv om de baserer seg på samme klasse.

11 Objektorientering i VB en introduksjon side 11 av 11 Videre så vi hvordan en klasse kan programmeres med Visual Basic.NET, og hvordan vi kan lage objekter basert på en klasse. Vi manipulerte objektvariablene direkte: ole.vekt = 83 Dette har som fordel at det er veldig enkelt å forstå og lett å skrive, men ulempen er at det blir vanskelig å endre ting i klassen, uten også å måtte endre i koden for øvrig (for eksempel). Senere skal vi se på hvordan vi kan innkapsle objektene på en bedre måte. Til slutt så vi på hvordan vi kan lage metoder i en klasse som gjør noe, beregner noe eller endrer noe med det enkelte objektet. Et objekt basert på en klasse, kan kalle opp og gjøre seg nytte av disse metodene (såfremt de er deklarert som Public). Rent konkret så vi hvordan vi kunne regne ut en persons body mass index ved å kalle en metode, selv om bare objektvariablene vekt og hoyde var satt.

Objektorientering i VB videregående

Objektorientering i VB videregående Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Objektorientering i VB videregående Oppdatert av Atle Nes Objektorientering i VB videregående Resymé: Denne leksjonen tar opp flere detaljer

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 16.desember 2005 Varighet: Fagnummer: Fagnavn: 3 timer LO116D Programmering i Visual Basic Klasse(r): FU

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 16.desember 2005 Varighet: Fagnummer: Fagnavn: 3 timer LO116D Programmering i Visual Basic Klasse(r): FU

Detaljer

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

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

Detaljer

Introduksjon til objektorientert programmering

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

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 15.desember 2004 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LO116D Programmering i Visual Basic FU

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 20.mai 2005 Varighet: Fagnummer: Fagnavn: Klasse(r): Studiepoeng: 6 3 timer LO116D Programmering i Visual

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

HVA ER PROGRAMMERING?...

HVA ER PROGRAMMERING?... Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Introduksjon til programmering i VB.NET Svend Andreas Horgen Lærestoffet er utviklet for faget IINI1004 Programmering i Visual Basic Resymé:

Detaljer

AVANSERTE TING LEVETID, BRUKSOMRÅDE OG KONVERTERING...

AVANSERTE TING LEVETID, BRUKSOMRÅDE OG KONVERTERING... Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Variabler, konstanter og datatyper Svend Andreas Horgen Lærestoffet er utviklet for faget IINI1004 Programmering i Visual Basic Resymé: Denne

Detaljer

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål Variabler og datatyper Gløer Olav Langslet Sandvika VGS Høst 2012 Informasjonsteknologi 2 Hva er programmering? Når du skal bake en kake følger du gjerne en oppskrift. Først er det beskrevet hva kaken

Detaljer

Argumenter fra kommandolinjen

Argumenter 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

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

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.

Detaljer

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 HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 15. mai 2003 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LO116D Programmering i Visual Basic FU Studiepoeng:

Detaljer

Dagens tema Kapittel 8: Objekter og klasser

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

Detaljer

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering Etter uke 6 skal du Kjenne til motivasjonen for objektorientert programmering Introduksjon til objektorientert programmering INF1001 Høst 2016 Forstå hva en klasse er, og forskjellen på klasse og objekt

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 19. mai 2004 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LO116D Programmering i Visual Basic FU Studiepoeng:

Detaljer

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

Detaljer

Velkommen til. INF våren 2016

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

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 30.november 2005 Varighet: 0900-1300 Fagnummer: Fagnavn: Klasse(r): LV195D Objektorientert programmering i C++ Nettstudenter

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 15.desember 2004 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LO116D Programmering i Visual Basic FU

Detaljer

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler Plan for dagen Vprg 4 LC191D Videregående programmering Høgskolen i Sør-Trøndelag Avdeling for informatikk og e-læring Anette Wrålsen Del: Intro til tekstfiler Del II: Mer om tekstfiler, Scanner-klassen

Detaljer

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 2 https://www.youtube.com/watch? v=nkiu9yen5nc 3 Læringsmål og pensum Mål Lære om

Detaljer

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

LC191D 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

Detaljer

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; } Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang 2 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 3 https://www.youtube.com/watch? v=nkiu9yen5nc 4 Læringsmål og pensum Mål Lære om

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - Kandidatnr: AITeL Eksamensdato: 4.mai 2011 Varighet: 0900-1300 Emnekode: Emnenavn: Klasser: LV195D Objektorientert programmering i C++ Nettstudenter

Detaljer

Hei verden Introduksjon Swift PDF

Hei verden Introduksjon Swift PDF Hei verden Introduksjon Swift PDF Introduksjon Swift er et programmeringsspråk laget av Apple og er etterfølgeren til Objective-C. Med Swift kan du lage apper for ios og OSX. For å gjennomføre dette kurset

Detaljer

public static navn_til_prosedyre() { // implementasjon av prosedyren

public 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

Detaljer

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

if-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

Detaljer

Innføring i bruk av CGI4VB

Innføring i bruk av CGI4VB Innføring i bruk av CGI4VB Her kommer en enkel innføring i bruk av modulen CGI4VB som kan benyttes for å lage CGI programmer i Visual Basic. CGI er en forkortelse for Common Gateway Interface den kommunikasjonsprotokollen

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 21.mai 2007 Varighet: Fagnummer: Fagnavn: Klasse(r): Studiepoeng: 6 09.00 13.00 (4 timer) LN116D Programmering

Detaljer

6108 Programmering i Java. Leksjon 1. Introduksjon til programmering og til Java

6108 Programmering i Java. Leksjon 1. Introduksjon til programmering og til Java 6108 Programmering i Java Leksjon 1 Introduksjon til programmering og til Java Hva er programmering? 1. Hva er et program? 2. Hva skal programmeres? 3. Hva er en programmerer? Programmering i Java - Leksjon

Detaljer

Læringsmål for forelesningen

Læringsmål for forelesningen Læringsmål for forelesningen Objektorientering Delegeringsteknikken Delegering vs. arv 1 Dagens forelesning Introduksjon og motivasjon Hvorfor forelese om standardteknikker, såkalte patterns? Hva slags

Detaljer

Eksamen. Objektorientert Programmering IGR 1372

Eksamen. Objektorientert Programmering IGR 1372 + JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV

Detaljer

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 29. august 2005 1. Å lage programmer i C++ Resymé: Dette notatet

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Målform: Eksamensdato: Bokmål 9.mai 202 Varighet/eksamenstid: 0900-300 Emnekode: Emnenavn: Klasse(r): Studiepoeng: LC9D/LO9D Videregående

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

Hva er programmering?

Hva er programmering? 6108 Programmering i Java Leksjon 1 Introduksjon til programmering og til Java Hva er programmering? 1. Hva er et program? 2. Hva skal programmeres? 3. Hva er en programmerer? Programmering i Java - Leksjon

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Hei JavaScript! Introduksjon Web Introduksjon I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Steg 1: Bruke JS Bin

Detaljer

INF1000: noen avsluttende ord

INF1000: 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

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - Kandidatnr: AITeL Eksamensdato: 2.desember 2009 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D LO191D Videregående programmering

Detaljer

1. NetBeans IDE: Lage en enkel mobilapplikasjon

1. NetBeans IDE: Lage en enkel mobilapplikasjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering

Detaljer

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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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)

Detaljer

Enkle generiske klasser i Java

Enkle 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

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 3 Frist: 2014-02-07 Mål for denne øvinga:

Detaljer

Mangelen på Internett adresser.

Mangelen på Internett adresser. 1. Av 2 Introduksjon og forord Internett er som kjent bygd opp i adresser, akkurat som husstander, byer og land, dette er fordi Internett er bygd opp mye likt post systemet, du kan sammenligne en maskin

Detaljer

OPPGAVESETT 7 OBJEKTER OG REFERANSER

OPPGAVESETT 7 OBJEKTER OG REFERANSER OPPGAVESETT 7 OBJEKTER OG REFERANSER Oppgavesett 7 i Programmering: objekter og referanser. I dette oppgavesettet blir du introdusert til objekter og referanser i Java. Dette er del 2 av introduksjonen

Detaljer

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

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

Detaljer

Visual Basic. Repetisjon fra mandag

Visual Basic. Repetisjon fra mandag Visual Basic Kontrollstrukturer del 2 Løkker - 1 1 Repetisjon fra mandag Tre kontrollstrukturer: Sekvens Gjør punkt 1 Gjør punkt 2 Valg Hvis betingelse er sann Gjør punkt 1 Ellers Gjør punkt 2 Løkke initier

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 15.desember 2006 Varighet: Fagnummer: Fagnavn: 09.00 13.00 (4 timer) LO116D og LN116D Programmering i Visual

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - Kandidatnr: AITeL Eksamensdato: 5.mai 2010 Varighet: 0900-1300 Emnekode: Emnenavn: Klasser: LV195D Objektorientert programmering i C++ Nettstudenter

Detaljer

INF våren 2017

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

Detaljer

INF1000: noen avsluttende ord

INF1000: 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

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

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.

Detaljer

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner Etter uke 9 skal du Introduksjon til objektorientert programmering INF1001 Høst 2016 Uke 9 Kunne designe og implementere en programstruktur med flere klasser Kunne etablere og manipulere objekter i (sammensatte)

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

Eksamen Objektorientert Programmering 2011

Eksamen Objektorientert Programmering 2011 Eksamen Objektorientert Programmering 2011 Høgskolen i Østfold 2011-05-11 Emnekode ITF10611 Emne Objektorientert Programmering Dato 2011 05-11 Eksamenstid 09:00-13:00 Hjelpemidler To A4-ark (fire sider)

Detaljer

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

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

Detaljer

Oblig4 - forklaringer. Arne og Ole Christian

Oblig4 - forklaringer. Arne og Ole Christian Oblig4 - forklaringer Arne og Ole Christian Stasjonsdata-1.txt NR NAVN MOH KOMMUNE FYLKE 4780 GARDERMOEN 202 ULLENSAKER AKERSHUS 10400 RØROS 628 RØROS SØR-TRØNDELAG 18700 OSLO-BLINDERN 94 OSLO OSLO 25590

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Kandidatnummer: Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF1000 Grunnkurs i objektorientert programmering Eksamensdag : Onsdag 5.desember 2012 Tid for eksamen

Detaljer

Hva er en metode? INF1000 Forelesning 8. Hva skjer når vi kaller en metode? Hvorfor bruke metoder?

Hva er en metode? INF1000 Forelesning 8. Hva skjer når vi kaller en metode? Hvorfor bruke metoder? Hva er en metode? INF1000 Forelesning 8 Litt repetisjon: Metoder og klasser Innkapsling av variable og metoder Hvordan gripe an et stort problem? 5 gode råd En metode er en valgfritt antall programsetninger

Detaljer

Java fra Eclipse til Evalanche

Java fra Eclipse til Evalanche Java fra Eclipse til Evalanche Dette er en veiledning for deg som lurer på hvordan du skal overføre (eller sende inn) java-filer fra et prosjekt i Eclipse til Evalanche. Nyere versjon ligger her: http://bit.ly/1e8yjji

Detaljer

Hva er en metode. Hva skjer når vi kaller en metode

Hva er en metode. Hva skjer når vi kaller en metode Hva er en metode Uke 9 - Repetisjon av metoder, klasser og objekter Innkapsling: private og public Statisk programmering vs. programmering med objeker 18 okt. 2005, Arild Waaler Inst. for informatikk,

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. JS: Hei JavaScript! Introduksjon Web Introduksjon I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Steg 1: Bruke

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Eksamensdato: 15.des 2011 Studiepoeng: 6 Varighet: 4 timer. Start kl 09:00 og skal leveres inn senest kl 13:00 Emnekode: Emnenavn:

Detaljer

Øving 1c: Egenrefleksjon

Øving 1c: Egenrefleksjon Tilbake Øving 1c: Egenrefleksjon Antall svarpersoner: 19 1. Matrisespørsmål Vi skal nå fokusere på læremålene. Du skal tenke aktivt gjennom om du har klart å oppfylle læremålene eller ikke. Velg OK dersom

Detaljer

To måter å programmere på. Java 12. Programmering med objekter. Statisk programmering

To måter å programmere på. Java 12. Programmering med objekter. Statisk programmering INF 101-10. mars 2003 Mer om klasser og objekter Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 12 To måter å programmere på Statisk programmering:

Detaljer

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.

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

Detaljer

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

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

Detaljer

Innføring i bruk av CGI4VB

Innføring i bruk av CGI4VB Innføring i bruk av CGI4VB Her kommer en enkel innføring i bruk av modulen CGI4VB som kan benyttes for å lage CGI programmer i Visual Basic. CGI er en forkortelse for Common Gateway Interface den kommunikasjonsprotokollen

Detaljer

Mattespill Nybegynner Python PDF

Mattespill Nybegynner Python PDF Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.

Detaljer

1. Profiler og variabler

1. Profiler og variabler Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Profiler og variabler Stein Meisingseth 26.05.2014 Lærestoffet er utviklet for faget IDRI3005 PowerShell 1. Profiler og variabler Resymé:

Detaljer

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

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"

Detaljer

Skilpadder Introduksjon Python PDF

Skilpadder Introduksjon Python PDF Skilpadder Introduksjon Python PDF Introduksjon: I denne modulen skal vi lære et programmeringsspråk som heter Python. Personen som laget det kalte det opp etter sitt favorittprogrammet på TV: Monthy Pythons

Detaljer

UNIVERSITETET I OSLO

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 :

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 4.mai 2011 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D Campus: LC191D Videregående

Detaljer

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Forklaring til programmet AbstraktKontoTest.java med tilhørende

Detaljer

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004

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

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv Bygg et Hus Introduksjon I denne leksjonen vil vi se litt på hvordan vi kan få en robot til å bygge et hus for oss. Underveis vil vi lære hvordan vi kan bruke løkker og funksjoner for å gjenta ting som

Detaljer

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Gaustadbekkdalen, januar 27 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår inne i primærlageret

Detaljer

Komme i gang. Kapittel 1 - Komme i gang... 3

Komme i gang. Kapittel 1 - Komme i gang... 3 30.01.2012 Kapittel 1... 1 DDS-CAD Arkitekt innføring i versjon 7 Komme i gang Kapittel Innhold... Side Kapittel 1 - Komme i gang... 3 Velkommen... 3 Er DDS-CAD Arkitekt installert?... 4 Operativmiljøet

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 21.desember 2007 Varighet: 0900-1300 Fagnummer: Fagnavn: Klasse(r): LV195D Objektorientert programmering i C++ nettstudenter

Detaljer

INF1000 Mer om objekter

INF1000 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

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 5.mai 200 Varighet: 0900-300 Emnekode: Emnenavn: Klasse(r): LO9D / LC9D LO9D Videregående programmering

Detaljer

INNFØRING I PRINSIPPER FOR OBJEKTORIENTERT PROGRAMMERING EMILIE HALLGREN OG KRISTIN BRÆNDEN

INNFØRING I PRINSIPPER FOR OBJEKTORIENTERT PROGRAMMERING EMILIE HALLGREN OG KRISTIN BRÆNDEN INNFØRING I PRINSIPPER FOR OBJEKTORIENTERT PROGRAMMERING AGENDA Bakgrunn Hva er objektorientert programmering? Pseudokode Datatyper Attributter Metoder Returverdier Lister Relasjoner Spørsmål BAKGRUNN

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

EKSAMEN. Objektorientert programmering

EKSAMEN. Objektorientert programmering EKSAMEN Emnekode: ITF 10609 Dato: 13.mai 2009 Emne: Objektorientert programmering Eksamenstid: kl 09.00 til kl 12.00 Hjelpemidler: 2 A4-ark med valgfritt innhold på begge sider. Faglærere: Tom Heine Nätt

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 2 Læringsmål Mål Introduksjon til filer (som inndata og utdata) Å bruke

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering 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

Detaljer

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett. Norgestur Introduksjon Bli med på en rundreise i Norge! Vi skal lage et spill hvor du styrer et helikopter rundt omkring et kart over Norge, mens du prøver å raskest mulig finne steder og byer du blir

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 1 Frist: 2014-01-24 Mål for denne øvinga:

Detaljer

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN EKSAMENSFORSIDE SKRIFTLIG EKSAMEN Fag-/kurskode OBJ110 Fag/kurs Objektorientert systemutvikling 1 Ansvarlig faglærer Viggo Holmstedt Ansvarlig fakultet ØS Klasse(r)/gruppe(r) IS2 Dato 13.12.2010 Eksamenstid,

Detaljer

INF1000 Prøveeksamen Oppgave 7 og 9

INF1000 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

Detaljer