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 ( og Ole 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

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

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

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

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

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

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

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

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

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

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk Innhold uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2017 uke 7 Siri Moe Jensen Lite tilbakeblikk: Prosedyrer og funksjoner Objektorientert programmering Introduksjon: Hvorfor,

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

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

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

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

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

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

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

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Tirsdag 12. juni 2012 Tid for eksamen: 9:00 15:00 Oppgavesettet er

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

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

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

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

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop Læringsmål uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2018 uke 7 Siri Moe Jensen Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,

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

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

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

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

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

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

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

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

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

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

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

UNIVERSITETET I OSLO

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

Detaljer

CASCADING STYLESHEETS (CSS)

CASCADING STYLESHEETS (CSS) CASCADING STYLESHEETS (CSS) HVA ER CSS Stylesheets er en metode for å flytte selve formatteringen av et HTML dokument ut av selve dokumentet og over i et eksternt regelsett. Dette skyldes HTMLs manglende

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // 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

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

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

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale. Høgskolen i Telemark Fakultet for allmennvitenskapelige fag EKSAMEN I 6108/6108N PROGRAMMERING I JAVA 21. 12. 2015 Tid: 4 timer Sidetall: Hjelpemiddel: Merknader: Framside + 5 sider Alt trykt og skriftlig

Detaljer

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1. Pingviner på tur Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon Velkommen til Scratch. Vi skal

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

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

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS Mine notater Gløer Olav Langslet Sandvika VGS Et praktisk eksempel med objekter Vi kjenner alle til korktavlen med gule lapper. Vi henger opp en lapp for at vi selv eller andre skal huske eller bli minnet

Detaljer

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

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

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

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2019 uke 7 Siri Moe Jensen Læringsmål uke 7 Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,

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

Hvorfor objektorientert programmering?

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon IN1000 Høst 2019 uke 7 Siri Moe Jensen Læringsmål uke 7 Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,

Detaljer

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere. Soloball Introduksjon Scratch Introduksjon Vi skal nå lære hvordan vi kan lage et enkelt ballspill med Scratch. I soloball skal du styre katten som kontrollerer ballen, slik at ballen ikke går i nettet.

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

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

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

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

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

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

JavaScriptbibliotek. Introduksjon MVVC. Informasjonsteknologi 2. Gløer Olav Langslet Sandvika VGS

JavaScriptbibliotek. Introduksjon MVVC. Informasjonsteknologi 2. Gløer Olav Langslet Sandvika VGS MVVC JavaScriptbibliotek Gløer Olav Langslet Sandvika VGS Knockout.js Informasjonsteknologi 2 Introduksjon I dag skal vi se nærmere på et JavaScriptbibliotek som heter Knockout. Knockout og andre biblioteker,

Detaljer

Program delegate. Lage et nytt prosjekt i Visual Studio

Program delegate. Lage et nytt prosjekt i Visual Studio Program delegate Kommunikasjon mellom objekter er en utfordring i objektorientert programmering. Dette GUI eksempelet viser hvordan bruke en delegate til å gjøre metodekall i et annet objekt. Vi skal legge

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

Skilpaddekunst. Steg 1: Møt skilpadden. Sjekkliste. Introduksjon. Turtles

Skilpaddekunst. Steg 1: Møt skilpadden. Sjekkliste. Introduksjon. Turtles Skilpaddekunst Introduksjon Skilpadder (turtles på engelsk) er en form for roboter som har vært i bruk innen programmering i lang tid. Vi vil bruke skilpadde-biblioteket i Python til å utforske flere programmeringskonsepter

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. Hvor i All Verden? Del 1 Introduksjon Hvor i All Verden? er et reise- og geografispill hvor man raskest mulig skal fly innom reisemål spredt rundt i Europa. I denne første leksjonen vil vi se på hvordan

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

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

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen. Kuprat Skrevet av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert Fag: Norsk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon I dette kurset skal vi introdusere programmeringsspråket Python. Dette

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

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

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

public static <returtype> navn_til_prosedyre(<parameter liste>) { // 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

Sprettende ball Introduksjon Processing PDF

Sprettende ball Introduksjon Processing PDF Sprettende ball Introduksjon Processing PDF Introduksjon: I denne modulen skal vi lære et programmeringsspråk som heter Processing. Det ble laget for å gjøre programmering lett for designere og andre som

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 24. august 2006 1. Å lage programmer i C++ Resymé: Dette notatet

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

Her er et eksempel på hvordan en konteringsmal brukes, under registrering av en telefonregning fra Telenor (Innkjøp > Leverandørfaktura):

Her er et eksempel på hvordan en konteringsmal brukes, under registrering av en telefonregning fra Telenor (Innkjøp > Leverandørfaktura): Konteringsmaler Konteringsmaler kan benyttes under bilagsregistrering og under registrering av leverandørfakturaer. De brukes for å forenkle konteringen av bilagene. Når du bruker en konteringsmal trenger

Detaljer

Snake Expert Scratch PDF

Snake 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

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

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

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

Skilpaddefraktaler Erfaren Python PDF

Skilpaddefraktaler Erfaren Python PDF Skilpaddefraktaler Erfaren Python PDF Introduksjon Vi vil nå jobbe videre med skilpaddekunsten fra tidligere. Denne gangen skal vi tegne forskjellige figurer som kalles fraktaler. Fraktaler er figurer

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

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! Skrevet av: Arve Seljebu Kurs: Web Tema: Tekstbasert, Nettside Fag: Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon I denne oppgaven blir du introdusert for

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

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide ToPlayer Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon: Nå skal vi

Detaljer

Sprettball Erfaren ComputerCraft PDF

Sprettball Erfaren ComputerCraft PDF Sprettball Erfaren ComputerCraft PDF Introduksjon Nå skal vi lære hvordan vi kan koble en skjerm til datamaskinen. Med en ekstra skjerm kan vi bruke datamaskinen til å kommunisere med verden rundt oss.

Detaljer

Robotinvasjon Introduksjon ComputerCraft PDF

Robotinvasjon Introduksjon ComputerCraft PDF Robotinvasjon Introduksjon ComputerCraft PDF Introduksjon Vi har sett enkle datamaskiner. Nå skal vi leke oss med roboter, og finne ut hvordan vi kan få dem til å gjøre forskjellige ting for oss. Steg

Detaljer

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i. Skilpaddeskolen Steg 1: Flere firkanter Nybegynner Python Åpne IDLE-editoren, og åpne en ny fil ved å trykke File > New File, og la oss begynne. Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell'

Detaljer

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF Introduksjon Vi begynner med å bygge en enkel datamaskin. Etter å ha brukt litt tid på å bli kjent med hvordan datamaskinen virker, bruker vi den

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

Spøkelsesjakten. Steg 1: Lag et flyvende spøkelse. Sjekkliste. Introduksjon

Spøkelsesjakten. Steg 1: Lag et flyvende spøkelse. Sjekkliste. Introduksjon Spøkelsesjakten Introduksjon Dette prosjektet er inspirert av tivolispillet Whack-a-mole, hvor man slår muldvarper ned igjen i hullene sine. I vårt spill er det spøkelsene som blir borte vi klikker på

Detaljer

Oblig4 - forklaringer. Arne og Ole Christian

Oblig4 - forklaringer. Arne og Ole Christian Oblig4 - forklaringer Arne og Ole Christian Struktur og alle (?) klassene import easyio.*; import java.util.*; class Oblig4 { public static void main (String[] args) { String s1 = "Stasjoner-1.txt"; String

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

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET 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

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

INF1000: Forelesning 7

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

Detaljer

INF1000: Forelesning 7. Konstruktører Static

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

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

Straffespark Introduksjon Scratch Lærerveiledning

Straffespark Introduksjon Scratch Lærerveiledning Straffespark Introduksjon Scratch Lærerveiledning Introduksjon Vi skal lage et enkelt fotballspill, hvor du skal prøve å score på så mange straffespark som mulig. Steg 1: Katten og fotballbanen Vi begynner

Detaljer

INF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004

INF1010 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

Detaljer

Du har sikkert allerede startet noen programmer ved å trykke på kontrollknappen. VINDUER = WINDOWS

Du har sikkert allerede startet noen programmer ved å trykke på kontrollknappen. VINDUER = WINDOWS Operativsystemet Kort historie Utviklingen av datamaskiner og dataprogrammer går fort. Den som har sitt første møte med dataverdenen i dette kurset, vil kanskje allikevel ha hørt om DOS (Disk Operating

Detaljer