Lær Python - Dag 4, modul 2 Objektorienteret programmering
|
|
- Margrethe Klausen
- 6 år siden
- Visninger:
Transkript
1 Lær Python - Dag 4, modul 2 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi
2 Metoder
3 Metoder Indtil videre har vi kun brugt objekter til at gemme værdier. Men det kunne vi jo bare gøre med f.eks. et dictionary? def lav_tid(t, m, s): return {"timer": t, "minutter": m, "sekunder": s} t = lav_tid(4, 43, 5) 1
4 Metoder Ofte bruges en funktion kun til én type værdi. F.eks. print_tid fra tidligere: def print_tid(t): fmt = "{}:{:02}:{:02}" print(fmt.format(t.timer, t.minutter, t.sekunder)) Giver fejl vi kalder med andet end Tid-objekt: >>> print_tid(tid(2,53,7)) 2:53:07 >>> print(123) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in print_tid AttributeError: 'int' object hast no attribute 'timer' 2
5 Metoder Vi kan i stedet lave en print-metode på Tid-klassen. Vi flytter ansvaret for at printe til selve objektet. class Tid: def init (self, t, m, s): self.t = t self.m = m self.s = s def print(self): fmt = "{}:{:02}:{:02}" print(fmt.format(self.t, self.m, self.s)) 1. Bemærk vi altid skal have self som første argument! 2. En metode må ikke hedde det samme som en attribut! 3
6 Metoder Metoder kan også ændre på objektet. class Tid:... def vent(self, sekunder): self.s += sekunder self.m += self.s // 60 self.s = self.s % 60 self.t += self.m // 60 self.m = self.m % 60 4
7 Metoder Kan lægge s sekunder til et Tid-objekt ved at kalde Tid.vent(<s>): >>> t = Tid(6, 43, 23) >>> t.print() 6:43:23 >>> t.vent(53) >>> t.print() 6:44:16 >>> t.vent(634) >>> t.print() 6:54:50 5
8 Metoder Når vi gerne vil printet et Tid-objekt, kan vi kalde Tid.print() >>> t = Tid(7, 43, 12) >>> t.print() 7:43:12 Nu kan vi ikke længere komme til at kalde funktionen med en forkert værdi! 6
9 Særlige metoder Python definerer en række særlige funktioner, som kan bruges til at gøre programmere lettere at læse/skrive. Hvad sker rent faktisk når vi kalder print(...)? For tal og tekststrenge er det simpelt: Print tallet eller strengen. Hvad hvis vi printer et Tid-objekt? >>> t = Tid(12,34,5) >>> print(t) < main.tid object at 0x7fee8e1abcf8> 7
10 Metoder I stedet for at lave en print_tid-funktion, kan vi implementere en særlig repr -metode: class Tid: def init (self, t, m, s): self.t = t self.m = m self.s = s def repr (self): fmt = "{}:{:02}:{:02}" return fmt.format(self.t, self.m, self.s) >>> print(tid(12, 34, 56)) 12:34:56 Bemærk: repr skal returnere en str! 8
11 Operator overloading Vi lavede tidligere en funktion sum_tid til at lægge to Tid-objekter sammen. Hvad sker der hvis vi bare bruger +-operatoren? >>> t1 = Tid(12, 34, 56) >>> t2 = Tid(34, 5, 12) >>> t1 + t2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: 'Tid' and 'Tid' Python forstår ikke hvad det vil sige at lægge to Tid sammen. 9
12 Operator overloading Vi kan fortælle Python hvad der skal ske, ved at implementere add -metoden. class Tid:... def add (self, o): t = self.t + o.t m = self.m + o.m s = self.s + o.s m += s // 60; s = s % 60 t += m // 60; m = m % 60 return Tid(t, m, s) Argumenterne self og o er Tid-objekterne på venstre og højre side af +. Funktionen skal returnere et nyt Tid-objekt. 10
13 Operator overloading Test af add : >>> t1 = Tid(6, 43, 23) >>> t2 = Tid(1, 12, 56) >>> t3 = t1 + t2 >>> print(t3) 7:56:19 Det virker dog ikke med andre typer: >>> t1 = Tid(6, 43, 23) >>> t2 = t t += o.t AttributeError: 'int' object has no attribute 't' 11
14 Operator overloading Dette kaldes operator overloading. Det er muligt at overloade alle operatorerne i Python. Brug med omtanke! add, sub, mul, div,... Oversigt: 12
15 Operator overloading Vi kan udvidde metoden til at håndtere typer forskelligt: class Tid: def add (self, o): t = self.t m = self.m s = self.s if type(o) == int: s += o elif type(o) == Tid: t += o.t m += o.m s += o.s else: raise TypeError("Ups!") m += s // 60; s = s % 60 t += m // 60; m = m % 60 return Tid(t, m, s) 13
16 Nedarvning
17 Nedarvning I OOP har vi ofte brug for at modellere et er-et -forhold. En bil og en cykel er begge køretøjer. Hund og kat er dyr. Firkant og cirkel er former. De har ting til fælles: En cykel og en bil kan bege køre, de har hjul (men ikke samme antal), osv. Men også forskelle: En bil kan dytte, en cykel kan ikke. 14
18 Nedarvning Lad os starte med at definere en klasse Køretøj. class Køretøj: def kør(self, destination): print("kører til " + destination + "!") Vi bestemmer at alle køretøjer skal have en metode kør, der kører til en destination. Yderligere vil vi gerne have disse to metoder: antalsæder(): Returnerer antallet af sæder i køretøjet. tilføjbagage(<bagage>): Tilføjer et stykke bagage til køretøjet. 15
19 Nedarvning Vi kan derefter definere Cykel-klassen. Vi indikerer at Cykel nedarver fra Køretøj ved at skrive superklassen i parentes: class Cykel(Køretøj): class Cykel(Køretøj): def init (self): self.bagage = None def antalsæder(self): return 2 def tilføjbagage(self, b): if self.bagage!= None: raise RuntimeError("Bagagebærer fuldt.") self.bagage = b 16
20 Nedarvning En bil har i stedet fem sæder, og kan have op til 10 ting i bagagerummet. En bil kan også dytte med dyt-metoden. class Bil(Køretøj): def init (self): self.bagage = [] def antalsæder(self): return 5 def tilføjbagage(self, b): if len(self.bagage) >= 10: raise RuntimeError("Bagagerum fuldt.") self.bagage.append(b) def dyr(self): print("dyt dyt!") 17
21 Nedarvning Cykler og biler kan begge køre: >>> b = Bil() >>> c = Cykel() >>> b.kør("københavn") Kører til København >>> c.kør("århus") Kører til Århus Og give os antallet af sæder: >>> print(b.antalsæder(), c.antalsæder()) 5 2 Men kun bilen kan dytte: >>> b.dyt() Dyt dyt! >>> c.dyt() AttributeError: 'Cykel' object has no attribute 'dyt' 18
22 Nedarvning I klassediagrammer tegnes nedarvning ofte således: 19
23 Polymorfi En funktion kan virke få flere slags objekter af forskellig type, hvis bare de implementerer de samme funktioner. Antag alle underklasser af Køretøj implementerer en metode bagagefuldt() der returnerer True hvis der er plads til mere bagage og False hvis ikke. Så vil denne funktion virke på alle køretøjer, selvom de håndterer bagage forskelligt: def fyld_med_fisk(køretøj): while not køretøj.bagagefuldt(): køretøj.tilføjbagage("fisk") Dette er et eksempel på polymorfi. 20
24 Polymorfi Denne funktion virker også med både strenge, lister og dictionaries, selvom de er forskellige typer: def længst(a, b): if len(a) > len(b): print(a, "er længst.") elif len(b) > len(a): print(b, "er længst.") else: print("der er lige lange.") >>> længst("lær", "Python") Python er længst. >>> længst([1,2,3], [4,5]) [1, 2, 3] er længst. Det virker, fordi de alle implementerer len -metoden. 21
25 Webshop eksempel Lad os prøve at bruge det vi har lært til at modellere en simpel webshop med følgende klasser: Webshop: Selve butikken med varer. Skal kunne søge efter varer. Vare: En vare. Skal have navn, pris, evt. rabat (%). Indkøbskurv: Skal indeholde kundens varer. Skal kunne tilføje rabatkupon for rabat. Rabatkupon: Skal repræsentere en rabatkupon (x kr. rabat). Webshop og Indkøbskurv skal nedarve fra samme superklasse VareListe. 22
Lær Python - Dag 4, modul 1 Objektorienteret programmering
Lær Python - Dag 4, modul 1 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Objektorienteret programmering Hvad er objektorienteret programmering? Vi
Læs mereKlasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22.
Klasser og Objekter i Python Uge 46 Learning Python: kap 15-16, 19-22. Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. En kage form Klassens
Læs mereLær Python dag 1 - modul 1
Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen
Læs mereKlasser og Objekter i Python. Uge 11
Klasser og Objekter i Python Uge 11 Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. Klassens objekter er instanser af klassen. En programudførelse
Læs mereLær Python - Dag 3, modul 1 Læse og skrive filer
Lær Python - Dag 3, modul 1 Læse og skrive filer Simon J. Larsen 15. oktober 2017 Institut for Matematik og Datalogi Læse og skrive filer Persistens Vi har ofte brug for at gemme data på disken som ikke
Læs mereIt og informationssøgning Forelæsning december 2006 Jakob Grue Simonsen. Diverse emner af almen interesse
It og informationssøgning Forelæsning 12 6. december 2006 Jakob Grue Simonsen Diverse emner af almen interesse 1 Gemme objekter til filer I python skal en fil på disken åbnes, før man kan læse eller skrive
Læs mereIt og informationssøgning Forelæsning 5 4. oktober 2006 Nils Andersen. Tilfældige tal. Statistisk test. Sæt og associationslister.
It og informationssøgning Forelæsning 5 4. oktober 2006 Nils Andersen Tilfældige tal. Statistisk test. Sæt og associationslister. Tilfældige tal Statistik Sæt Associationslister Downey, Elkner & Meyers:
Læs merePython programmering. Per Tøfting. MacFest
Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer
Læs mereIt og informationssøgning Forelæsning oktober 2006 Jakob Grue Simonsen. Klasser
It og informationssøgning Forelæsning 7 25. oktober 2006 Jakob Grue Simonsen Klasser Downey, Elkner & Meyers: Chapt. 12-14 Andersen & Simonsen: kap. 7 Vi har tidligere set, at Python tilbyder en række
Læs mereAarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00
Page 1/12 Aarhus Universitet, Science and Technology, Computer Science Exam Wednesday 27 June 2018, 9:00-11:00 Allowed aid: None The exam questions are answered on the problem statement that is handed
Læs mereAarhus Universitet, Science and Technology, Computer Science. Mock Exam. Wednesday 27 June 2018, 9:00-11:00
Page 1/15 Aarhus Universitet, Science and Technology, Computer Science Mock Exam Wednesday 27 June 2018, 9:00-11:00 Allowed aid: None The exam questions are answered on the problem statement that is handed
Læs mereIt og informationssøgning Forelæsning 7 1. november 2006 Jakob Grue Simonsen. Indlejring og Nedarvning
It og informationssøgning Forelæsning 7 1. november 2006 Jakob Grue Simonsen Indlejring og Nedarvning Downey, Elkner & Meyers: Chapt. 15-16 Andersen & Simonsen: kap. 8 Vi har tidligere set løkker af forskellig
Læs mereØvelse 9. Klasser, objekter og sql-tabeller insert code here
Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereIntroduktion Til Konkurrenceprogrammering
Introduktion Til Konkurrenceprogrammering Søren Dahlgaard og Mathias Bæk Tejs Knudsen {soerend,knudsen}@di.ku.dk Version 0.1 Indhold Indhold i Introduktion 1 1 Palindromer 3 1.1 Introduktion til Python...............
Læs merePython 3 kursus lektion 1:
Python 3 kursus lektion 1: Her laves et nyt program Her køre programmet! Her skrives koden: Gem (CTRL-s) Tryk F5 (for at køre) www.madsmatik.dk d.14-01-2016 1/5 At skrive til skærmen: Hello World Man kan
Læs mereclass subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.
Programmering 1999 Forelæsning 11, tirsdag 5. oktober 1999 Oversigt Klasse-hierarkier: superklasser og subklasser Nedarvning Polymorfi Programmering 1999 KVL Side 11-1 Hierarkier En klasse repræsenterer
Læs mereOm binære søgetræer i Java
Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Sommer 1999 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 15% Opgave 2 15% Opgave 3 8% Opgave
Læs mereEnigma. Et programmeringssprog. Forfatter: Niels Serup X. Y Vejleder: A B C. Fag: Programmering Uddannelsessted: N M
Enigma Et programmeringssprog Forfatter: Niels Serup X. Y Vejleder: A B C Fag: Programmering Uddannelsessted: N M 25. maj 2010 Indholdsfortegnelse Indledning 3 Sproget 3 Syntax.............................................
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mereDDD Runde 2, 2015 Facitliste
DDD Runde 2, 2015 Facitliste Søren Dahlgaard og Mathias Bæk Tejs Knudsen Opgaver og løsninger til 2. runde af DDD 2015. 1 4. 19. februar, 2015 linetest DK v1.0 Line Test Sigurd er begyndt i gymnasiet og
Læs mereIntroduktion til programmering. Uge 38.1 Python 2 Learning Python, kap 8-12.
Introduktion til programmering Uge 38.1 Python 2 Learning Python, kap 8-12. Opsummering Store dele af Python kan forstås gennem følgende simple model: En repræsentation/udtryk står for et objekt/en værdi
Læs mereIntroduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling
Læs mereProgrammeringscamp. Implementer funktionerne én for én og test hele tiden.
Programmeringscamp De to opgaver træner begge i at lave moduler som tilbyder services der kan bruges af andre, samt i at implementere services efter en abstrakt forskrift. Opgave 1 beder jer om at implementere
Læs mereAnalyse, problemområde, anvendelsesområde
OOA&D, kap. 1-5 Fiktiv case Det supermarked I dagligt handler i, skal have et integreret kasse-, lagerstyrings- og EDI-system. Systemet skal gøre det muligt at sænke varebeholdningen uden at der kommer
Læs mereMETODER ARV KLASSER. Grundlæggende programmering Lektion 5
METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen
Læs mereKapitel 3 Betinget logik i C#
Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret
Læs mereKursus i OOP og Java. Kursus i Objektorienteret programmering i Java
Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger
Læs mereProgrammeringscamp Opbygning og specialisering af klassehierarki. Simulering af en kasselinje
Programmeringscamp Opgave 9 var helt tydeligt for svær det var imponerende at 7 faktisk afleverede! Vi bruger uge 48 til at gå lidt grundigere igennem objektorienteret programmering, specielt teknikken
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereIntroduktion til programmering. UML, Uge 45 Computer science, kap 7, særl. 7.4 og 7.5. Martin Fowler: UML distilled, kap. 3. Addision-Wesley, 2004.
Introduktion til programmering UML, Uge 45 Computer science, kap 7, særl. 7.4 og 7.5. Martin Fowler: UML distilled, kap. 3. Addision-Wesley, 2004. Diagrammer Diagrammer er visuelle fremstillinger af beskrivelser
Læs mereUdvikling af DOTNET applikationer til MicroStation i C#
Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt
Læs mereKursusarbejde 2 Grundlæggende Programmering
Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................
Læs mereComputerspil til læring RTG. Kl. 3.4 IT - B. Fra 16-11-2015-09-12-2015. Joachim Skou Goodman Nielsen, Markus Duus Kristensen og Mikkel Jensen
Computerspil til læring RTG Kl. 3.4 IT - B Fra 16-11-2015-09-12-2015 Joachim Skou Goodman Nielsen, Markus Duus Kristensen og Mikkel Jensen Contents 1.0 Indledning... 3 2.0 Krav... 3 2.1 Krav for program...
Læs mereProgrammering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen
Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave
Læs mereSWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Læs mereExceptions i Delphi. Try except
Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,
Læs mereBit:Bot Flere opgaver!
Bit:Bot Flere opgaver! INDLEDNING Her er yderligere 10 opgaver, som jeg har samlet og oversat. Programmerne er hentet fra Firmaet 4tronics hjemmeside: http://4tronix.co.uk/blog/?p=1490 og fra Mark Atkinsons
Læs mereIntroduktion til programmering. Uge 39 Python I Learning Python, kap 4-7.
Introduktion til programmering Uge 39 Python I Learning Python, kap 4-7. Plan Hvad er et Python program Udtryk Værdier og Datatyper Øvelse Lister og dictionarys Stand-up programmering Filer Øvelse Fortolkning/compilering
Læs mereIde med Diff. Mål. Tidsplan. 1.uge: 2.uge:
Side 1 af 5 Ide med Diff. Min ide med differenertierings modulet er at lave et program som kan vise 3d objekter, og få lavede en konverter som kan konventer 3ds filer over til noget som flash kan bruge.
Læs mereLøsning af møntproblemet
Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet
Læs mereIt og informationssøgning Forelæsning 1 6. september 2006 Nils Andersen. Beregning på computer
It og informationssøgning Forelæsning 1 6. september 2006 Nils Andersen Beregning på computer Begrebet data Universel computer Højere programmeringssprog Python Dialogdrift Fejl (syntaksf., udførelsesf.,
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereProgrammering for begyndere Lektion 2. Opsamling mm
Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger
Læs mere2) Det er let at være produktiv med Python, da Python som regel kun har mellem 67 og 80% færre linier end tilsvarende C eller Java kode.
Denne guide er oprindeligt udgivet på Eksperten.dk I gang med Python I denne artikel vil jeg forsøge at give et kort og hurtigt indblik i programmeringssproget Python, der desværre er alt for overset.
Læs mereAftenskole i programmering sæson Core Data del 2. Sæson 2-13
Core Data del 2 Sæson 2-13 Sidste uge I sidste uge lavede vi en ny simpel app til brug for at lære Core Data Vi brugte kun elementer i har lært så i burde kunne lave den selv og skulle også helst lave
Læs mereKursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Læs mereIt og informationssøgning Forelæsning november 2006 Nils Andersen. Regulære udtryk og formelle sprog
It og informationssøgning Forelæsning 11 22. november 2006 Nils Andersen Regulære udtryk og formelle sprog Regulært udtryk Forening, sammenstilling og Kleene-gentagelse Andre notationer og operatorer Modulet
Læs mereJeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.
Indhold Beregn rødder... 2 Beskrivelse af kærneproblemet... 2 Plan for brugerfladen for programmet... 3 Operationer på inddata... 4 Output - Beskrivelse af uddata... 4 Flowchart - programmets logiske opbygning/struktur...
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereTest af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Læs merePython 3 Matematik Programmerings kursus:
Python 3 Matematik Programmerings kursus: Kompendiet indeholder: Hello World (første program) Variable (String & Integer) Løkker (while-loop) Regneoperationer If-else statement Funktioner Opgaver o Læg
Læs mereComputer Science Camp
Computer Science Camp Uge 29, 2015 Ungdommens Naturvidenskabelige Forening Det faglige team Søren Dahlgaard (koordinator) Mathias Bæk Tejs Knudsen (koordinator) Kasper Fabæch Brandt Davy Leth Eskildsen
Læs mereLektion 3. Grundlæggende programmering i VR
Lektion 3 Grundlæggende programmering i VR Plan for i dag UML Usecase diagrammer Aktivitets diagrammer Klasse diagrammer Udforskning af forskelligt VR og andre måder at udvide virkeligheden på Cardboard
Læs mereProgrammering og Problemløsning, 2017
Programmering og Problemløsning, 2017 Rekursion Towers of Hanoi og Liniegrafik Martin Elsman Datalogisk Institut Københavns Universitet DIKU 13. Oktober, 2017 Martin Elsman (DIKU) Programmering og Problemløsning,
Læs mereIt og informationssøgning Forelæsning oktober 2006 Nils Andersen
It og informationssøgning Forelæsning 6 11. oktober 2006 Nils Andersen Formatstyret udskrivning. Undtagelser. Løkkestyring med break og continue. Tekstfiler. Højereordensfunktioner. Formattekster og %-operatoren
Læs mereSom sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste
Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning
Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:
Læs mereJavaScript. nedarvning.
JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man
Læs mereTree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Læs mereListen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereIt og informationssøgning Forelæsning september 2006 Nils Andersen. Gentagelser og tekster
It og informationssøgning Forelæsning 3 20. september 2006 Nils Andersen Gentagelser og tekster Dokumentationstekster Iteration (gentagelse) - med while - med for En- og todimensionale tabeller Typen af
Læs mereIntroduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Læs mereObjekt-orienteret programmering uden klasser: Self.
Objekt-orienteret programmering uden klasser: Self. Sammenligning klasse-baseret og klasseløs programstrukturering. Basale forhold Singulære objekter Dynamisk nedarvning Variable i forhold til metoder.
Læs mereI Excel kan du hurtigt lave din egen gangetabel eller tælletavle til at printe ud, hvis du laver den rigtige opsætning.
Mattip om Regneark 1 (Multiplikation) Du skal lære om: Tabeller i Excel Kan ikke Kan næsten Kan Hvordan et kasseapparat laves Hvordan en funktion laves Forskellige genveje Målsøgning til at finde et resultat
Læs mereDatabase for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Læs mereEt udtryk er (som bekendt?) lineært hvis den differentierede er en konstant funktion, dvs. at den ikke afhænger af x. Betragt f lgende værdiprocedurer
Opgave 1 (25%) Simple udtryk med +, - og * over heltal og en enkelt variabel x kan repræsenteres som værdier af f lgende type: Type Expression = Sum(const: Int, x: Unit, plus, minus, times: Arguments)
Læs mereObjektorienteret design med arv og polymorfi:
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Objektorienteret design med arv og polymorfi: Substitutionsprincippet Composite Design Pattern Finn Nordbjerg Side 1 Objektorienteret
Læs mereIntroduktion til programmering. Uge 37 Python I Learning Python, kap 4-7.
Introduktion til programmering Uge 37 Python I Learning Python, kap 4-7. Plan Sidste gang Hvad er et Python program Udtryk Værdier og Datatyper Filer Første obligatoriske øvelse Sidste gang Computerens
Læs mereMiniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.
Miniprojekt2011 Projektbeskrivelse Der skal fremstilles en lille java application på PC, hvor brugeren kan foretage interaktioner med en simpel database på disken via et grafisk brugerinterface. Formålet
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur blandt mange mulige. Dynamisk programmering Optimeringsproblem: man ønsker at finde
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mereCasper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails
Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med
Læs mereForelæsning Uge 6 Mandag
Forelæsning Uge 6 Mandag Tingene i denne forelæsning er ikke eksamenspensum Forelæsningen afrunder kurset, og forklarer nogle af de begreber, som I har mødt under kurset uden at få detaljeret forklaring
Læs mereUML til kravspecificering
UML til kravspecificering UML mini-kompendium - til brug i forbindelse med modellering af kravspecifikationer. Copyright 2006 Teknologisk Institut, IT-Udvikling Aktivitetsdiagram 2/9 Aktion Aktionsnavn
Læs mereHent filoplysninger fra billeder og filer
Hent filoplysninger fra billeder og filer I denne vejledning bliver det gennemgået, hvordan man via Power Forespørgsel kan hente filoplysninger fra en mappe ind i Excel. Der skal opbygges følgende elementer:
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereProgrammering og Problemløsning, 2017
Programmering og Problemløsning, 2017 Martin Elsman Department of Computer Science University of Copenhagen DIKU September 27, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September
Læs mereCivilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104
Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Onsdag den 11. august 2004, kl.
Læs mereSoftware Construction 1. semester (SWC) januar 2014 Spørgsmål 1
Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),
Læs mereOver Forelæsning omponenter ogrammering sigt 14, 1999 freda containere 15. oktober 1999 Eksempel: out GUI til beregning fakultet.
Programmering 1999 Forelæsning 14, fredag 15. oktober 1999 Oversigt Repetition: GUI komponenter og containere. Layout af grafiske brugergrænseflader i Java. Større layout-opgave. Programmering 1999 KVL
Læs mereKlasser og nedarvning
Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereForelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:
Læs mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer
Læs mereAt klippe en streng over på det mest hensigtsmæssige sted
Denne guide er oprindeligt udgivet på Eksperten.dk At klippe en streng over på det mest hensigtsmæssige sted Formålet med denne artikel er at kaste lidt lys over, hvordan man klipper en streng over på
Læs mereVideregående Programmering for Diplom-E Noter
Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså
Læs mereIT og Programmering eksamens projekt
IT og Programmering eksamens projekt Visualisering af Gravitation Roskilde HTX Anders Kær Bennetsen D. 20-05-2010 IT og Programmering 1.1 Indledning:... 4 1.2 Beskrivelse af Ide:... 4 1.3 Definition af
Læs mereLæringsprogram. Numeriske metoder. Matematik A Programmering C Studieområdet. Roskilde Tekniske Gymnasium Klasse 3.4
Læringsprogram Numeriske metoder Matematik A Programmering C Studieområdet Roskilde Tekniske Gymnasium Klasse 3.4 Lau Lund Leadbetter Mikkel Karoli Johnsen Tobias Sønderskov Hansen Lineær regression ved
Læs mereKommentarer til opgave 4-6
Kommentarer til opgave 4-6 Opgaverne er stort set OK. De viser at tankegangen er rigtig. Nogle programmer virker ikke, men kræver blot en enkelt rettelse. De bliver godkendt, men I bør selv altså gøre
Læs mereJava Programmering. En bog for begyndere. Skrevet af Henrik Kressner
Java Programmering En bog for begyndere Skrevet af Henrik Kressner Indholdsfortegnelse Introduktion...3 1 Introduktion til Java...4 1.1 Javakoden...4 1.2 Det første program...6 1.2 Skriv til skærmen...6
Læs mereBRP Tal. Om computer-repræsentation og -manipulation. Logaritmer
BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave
Læs mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:
Læs mere