It og informationssøgning Forelæsning oktober 2006 Jakob Grue Simonsen. Klasser
|
|
- Jonathan Davidsen
- 6 år siden
- Visninger:
Transkript
1 It og informationssøgning Forelæsning oktober 2006 Jakob Grue Simonsen Klasser Downey, Elkner & Meyers: Chapt Andersen & Simonsen: kap. 7 Vi har tidligere set, at Python tilbyder en række indbyggede typer (heltal, tal med flydende komma, tekster, lister etc.). Python tilbyder programmøren at definere sine egne typer, specielt sammensatte typer. Fordel: Alle operationer, der naturligt hører til en type kan samles på et sted (i programteksten). De strukturer, der således kan defineres kaldes klasser ; et element i en klasse kaldes et objekt (el. en instans af klassen). 1
2 Klassedefinitioner Vi benytter lærebogens eksempel om punkter i planen (tænk GPS-koordinater el. Kraks kort). En klassedefinition kunne se således ud: class Point: pass Altså: Det reserverede ord class efterfulgt af et navn på klassen og en ikke-tom krop ( indholdet af klassen). I ovenstående er kroppen semantisk tom : Den må ikke være tom, så vi har blot tilføjet det reserverede ord pass, der intet gør. 2
3 En klasse instantieres ved at kalde en konstruktør (som er en funktion, der heldigvis har samme navn som klassen selv): >>> tom = Point() >>> tom1 = Point() tom og tom1 er nu (forskellige!) objekter af klassen Point (bemærk nedenfor, at Pythons interne adresserepræsentationer for de to objekter er forskellige) >>> tom < main.point instance at 0xb7c5258c> >>> tom1 < main.point instance at 0xb7c523cc> Yderligere information attributter kan indeholdes i et objekt ved brug af punktum: >>> tom.x = 3.0 >>> tom.y = 4.1 >>> tom.x 3.0 Bemærk i ovenstående, at denne information også tilgås ved brug af punktum. >>> print "(" + str(tom.x) + "," + str(tom.y) +")" (3.0,4.1) 3
4 Instanser af klasser som parametre Instanser (men ikke klasser selv) kan benyttes som parametre til funktioner i Python: def printpoint(p): print "(" + str(tom.x) + "," + str(tom.y) +")" Yderligere eksempel: >>> class Person:... fornavn = ""... efternavn = ""... >>> person1 = Person() >>> person1.fornavn = "Theophilus" >>> person1.efternavn = "Balubbenberg" >>> def efteraendr(tekst,person):... person.efternavn = tekst... >>> efteraendr("nielsen",person1) >>> person1.efternavn Nielsen 4
5 Yderligere eksempel: def find_i_efternavn(person,tegn): i = 0 leng = len(person.efternavn) while i < leng: if person.efternavn[i] == tegn: return i i = i+1 return -1 >>> print person1.efternavn Nielsen >>> find_i_efternavn(person1,"l") 3 >>> find_i_efternavn(person1,"k") -1 5
6 Instanser som returværdier Ligeledes kan instanser af en klasse være returværdier ( det, som funktioner giver tilbage ): def returner_person(efternavn): p = Person() p.fornavn = "Theophilus" p.efternavn = efternavn return p >>> returner_person("frege") < main.person instance at 0xb7c527ac> 6
7 Kopiering og aliasing Kom ihu, fra forelæsningen om lister, at fænomenet aliasing kan forekomme: >>> a = [1,2,3] >>> b = a >>> b[0] = 45 >>> print a [45, 2, 3] Samme fænomen forekommer med instanser af klasser; vi ønsker at undgå det ved metoder til at kopiere instanser. Til dette formål haves copy-modulet: >>> import copy >>> p1 = Point() >>> p1.x = 3.0 >>> p1.y = 4.1 >>> p2 = copy.copy(p1) >>> p1 == p2 False >>> print p2.x 3.0 >>> print p2.y 4.1 Bemærk, at der ikke forekommer aliasing i ovenstående! 7
8 Kopiering og aliasing (fortsat) Kopieringen på foregående transparent kaldes flad kopiering den virker glimrende, hvis instanserne ikke indeholder andre objekter (instanser af andre klasser). Men I kopiering af: class person_og_sted: pass p = person_og_sted() p.navn = "Theophilus" p.lokation = Point() p.lokation.x = 3.0 p.lokation.y = 4.1 Er det ikke tilstrækkeligt, idet den indlejrede instans af klassen Point ikke bliver kopieret ved kald af copy(p), så aliasing vil forekomme. Såkaldt dyb kopiering løser problemet ved at kopiere alle indeholde instanser (og kopiere deres indeholdte intanser, etc.) p2 = copy.deepcopy(p) 8
9 Rene og urene funktioner En funktion siges at være ren, hvis den ikke ændrer objekter, den får som parametre eller har såkaldte bivirkninger (ændringer i maskinens tilstand, som f.eks. lageropdatering eller udskrift til brugeren). Et eksempel er: def f(p): return p.x Et eksempel på en uren funktion er: def f(p,y): p.x = y print p.x En særlig type urene funktioner er de såkaldte modifikatorer, der ændrer de objekter, de får ind i ovenstående ændrede vi f.eks. p.x. Havde vi fjernet denne linje, havde vi stadig haft en uren funktion, men den havde ikke været en modifikator. 9
10 Metoder Vi har hidtil set, hvordan klasser (og instanser deraf) kan have attributter. Vi vil gerne lægge mere avancerede konstruktioner deri specielt vil vi gerne lægge funktioner ind. Funktioner, der hører til klasser kaldes metoder. Eksempel: class Person2: navn = "" def printnavn(self): print self.navn >>> p = Person2() >>> p.navn = "Theophilus" >>> p.printnavn() Theophilus Bemærk brugen af self dette reserverede ord henviser til instansen selv. I definitionen af metoden printnavn skal self medtages som argument thi i kaldet p.printnavn tages p automatisk selv med som parameter. 10
11 Valgfri parametre Flere af de indbyggede funktioner i Python har valgfri argumenter vi kan i et kald af en funktion udelade et eller flere argumenter. Vi kan selv tilsvarende definere funktioner med valgfri argumenter (hvilket skal vise sig nyttigt, når såkaldte initialiseringsmetoder skal defineres): Eksempel: Gennemløb af en liste ls for at finde element l: def findlist(ls,l,start=0): i = start while i < len(ls): if ls[i] == l: return i i = i + 1 return -1 >>> findlist([1,4,6],5) -1 >>> findlist([1,4,6],1) 0 >>> findlist([1,4,6],1,1) -1 11
12 Initialiseringsmetoder Vi har se, hvordan ny objekter (altså: instanser af klasser) skabes ved at kalde en funktion med samme navn som klassen. Imidlertid skaber dette en rå instans, der ikke nødvendigvis har den starttilstand, som vi gerne vil have. Vi ønsker en særegen metode til dette; Python stiller den til rådighed under navnet init. Eksempel: class Person: def init (self,fornavn="theophilus",efternavn="balubbenberg"): self.fornavn = fornavn self.efternavn = efternavn >>> p = Person("Gottlob","Frege") >>> p.fornavn Gottlob >>> p.efternavn Frege >>> p1 = Person(efternavn="Frege") >>> p1.fornavn Theophilus >>> p1.efternavn Frege >>> p2 = Person("Gottlob") >>> p2.fornavn Gottlob >>> p2.efternavn Balubbenberg Bemærk valgfriheden i antallet af parametre! 12
13 Overstyring En operator kaldes overstyret, dersom en (eller flere) af dens parametre tillader i forskellige kald at være af forskellige typer. >>> >>> >>> "Theophilus" + " " + "Balubbenberg" Theophilus Balubbenberg Dette kan udnyttes inden for klasser og objekter, idet vi f.eks. kan tillade indbyggede funktioner at have ny semantik, når de anvendes på instanser af klasser. Eksempel (moderat fjollet): class Person: def init (self,fornavn="theophilus",efternavn="balubbenberg"): self.fornavn = fornavn self.efternavn = efternavn def add (self,other): return Person(self.fornavn + " " + other.fornavn,self.efternavn + " " + other.efternavn) >>> p1 = Person("Theophilus","Balubbenberg") >>> p2 = Person("Jeronimus","III") >>> p3 = p1 + p2 >>> p3.fornavn Theophilus Jeronimus >>> p3.efternavn Balubbenberg III 13
14 Polymorfi En operator er, set i Python-perspektiv blot en funktion, som kaldes pudsigt (+ f.eks. kaldes som en såkaldt infix-funktion). Altså må også funktioner kunne overstyres sådanne funktioner kaldes polymorfe. Lærebogen giver et forbilledligt godt eksempel (som vi ændrer en smule): def frontandback(front): import copy back = copy.copy(front) back.reverse() return front + back >>> liste = [1,2,3,4] >>> s = frontandback(liste) >>> print s [1, 2, 3, 4, 4, 3, 2, 1] Udvid nu klassen Person med en ny metode: def reverse(self): self.fornavn, self.efternavn = self.efternavn, self.fornavn Hver operation i kroppen af frontandback ovenfor kan anvendes på lister hhv. på instanser af klassen Person. Vi kan derfor kalde funktionen frontandback på begge dele. >>> p2 = frontandback(p) >>> p2.fornavn Theophilus Balubbenberg >>> p2.efternavn Balubbenberg Theophilus 14
15 Tak for i dag Husk at se på opgaverne til på fredag! 15
It 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 mereLæ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 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 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 september 2006 Nils Andersen. Underprogrammer og betingelser. Standardfunktioner, typeomsætning
It og informationssøgning Forelæsning 2 13. september 2006 Nils Andersen Underprogrammer og betingelser Standardfunktioner, typeomsætning Funktionskald Moduler, lange navne Brugerdefinerede funktioner
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 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 mereIt og informationssøgning Forelæsning november 2006 Jakob Grue Simonsen. Hypertekst og Python. Andersen & Simonsen: kap. 12
It og informationssøgning Forelæsning 11 29. november 2006 Jakob Grue Simonsen Hypertekst og Python Andersen & Simonsen: kap. 12 I dag gennemgås materiale af uhyre praktisk (og kun i lidet omfang generel)
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 4, modul 2 Objektorienteret programmering
Lær Python - Dag 4, modul 2 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Metoder Metoder Indtil videre har vi kun brugt objekter til at gemme værdier.
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 mereSWC Elementer i klassedefinition
SWC Elementer i klassedefinition Indhold Eksempel... 2 Karakteristika for en klasse... 3 Karakteristika for et instance field... 4 Karakteristika for en constructor... 5 Karakteristika for en property...
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 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 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 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 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 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 mereUdvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Abstrakte klasser.
10 Nedarvning I. Udvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Dynamisk binding og virtuelle operationer. Decentraliseret/centraliseret
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereklient Webside Forespørgsel/ Nye data Python program Database kommando svar Database
Øvelse 10. Dynamiske web-sider og cgi-modulet I denne opgave skal vi bygge de foregående opgaver sammen til en mini-udgave af det samlede system I skal aflevere til vintereksamen. klient Forespørgsel/
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 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 mereUgeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Læs mereIt og informationssøgning Forelæsning december 2006 Nils Andersen. Indkøring, afprøvning og dokumentation af programmer
It og informationssøgning Forelæsning 14 13. december 2006 Nils Andersen Indkøring, afprøvning og dokumentation af programmer Indkøring Syntaksfejl Køretidsfejl Semantiske fejl Dokumentation Sammenfatning
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 mere3 Algebraisk Specifikation af Abstrakte Datatyper.
3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.
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 mereForelæsning Uge 2 Torsdag
Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug
Læs mereclass Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.
Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:
Læs mereKlasser og objekter. (Afsnit i manualen)
Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser
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 mereGrundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering
Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af
Læs mereRettelser til Pilen ved træets rod
Rettelser til Pilen ved træets rod Hans Hüttel Pr. 12. juni 2003 Nedenstående rettelser er indsamlet af mig selv, Peter Poulsen, Martin Maach og ikke mindst Lars Schunk i løbet af foråret 2003. Simple
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 mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
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 mere4 Basal Objekt-orienteret Programmering I.
4 Basal Objekt-orienteret Programmering I. Klasser i forhold til abstrakte datatyper og record-typer. Variable og operationer. Klasse-interfaces. Klasser og typer. Klasse-instantiering og initialisering.
Læs mereSproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract
Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget
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 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 Afleveringsopgaver
Læs mere2. Husk at give execute-tilladelser. I Filezilla højreklikker I på den overførte file, så vælger I fileattributes og sætter kryds i execute.
Øvelse 10. Dynamiske web-sider og cgi-modulet I denne opgave skal vi bygge de foregående opgaver sammen til en mini-udgave af det samlede system I skal aflevere til vintereksamen. I får udleveret et lille
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereModul 2.3 Adresse- og telefonlister Rapportnavn: Adresse og telefonliste Dato: 2004-03-27 Revision: A Side: 1 af 6
Vejdirektoratet DANBRO+ Rapporter Modul 2.3 Adresse- og telefonlister : Adresse og telefonliste Dato: 2004-03-27 Revision: A Side: 1 af 6 1. Indledning Dette notat beskriver indholdet af rapporten Adresse
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 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 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 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 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 mereForelæsning Uge 1 Torsdag
Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige
Læs mereNoter til C# Programmering Iteration
Noter til C# Programmering Iteration Programflow Programmer udfører det meste af deres arbejde vha. forgrening og løkker. Løkker Mange programmeringsproblemer kan løses ved at gentage en handling på de
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
Læs mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereForelæsning Uge 1 Torsdag
Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige
Læs mereRename og redefine. Abstrakte klasser. Dynamisk binding.
11 Nedarvning II. Enkeltnedarvning i Eiffel. Rename og redefine. Initialisering af superklasse-dele af et objekt. Interfaces til klienter og subklasser. Typesammenlignelighed og polymorfi. Abstrakte klasser.
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder
Læs mereProdukt Modellering & Load til Microsoft Dynamics NAV
Produkt Modellering & Load til Microsoft Dynamics NAV Send data fra et CAD-system, modellér de ønskede produktionsdata, og opret herefter stamdata automatisk i Dynamics NAV. Formål: Hovedformålet med PM&L
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 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 mereMartin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox
Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...
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 mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
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 mereProjekt - Visual Basic for Applications N på stribe
Projekt - Visual Basic for Applications N på stribe Mikkel Kaas og Troels Henriksen - 03x 3. november 2005 1 Introduktion Spillet tager udgangspunkt i det gamle kendte 4 på stribe, dog med den ændring,
Læs mere26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.
26 Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler. Hvad er programverifikation? Bevisregel for 'tom kommando'. Bevisregel for assignment. Bevisregler for selektive
Læs mereIndhold. Side 2 af 26
Tema Design Design, Programmering og test af Adressebog Fra d. 17 april til 20 april 2012 Vejledere: Gunhild Marie Andersen Kis Boisen Hansen Gruppe B Deltagere Side 1 af 26 Indhold Indledning.... 3 Kodestandard...
Læs mereSproget Rascal (v. 2)
Sproget Rascal (v. 2) Til brug i K1 på kurset Oversættere Opdateret 29/11 2004 Abstract Rascal er et simpelt Pascal-lignende imperativt sprog. Dette dokument beskriver uformelt Rascals syntaks og semantik
Læs mereOm begrebet relation
Om begrebet relation Henrik Stetkær 11. oktober 2005 Vi vil i denne note diskutere det matematiske begreb en relation, herunder specielt ækvivalensrelationer. 1 Det abstrakte begreb en relation Som ordet
Læs mereStudiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Opfølgning på Skildpadde
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 mereHjælp til MV-ID Administration
Hjælp til MV-ID Administration - til brugere af MV-Login Mikro Værkstedet A/S Dokumentversion: 20131002A 1 Indholdsfortegnelse Forord... 3 Kapitel 1. Aktivér MV-Login administratorkontoen... 4 Kapitel
Læs mereObjektorientering. Programkvalitet
1 PROSA-Bladet nr. 4 1993 Objektorientering = Programkvalitet? Af Finn Nordbjerg, adjunkt ved Datamatikeruddannelsen, Aalborg Handelskole 1. Indledning Objektorientering er blevet et edb-fagets mest udbredte
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 mereklient Webside Forespørgsel/ Nye data Python program Database kommando svar Database
Øvelse 12. Dynamiske web-sider og cgi-modulet Teori: CGI Øvelse: anvendelse af cgi-modulet. I denne opgave skal vi bygge de foregående opgaver sammen til en mini-udgave af det samlede system I skal aflevere
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 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 mereProgramming Language Design and Analysis motivated by Hardware Evolution
Programming Language Design and Analysis motivated by Hardware Evolution Alan Mycroft Presenter: Thomas Bøgholm September 24, 2007 Alan Mycroft Professor på Cambridge Universitet Cambridge Programming
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 Afleveringsopgaver
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 mereDATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Vejledende løsninger til
Læs mereUNI Login. UNI Login webservice. ws-04
UNI Login UNI Login webservice ws-04 UNI Login UNI Login webservice 1.4 Indhold 1 UNI Login webservice... 1 1.1 Informationsmodel... 1 1.2 Entiteter og attributter... 2 1.2.1 Person... 2 1.2.2 Funktion...
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 mereParametrisering af en firkant i
Parametrisering af en firkant i Givet de 4 punkter, som udspænder en firkant LABCD: Parametriseringen af den rette linje mellem A og B: hvor. Parametriseringen af den rette linje mellem D og C: hvor. Nu
Læs mereDM517:Supplerende noter om uafgørlighedsbeviser:
DM517:Supplerende noter om uafgørlighedsbeviser: Jørgen Bang-Jensen October 9, 2013 Abstract Formålet med denne note er at give en form for kogebogsopskrift på, hvorledes man bygger et uafgørlighedsbevis
Læs mereLRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);
Læs mereForelæsning Uge 12 Torsdag
Forelæsning Uge 12 Torsdag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse
Læs mereForelæsning Uge 2 Torsdag
Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet
Læs mereArbejsskadeAnmeldelse
ArbejsskadeAnmeldelse OpretAnmeldelse 001 All Klassifikations: KlassifikationKode is an unknown value in the current Klassifikation 002 All Klassifikations: KlassifikationKode does not correspond to KlassifikationTekst
Læs mereForelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Objekters tilstand og opførsel BlueJ og Greenfoot Java Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Forskellige slags variabler Afleveringsopgave:
Læs mereÅrsagen til fejl. Erkendelse af fejl. Håndtering af fejl.
9 Fejlhåndtering Årsagen til fejl Erkelse af fejl Håndtering af fejl Fejlerkelse og -håndtering i objekt-orienterede sprog Fejlerkelse og -håndtering i Eiffel Udbredelse af fejl i Eiffel Nuanceret fejlhåndtering
Læs mereOversættere Skriftlig eksamen onsdag d. 24. januar 2007
Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder
Læs meredintprog Manual Revision: 731 September 30, 2009 1 Introduktion 3 1.1 Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4
dintprog Manual Revision: 731 September 30, 2009 Indhold 1 Introduktion 3 1.1 Notation................................. 3 I Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering
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 mereIntroduktion til programmering. Programmeringssprog Uge 44 Computer Science, kap 6. Learning Python: kap 13, 14.
Introduktion til programmering Programmeringssprog Uge 44 Computer Science, kap 6. Learning Python: kap 13, 14. Plan Programmeringsparadigmer Funktionel programmering i Python Pause Scope: referencekonteksten
Læs mereInteger.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else
Programmering 1999 Forelæsning 2, fredag 3. september 1999 Betingede ordrer: if-, if Indlejrede betingede ordrer Løkker med begrænset iteration: for Løkker med ubegrænset iteration: while Betingede ordrer,
Læs mereBits DM534. Rolf Fagerberg, 2012
Bits DM534 Rolf Fagerberg, 2012 Resume af sidst Overblik over kursus Introduktion. Tre pointer: Datalogi er menneskeskabt og dynamisk. Tidslinie over fremskridt mht. ideer og hardware. Algoritme er et
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 mereForelæsning Uge 12 Mandag
Forelæsning Uge 12 Mandag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse
Læs mere