Klasser. Webprogrammering høsten Objekter. Eksempelklasser og -objekter. 2 of :56. 1 of :56
|
|
- Brita Rasmussen
- 8 år siden
- Visninger:
Transkript
1 [Kurssidene] [ ABI - fagsider bibin ] Objekter Webprogrammering høsten 2015 Et objekt er en "ting" som representeres i et program. Representasjonen tar for seg attributter og oppførsel Attributter (egenskaper) Attributter er variabler som representerer forskjellige aspekter ved et objekt: betegnelse, utstrekning osv. Metoder Et objekt som representerer en person kan ha $navn og $adresse som attributter Et objekt som representerer en bil kan ha $farge, $vekt, $hestekrefter $forventet_holdbarhet og $eier. Metoder representerer objektets oppførsel og implementeres med hjelp av funksjoner. Et objekt som representerer en person kan ha en metode flytt() for å bytte adresse og endrer andre attributter som har med flytting å gjøre. Et objekt som representerer en bil kan ha en metode service() som endrer bilens forventede holdbarhetsattaibutt. Et person_objekt kan ha en metode kjoepbil() som forandrer personenes egen tilstand (fra en fotgjenger til en eier av en bil), og også forandrer $eier-attributtet av det aktuelle bil-objektet (bilen som blir kjøpt). Klasser Klasser er maler for objekter. Klassen Person holder alle attributter og metoder som alle personer deler. for eksempel så har klassen Person en variabel $vekt, som i seg selv aldri får verdi (en slags mal på en variabel), men som sørger for at hvert nyopprettet objekt av typen Person får en variabel $vekt som kan få en verdi. Ovn. gjelder også metoder Eksempelklasser og -objekter Klassen Tekststreng Eksempel 1: PHP-ordet var oppretter $tekst som et attributt til klassen Tekstreng class Tekststreng{ var $tekst ; //attributt } Eksempel 2 : funksjonen finnlengde() er en metode i klassen Tekstreng class Tekststreng{ var $tekst ; //attributt function finnlengde(){ return strlen($this->tekst); } } 1 of :56 2 of :56
2 Eksempel 3 : Vi definerer og tester variabelen $tekst og metoden finnlengde(). 3. function finnlengde(){ 4. return strlen($this->tekst); 7. $a = new Tekststreng(); 8. $a->tekst="god morgen"; 9. $b = new Tekststreng(); 10. $b->tekst="god kveld"; 11. print "<p>tekstreng dollar-a er $a->tekst, med lengde ".$a->finnlengde().".</p>"; 12. print "<p>tekstreng dollar-b er $b->tekst, med lengde ".$b->finnlengde().".</p>"; Programmet i Eksempel 3 Gjør følgende: Linje 1-6 definerer klassen. Linje 3-5 definerer en metode i klassen. Linje 7 og 9 oppretter hver sitt nye objekt av typen Tekstsreng Linjer 8 og 11 legger en verdi i tekstattributtet til de respektive objektene, og linjer 11 og 12 rapporterer innholdet til objektene med bl.a. bruk av metodene. Henvisning til attributter fra inne i klassedefinisjonen: $this->tekst (linje 4) Legg merke til at utenfra: $a->tekst eller $b->tekst (linjer 11 og 12). Hvert av Tekststreng-objektene har sitt eget $tekst - attributt Hver klasse sin fil Klasser er sterkte forbundet med gjenbruk (dette kommer vi tilbake til) Det er vanlig å programmere klasser i egne filer, og hente inn filen inn i et annet program som bruker det, med en inkluderingsfunksjon 3. function finnlengde(){ 4. return strlen($this->tekst); Filen ovenfor kaller vi Tekststreng.php. Vi holder oss til <Klassenavn>.php når vi includere klasser i egen fil ( selv om noen programmerere også her bruker konvensjonen <Klassenavn>.inc.php Testfil nedenfor kan vi kalle Testklasse.php 2. $a = new Tekststreng(); 3. $a->tekst="god morgen"; 4. $b = new Tekststreng(); 5. $b->tekst="god kveld"; 6. print "<p>tekstreng dollar-a er $a->tekst, med lengde ".$a->finnlengde().".</p>"; 7. print "<p>tekstreng dollar-b er $b->tekst, med lengde ".$b->finnlengde().".</p>"; Hvis vi kjører Tekststreng.php, får vi følgende resultet (som ovenfor...) Tekstreng dollar-a er God morgen, med lengde 10. Tekstreng dollar-b er God kveld, med lengde 9. sin egen finnlengde()-metode i det øyeblikket et Tekststreng objekt er opprettet med new, ligger både attributtet ($tekst) og metoden (finnlengde()) klare til bruk. Tekstreng dollar-a er God morgen, med lengde 10. Tekstreng dollar-b er God kveld, med lengde 9. 3 of :56 4 of :56
3 Klassen Filmappe Klassen Filmappe og to objekter til På samme måte som vi opprettet klasser med vanlige variabler som attributter, får vi av og til behov for array-attributter i klasser. Dette er, i prinsippet, det samme. Eksempel 4: Klassen Filmappe i filen "Filmappe.php" 1. class Filmappe{ 2. var $tittel; 3. var $filarray; //array attributt 4. var $dato; 5. function finnantallfiler(){ 6. return count($this->filarray); 7. } 8. } Eksempel 5: Vi tester klassen i filen testfilmappe.php 1. include "Filmappe.php"; 2. $enmappe = new Filmappe(); //Lager en ny Filmappe 3. $enmappe->tittel="minmappe";//gir tekststrengen en verdi 4. print <<<INNLSLUTT 5. <p> Filmappen heter $enmappe->tittel </p> 6.INNLSLUTT; 7. //Oppretter filer i ny Filmappe 8. $enmappe->filarray[0] = "førstefil"; 9. $enmappe->filarray[1] = "andre"; 10. $enmappe->filarray[2] = "endaenfil"; 11. $i=0; 12. while ($i < $enmappe->finnantallfiler()){ 13. print <<<STRINGSLUTT 14. <p> fil $i heter {$enmappe->filarray[$i]}</p> 15.STRINGSLUTT; 16. $i++; 17. } Vi har definert klassen Filmappe. Den har "plassholdere" for variablene og funksjonen er definert. Men ingen ting av disse er materialisert. De er foreløpig bare på ide-stadiet. Nå bruker vi kommandoen new to ganger (linje 9. og 10. nedenfor), oppretter dermed to objekter og legger inn data i hver sitt objekt: 1. include "Filmappe.php"; 2. $fm1 = new Filmappe(); 3. $fm1->tittel = "FM1"; 3. $fm1->filarray[0] = "f1; 4. $fm1->filarray[1] = "f2"; 5. $fm1->filarray[2] = "f3"; 6. $fm1->filarray[2] = "f4"; 7. $fm1->dato = "12.3"; 10. $fm2 = new Filmappe(); 11. $fm2->tittel = "FM2"; 12. $fm2->filarray = array("fil1", "fil2");...osv 13. $fm2->dato = "14.5"; Filmappen heter Minmapppe fil 0 heter førstefil fil 1 heter andre fil 2 heter endaenfil Legg merke til at hver forekomst av Filmappe klassen i eksempel 5 kan ha forskjellige antall filer dette fordi arrayene som opprettes i hvert av objektene, er uavhengige av hverandre, og kan ha forskjellige antall innførsler. Allikevel er det samme klasse vi bruker, og i dèt ligger fleksibilitet og gjenbruk. 5 of :56 6 of :56
4 Opprettelse av objekter med konstruktør Så langt har vi opprettet tomme objekter. $a = new Tekststreng(); $a->tekst="god morgen" Det hender vi ønsker å opprette et objekt som allerede inneholder noen verdier VED OPPRETTELSEN. Måten å gjøre det på, er å bruke en spesiell metode som heter konstruktør, og har navnet construct 3. function finnlengde(){ 4. return strlen($this->tekst); 6. function construct($t){ 7. $this->tekst=$t; 8. } 9. }//slutt på klassen Tekststreng 2. $a = new Tekststreng("God morgen"); På linje 5 og 7 aksesserer vi attributtet $tekst direkte fra utenfor klassen. Dette er det mange grunner til å unngå. Vi kommer inn på disse etter hvert. Foreløpig: betrakt følgende versjon av Tekststreng: 2. private $tekst; //attributt 3. public function gettekst(){ 3. return $this->tekst; 3. public function settekst($t){ 4. $this->tekst=$t; 7. $a = new Tekststreng(); 8. $a->settekst("god morgen"); 9. $b = new Tekststreng(); 10. $b->settekst("god kveld"); 11. print "<p>tekstreng dollar-a er {$a->gettext()}.</p>"; 12. print "<p>tekstreng dollar-b er {$b->gettext()}.</p>"; Vi definerer to aksesseringsmetoder(eller aksessmetoder), settekst() og gettekst(), som oppdaterer hhv. avleser $tekst. Skjuling av variabler i objekter Betrakt (et utdrag fra) klassen Tekststreng, og programmet som tester den. På denne måten slipper vi å aksessere $tekst fra utenfor klassen. Metodene gettekst() og settekst() skjuler variabelen $tekst. I tillegg til det, defineres $tekst som private, og kan dermed bare aksesseres fra rosa område. Klasser hvor det passes på at objekt-attributter skjules er generelt sett lettere å vedlikeholde $a = new Tekststreng(); 5. $a->tekst="god morgen"; 6. $b = new Tekststreng(); 7. $b->tekst="god kveld"; 8. print "<p>tekstreng dollar-a er $a->tekst.</p>"; 9. print "<p>tekstreng dollar-b er $b->tekst.</p>"; 7 of :56 8 of :56
5 Betrakt følgende klasse, som kan brukes for å lage sirkler i tegneprogram. 1. class Sirkel{ 2. private $radius; //attributt 3. public function getradius(){ 4. return $this->radius; 6. public function setradius($r){ 7. $this->radius=$r; 8. } 9. } En liten test 1. include Sirkel.php" 7. $s1 = new Sirkel(); 8. $s1->setradius(1); 9. $s2 = new Sirkel(); 10. $s2->setradius(2); 11. print "<p>sirkel dollar-s1 har radius{$s1->geradius()}.</p>"; 12. print "<p>sirkel dollar-s2 har radius{$s2->getradius()}.</p>"; Poenget er: Den nye klassen kan uten videre tas i bruk istedenfor den gamle. Implementasjonsdetaljer er endret (private $radius til private $diameter). Grensesnitt (public metoder) er uendret. Fra nå av koder vi alle våre objektattributter som private, og metoder som skal være åpne for utenforverdenen public. Det betyr at metodene (ofte av type get og set, men ikke bare) er objektets grensesnitt (engelsk: interface), og det er gjennom disse bruken av objektene er definert. Vi holder oss til at attributters navn har små bokstaver og aksessmetoder heter get og set med stor bokstav på attributtnavnet: $tekst, gettekst(), settekst($t); $navn, getnavn(), setnavn($n) Anta at klassen Sirkel er tatt i bruk av programmerere som lager mange forskjellige tegneverktøy. Et år etter at den er laget, fant noen ut at det er raskere og greiere å kode diameter istedenfor radius. (det gir en mer effektiv klasse og mer effektive objekter) 1. class Sirkel{ 2. private $diameter; //diameter istedenfor radius 3. public function getradius(){ 3. return $this->diameter/2; 3. public function setradius($r){ 4. $this->diameter=$r*2; 1. include "Sirkel.php"; 7. $s1 = new Sirkel(); 8. $s1->setradius(1); 9. $s2 = new Sirkel(); 10. $s2->setradius(2); 11. print "<p>sirkel dollar-s1 har radius{$s1->geradius()}.</p>"; 12. print "<p>sirkel dollar-s2 har radius{$s2->getradius()}.</p>"; 9 of :56 10 of :56
6 Klasser som arver fra hverandre. Anta en klasse som representerer en student 1. class Student{ 2. private $navn; //attributt 3. private $personnummer; //attributt 4. private $studiepoeng; //attributt Anta en klasse som representerer en foreleser 1. class Foreleser{ 2. private $navn; //attributt 3. private $personnummer; //attributt 4. private $aarsloenn; //attributt Begge klassene representerer to typer personer. Derfor går det an å ha en klasse Person, som disse to, hver for seg, "utvider". 1. class Person{ 2. private $navn; //attributt 3. private $personnummer; //attributt 4. } class Foreleser extends Person{ //får implisitt navn og personnummer 2. private $aarsloenn; //attributt 1. class Student extends Person{ //får implisitt navn og personnummer 2. private $studiepoeng; //attributt Når vi lager objekter av Student og Foreleser: begge får både $navn- og $personnummer-attributt, studenten får $studiepoeng-attributt foreleseren et $aarsloenn-attributt. 11 of :56
<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.
Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] Webprogrammering høsten 2015 //funksjonskall printhallo(); //enda en gang printhallo();
Detaljerwhile-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke
[Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Michael Preminger
DetaljerTDT4102 Prosedyreog objektorientert programmering Vår 2016
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 4 Frist: 2016-02-12 Mål for denne øvingen:
DetaljerSkilpaddefraktaler 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
DetaljerI 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
DetaljerINF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004
INF1010 Arv Marit Nybakken marnybak@ifi.uio.no 2. februar 2004 Motivasjon Arv bruker vi så vi skal slippe å skrive oss i hjel. Når vi programmerer, prøver vi gjerne å modellere en del av verden ved hjelp
DetaljerVerdier, variabler og forms
[Kurssidene] [ ABI - fagsider bibin ] Verdier, variabler og forms Michael Preminger (michaelp@hio.no) 16/01-14 Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Litt om forrige times øvelsesoppgaver
DetaljerOblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59
Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være
Detaljer23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
DetaljerRedd verden. Steg 1: Legg til Ronny og søppelet. Sjekkliste. Introduksjon
Redd verden Nybegynner Scratch Introduksjon Kildesortering er viktig for å begrense hvor mye avfallet vårt påvirker miljøet. I dette spillet skal vi kildesortere og samtidig lære en hel del om meldinger
DetaljerEn enkel while-løkke. 1 of 12 15.09.2015 15:28. 2 of 12 15.09.2015 15:28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt
while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 15/09-15 En liten repetisjon Løkker Arrayer (tabeller) Løkker
DetaljerKanter, kanter, mange mangekanter
Kanter, kanter, mange mangekanter Nybegynner Processing PDF Introduksjon: Her skal vi se på litt mer avansert opptegning og bevegelse. Vi skal ta utgangspunkt i oppgaven om den sprettende ballen, men bytte
DetaljerHusk 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'
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
Detaljer}?> <!DOCTYPE... <html xmlns="http://www.w3.org/1999/xhtml"> <head>... </head> <body> <p>nå skal vi printe hallo:</p> <?php //funksjonskall
Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] //funksjonskall printhallo(); //enda en gang printhallo(); Michael Preminger (michaelp@hio.no)
DetaljerINF1000 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[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15. Vi holder orden på verdier med hjelp av variabler
[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15 Vi holder orden på verdier med hjelp av variabler Vi lagrer verdier i variabler. Variabelnavn uttrykker verdienes rolle
DetaljerLøsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011) HashMap, innstikksortering, javadoc (kap. 9.1-9.11, m.m. i "Rett på Java" 3. utg.) NB! Legg merke til at disse er løsningsforslag. Løsningene
DetaljerAnalyse (parsing) av XML-dokumenter DOMDocument Dokument Dokument I denne presentasjonen Eksempel1: analysere lokale XML-filer XML - DOM
[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 27/10-15 I denne presentasjonen Om XML og DOM-pakken OM curl-pakken (ikke dekket i boka) XML - DOM Webprogrammering høsten 2015
DetaljerWebprogrammering høsten 2017
Analyse (parsing) av XML-dokumenter [Kurssidene] [ ABI - fagsider bibin ] Webprogrammering høsten 2017 XML-dokument objekt av klassen DOMDocument. representerer et tre med node-objekter (DOMNode). Nodene
DetaljerLøsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse
DetaljerTDT4102 Prosedyreog objektorientert programmering Vår 2016
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 5 Frist: 2016-02-19 Mål for denne øvingen:
DetaljerEKSAMEN. 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
DetaljerSoloball. 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.
DetaljerIntroduksjon til beslutningsstrukturer
[Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Introduksjon til beslutningsstrukturer Michael Preminger (michaelp@hio.no) 24/01-14 Repitisjon fra
DetaljerUtførelse av programmer, metoder og synlighet av variabler i JSP
Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerPå tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.
Tre på rad Erfaren Python Introduksjon På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad. Steg 1: Tegne
DetaljerKlask-en-Muldvarp. Steg 1: Gjøre klart spillbrettet. Sjekkliste. Introduksjon
Klask-en-Muldvarp Introduksjon App Inventor Introduksjon I denne oppgaven skal vi lage et veldig enkelt spill med litt animasjon. Det som skal skje er at en muldvarp hopper rundt på spillbrettet mens du
DetaljerUNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet LØSNINGSFORSLAG Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet
DetaljerINF1010 - Seminaroppgaver til uke 3
INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar
DetaljerLC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Objektorientert modellering
DetaljerLegg merke til at at over de blå klossene er det flere kategorier av kommandoer i forskjellige farger, for eksempel
Astrokatt Introduksjon Scratch Introduksjon Katten vår har så lyst å være en astronaut, la oss se om vi kan hjelpe ham? Underveis vil vi lære hvordan vi flytter figurer rundt på skjermen, og hvordan katter
DetaljerLæringsmål for forelesningen
Læringsmål for forelesningen Objektorientering Abstrakte klasser og grensesnitt, redefinering av metoder Java-programmering Arv og bruk av abstrakte klasser Eclipse Undersøke instanser i Eclipse 1 Dagens
DetaljerLese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:
Lese fra fil Filbehandling Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo INF1000 : Forelesning 5 Vi må først importere pakken easyio Vi åpner
DetaljerForelesningsquiz. Forelesning inf1000 - Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.
Forelesning inf1000 - Java 5 Forelesningsquiz Tema: En liten quiz (se utdelt ark) Filbehandling Tekster Ole Christian Lingjærde, 19. september 2012 Sett dere to (eller tre) sammen og besvar de fire spørsmålene
DetaljerOO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0
OO-eksempel I eksemplet er det deklarert tre klasser: 1) Fag (skal instansieres ett objekt for hvert fag) 2) Student (skal instansieres ett objekt for hver student) 3) Studenter (abstrakt klasse skal ikke
DetaljerDiverse eksamensgaver
Diverse eksamensgaver Noen har fått den idé å lage et språk hvor klasser kan ha noe tilsvarende byvalue-result -parametere. Klasser har ingen konstruktører, og by-value-result parametere spesifiseres som
DetaljerRepitisjonskurs. Arv, Subklasser og Grensesnitt
Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett
DetaljerAntall sider (inkl. forsiden): 7. Alle trykte og håndskrevne
Side 1 av 7 Bokmålstekst Emne: PROGRAMMERING (nytt pensum, 10 studiep.) Grupper: laa, lab, lac, lia, lib, lic Eksamensoppgaven best~r av: Tillatte hjelpemidler: Antall sider (inkl. forsiden): 7 Alle trykte
DetaljerLæ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,
DetaljerGeometri Verktøylinja i GeoGebra Konstruksjon / tegning Konstruksjonsforklaring Normaler, paralleller og vinkler Mangekant, areal og omkrets
2 Geometri Verktøylinja i GeoGebra Konstruksjon / tegning Konstruksjonsforklaring Normaler, paralleller og vinkler Mangekant, areal og omkrets Eksamensoppgaver 0 Innholdsfortegnelse INTRODUKSJON GEOGEBRA...
DetaljerDagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?
Dagens tema: 12 gode råd for en kompilatorskriver Hva skal gjøres med navn? Sjekking av navn Hvordan sjekke navn? Testutskrifter 12 gode råd En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme
DetaljerSkilpadder hele veien ned
Level 1 Skilpadder hele veien ned All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your
Detaljerklassen Vin må få en ny variabel Vin neste alle personvariable (personpekere) i listeklassen må byttes til Vin
INF1010 forelesning Lenkelister II Dette skrivet inneholder en oversikt over det jeg planlegger å forelese på andre forlesning om lenkelister. Det inneholder stort sett programeksempler med kommentarer
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve Repetisjon fra forrige uke: while Syntaks: while (condition) do1; do2;... Eksempel:
DetaljerProjeksjoner av vektorer Analyse av værdata
Projeksjoner av vektorer Analyse av værdata Lars Sydnes 11. september 2013 1 Osloserien Ved værstasjoner rundt omkring i verden måler man temperaturen hver eneste dag. Vi har tilgang til målinger gjort
DetaljerINF1000 Prøveeksamen Oppgave 7 og 9
INF1000 Prøveeksamen Oppgave 7 og 9 Høst 2015 Siri Moe Jensen 7a) Skriv en klasse Gave med to variabler som forteller hva som er i gaven, og hvor mye den har kostet. Klassen skal ha en konstruktør med
DetaljerINF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 17. august 2012 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:
DetaljerTOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 4 Utlevert : Veke 9 Innleveringsfrist : 19. mars 2010 Klasse : 1 Data og 1 Informasjonsteknologi Ta gjerne 1 og 2 først! Gruppearbeid: 2 personar pr. gruppe
DetaljerHvordan du kommer i gang med LOGO.
Hvordan du kommer i gang med LOGO. Innhold: Velkommen til et kurs for å lære grunnleggende bruk av LOGO. Vi går gjennom noen viktige funksjoner slik at du til slutt kan få til å programmere. Dette opplegget
DetaljerUtførelse av programmer, funksjoner og synlighet av variabler (Matl.)
Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Av Jo Skjermo (basert på Alf Inge Wang sin versjon om JSP). 1. Utførelse av kode i kommando/kalkulatormodus Et dataprogram består oftest
DetaljerInnhold 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,
Detaljer3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster
3 emner i dag! INF1000 Uke 5 Litt om objekter, pekere og null Filer og easyio Litt mer om tekster Litt om objekter, filer med easyio, tekst 1 2 Objekter og pekere Vi lager pekere og objekter når vi bruker
DetaljerKompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering
Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at
DetaljerEKSAMEN I INF244: OBJEKTORIENTERT PROGRAMVAREUTVIKLING I BACHELORSTUDIET I IT OG INFORMASJONSSYSTEMER BACHELORSTUDIET I IT OG ENTREPRENØRSKAP
Høgskolen i Buskerud Avdeling for økonomi og samfunnsvitenskap 3502 Hønefoss EKSAMEN I INF244: OBJEKTORIENTERT PROGRAMVAREUTVIKLING I BACHELORSTUDIET I IT OG INFORMASJONSSYSTEMER BACHELORSTUDIET I IT OG
DetaljerTa inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man
Eksempel med to-dimensjonal array Filbehandling Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 6 Vi skal lage et program som illustrerer
DetaljerEn liten rekap. Spørrespråk. I dag SELECT
[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 06/11-15 Databaser høsten 2015 En liten rekap ER-diagram - vi modellerer dataene våre til danne best mulig grunnlag for informasjonen
DetaljerHva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }
Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =
DetaljerINF 4130. 8. oktober 2009. Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet
INF 4130 8. oktober 2009 Stein Krogdahl Dagens tema: Uavgjørbarhet Dette har blitt framstilt litt annerledes tidligere år Se Dinos forelesninger fra i fjor. I år: Vi tenker mer i programmer enn i Turing-maskiner
Detaljer< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»
< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar
DetaljerUNIVERSITETET 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
DetaljerObjektorientert programmering i Python
Objektorientert programmering i Python IN1000 Høst 2019 uke 8 Siri Moe Jensen Læringsmål uke 8 Repetisjon fra forrige uke Definere en klasse, opprette og arbeide med objekter: How-to
DetaljerObject 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
DetaljerInformasjon Eksamen i IN1000 høsten 2017
Informasjon Eksamen i IN000 høsten 207 Tid 8. desember kl. 09.00 (4 timer) Faglærerne vil besøke lokalet ca kl 0. Oppgavene Oppgave 2b og 2c er flervalgsoppgaver. Her får man det angitte antall poeng om
DetaljerAlgoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1
Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting
DetaljerINF109 - Uke 1b 20.01.2016
INF109 - Uke 1b 20.01.2016 1 Variabler Et program er ikke til stor hjelp hvis det er statisk. Statisk betyr at programmet bare bearbeider faste data som er lagt inn i programkoden. For å gjøre programmer
DetaljerBrukerveiledning Windows Movie Maker
Brukerveiledning Windows Movie Maker Dette er en enkel veiledning i hvordan man kan bruke Windows Movie Maker.Det er et program som følger med Windows XP, og som er veldig enkelt å bruke. Det egner seg
DetaljerOversikt. INF1000 Uke 6. Objekter, pekere og null. Lese og skrive fra/til fil. Litt om objekter, pekere og null Filer og easyio. Litt mer om tekster
Oversikt INF1000 Uke 6 Litt om objekter, pekere og null Filer og easyio. Litt mer om tekster Litt om objekter, filer med easyio, tekst Arne Maus 1 2 Objekter, pekere og null Vi lager pekere og objekter
DetaljerNorsk informatikkolympiade 2014 2015 1. runde. Sponset av. Uke 46, 2014
Norsk informatikkolympiade 014 015 1. runde Sponset av Uke 46, 014 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerGjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7
Gjennomgang prøveeksamen 2014 oppgave 1, 2, 4, 5, 7 1a: Hva er verdien til tall etter at følgende kode er utført: 17 int tall = 5; tall = (tall*3) + 2; 5 15 17 1b: Anta at følgende programsetninger utføres.
DetaljerFlagg Erfaren Scratch Lærerveiledning
Flagg Erfaren Scratch Lærerveiledning Introduksjon I denne oppgaven vil vi se litt nærmere på hvordan vi kan lage spennende mønstre og animasjoner ved hjelp av litt matematikk. Spesielt skal vi tegne et
Detaljer</html> </head> <form action= rtkst.php > <p> Fornavn? <input type= text name= fornavn <input type= submit />
2.3. Variabler og forms Eksempel 2.K: Et tekstelementet gir verdi til en PHP-variabel. Nedenfor: form-sidens kode med nettleserbilde. Motstående side: målprogramet med nettleserbilde av kjøringen (URLen
DetaljerForelesning inf Java 5
Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen
DetaljerInnhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java
INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:
DetaljerYouTube-kanal ITGK. Læringsmål og pensum
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen
DetaljerUNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet er på
DetaljerForelesning inf Java 5
Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program
DetaljerINF1000: Forelesning 7. Konstruktører Static
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter
DetaljerObligatorisk oppgave 4: Lege/Resept
Obligatorisk oppgave 4: Lege/Resept INF1010 Frist: mandag 27. mars 2017 kl. 12:00 Versjon 1.0 (111c894 ) Innhold 1 Innledning 1 1.1 Begreper................................ 2 2 Pasienter 2 3 Leger og lister
DetaljerKontinuasjonseksamen
Høgskolen i Gjøvik Kontinuasjonseksamen FAGNAVN: FAGNUMMER: Grunnleggende datakunnskap, programmering og datastrukturer L 176 A EKSAMENSDATO: 5. januar 1999 KLASSE: 97HINDA / 97HINDB / 97HDMUA TID: 09.00-14.00
Detaljer2 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
DetaljerKapittel 7: Mer om arv
Kapittel 7: Mer om arv 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 Cappelen Akademisk Forlag,
DetaljerØvingsforelesning TDT4105
Øvingsforelesning TDT4105 Gjennomgang øving 9, intro øving 10. Eksamensoppgaver. Benjamin A. Bjørnseth 10. november 2015 2 Oversikt Praktisk Gjennomgang øving 9 Introduksjon sudoku Oppgave 4 Kont-eksamen
DetaljerInnhold uke 9. Objektorientert programmering i Python. Om ukens pensum. Referanser og objekter Tema: Mer komplekse strukturer
Objektorientert programmering i Python IN1000 Høst 2017 uke 9 Siri Moe Jensen Innhold uke 9 Tema: Mer komplekse strukturer Referanser versus objekter Referanser mellom objekter Lister av objekter inkl
DetaljerUNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 101 - Grunnkurs i objektorientert programmering Eksamensdag : Tirsdag 4. juni 2002 Tid for eksamen : 09.00-15.00 Oppgavesettet
DetaljerHjemmearbeid matematikk eksamensklassen Ark 23 Leveres mandag 27. januar 2014 3 (10 (-4) 9 + 1) = 3 (10 + 36 + 1) = 3 47 = -44
Hjemmearbeid matematikk eksamensklassen Ark 23 Leveres mandag 27. januar 2014 Løsningsforslag Oppgave 1. Regn ut. a) 8 + 3 (2 6) + 16 : 2 = 8 + 3 (-4) + 8 = 8 12 + 8 = 4 b) + - = 4 + 5 10 = -1 c) 5 + 5
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner. - 3rd edition: Kapittel Professor Alf Inge Wang
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen
DetaljerEksamen. Objektorientert Programmering IGR 1372
+ JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV
DetaljerKlasser, objekter, pekere og UML. INF1000 - gruppe 13
Klasser, objekter, pekere og UML INF1000 - gruppe 13 Klasse Beskriver ofte ting fra den virkelige verden Veldig ofte et substantiv (Person, Bok, Bil osv.) class Person { String navn; int alder; } class
DetaljerEtter 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)
DetaljerStraffespark 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
Detaljerwhile-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke
while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 01/09-17 En liten repetisjon Løkker Arrayer
DetaljerINF1000: Forelesning 7
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerUNIVERSITETET I OSLO
Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Fredag 4. desember 2015 Tid for eksamen: 14.30 (4 timer)
Detaljer