Objekt-orienteret programmering uden klasser: Self.
|
|
- Peder Andersen
- 6 år siden
- Visninger:
Transkript
1 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. Metodeopslag. Indkapsling og synlighed. Navnerum. Kurt Nørmark, Aalborg Universitet 11/14/96 s. 1 Self er beskrevet i en række artikler og dokumenter: SELF: The Power of Simplicity Organizing Programs without Classes. Parents are Shared Parts of Objects: Inheritance and Encapsulation in SELF. Alle disse findes i tidsskriftet Lisp and Symbolict Computation, 4, 3, Endvidere kan jeg anbefale tutorial materialet Prototype-based application construction using SELF 4.0 af Wolczko og Smith. som følger med distributionen af Self fra Sun s FTP site. 1
2 Klasser og objekter i et klasse-baseret sprog. Ethvert objekt er en instans af en klasse. En klasse beskriver egenskaberne af et objekt. Alle egenskaber, som objekter af samme klasser er fælles om, kan repræsenteres i klassen. To vigtige relationer: Relationen mellem et objekt og den klasse hvoraf objektet er en instans. Relationen mellem en klasse og dens superklasse. Instantiering er mekanismen hvorved objekter skabes ud fra klassen. draw method Klassen polygon Instanser af polygon Kurt Nørmark, Aalborg Universitet 11/14/96 s. 2 På ovenstående slide opsummerer vi forholdet mellem klasser og objekter i normale, klasse-baserede sprog. Der er stor begrebsmæssig forskel mellem en klasse og et objekt, også selv om vi har set eksempler på OOP, hvor klasser er objekter. 2
3 Objekter i et klasseløst sprog: Self. Ethvert objekt beskriver sit eget format. Nedarvning mellem objekter: En mængde af objekter kan udfaktorisere fælles egenskaber til et nyt objekt, som de alle arver fra. Én vigtig relation: Relationen mellem et objekt som arver fra et andet objekt. Objekter skabes ved at klone (shallow copy) et prototype objekt. Objekter kan delegere beskeder til andre objekter. Prototypen af en polygon : clone draw punkt liste returnerer kopi af modtageren tegner modtageren på skærmen : punkt liste : Fællestræk af en polygon punkt liste Kurt Nørmark, Aalborg Universitet 11/14/96 s. 3 Denne slide viser samme situation som på forrige slide. Bemærk fællestræk objektet (på engelsk kaldet et trait objekt) som alle polygoner arver fra. På denne slide er alt dog objekter. Der er altså ingen klasser involveret. 3
4 Differentialprogrammering i et klasse-baseret sprog. Ved nedarvning udvides en klasse med nye egenskaber. Instanser af den specialiserede klasse er tilsvarende udvidet i forhold til instanser af superklassen. draw method Klassen polygon fillpattern fillpattern draw method setfillpattern method Klassen filled-polygon fillpattern Kurt Nørmark, Aalborg Universitet 11/14/96 s. 4 Vi introducerer nu nedarvning. Ovenfor viser vi en klasse filled-polygon, som arver fra polygon. Endvidere vises tre objekter af disse klasser. På næste slide ser vi på den samme situation i Self. 4
5 Differentialprogrammering i et klasseløst sprog: Self. Udvidelse af en klasse kan umiddelbart overføres til et nyt fællestræk objekt, som arver fra det oprindelige fællestræk objekt. Prototypen af en polygon : punkt liste Prototypen af en fyldt polygon punkt liste : filpattern fill pattern fillpattern: clone draw draw returnerer kopi af modtageren tegner modtageren på skærmen tegner fyldt polygon punkt liste : filpattern fill pattern fillpattern: Fællestræk af en polygon Fællestræk af en udfyldt polygon Kurt Nørmark, Aalborg Universitet 11/14/96 s. 5 Ligesom på forrige slides vises er tre polygoner (to udfyldte og én ordinær). Det vigtige er imidlertid de to fællestrækobjekter, som repræsenterer de fælles egenskaber ved hhv. fyldte og ordinære polygoner. På næste slide vil vi råde bod på gentagelserne i prototypen af en fyldt polygon ( og :) i forhold til prototypen af en polygon. 5
6 Repræsentationsudvidelse i Self. Udvidelsen kan også udstrækkes til repræsentationen. Dette kræver understøttelse af multipel nedarvning mellem objekter. Prototypen af en polygon : punkt liste Prototypen af en fyldt polygon data traits dataparent: filpattern fillpattern: fill pattern clone draw draw returnerer kopi af modtageren tegner modtageren på skærmen tegner fyldt polygon data traits dataparent: filpattern fillpattern: fill pattern Fællestræk af en polygon Fællestræk af en udfyldt polygon Kurt Nørmark, Aalborg Universitet 11/14/96 s. 6 For at undgå at gentage egenskaber i prototypen af en fyldt polygon i forhold til prototypen af en polygon lader vi en fyldt polygon arve fra en polygon. Da vi også har brug for at arve fra fællestræk objektet introducerer vi her et udtalt behov for multipel objekt nedarvning. 6
7 Repræsentationsproblemer i klasse-baserede sprog. Specialisering medfører undertiden en uønsket repræsentationsudvidelser. Eksempelvis overrepræsenteres rektangler herunder med både en liste af hjørner og to diagonalt modsatte punkter. En polygon area method Klassen polygon Et rektangel top-left-point bottom-right top-left-point bottom-right top-left-point bottom-right-point better area method Et andet rektangel Klassen rektangel Kurt Nørmark, Aalborg Universitet 11/14/96 s. 7 Denne slide diskuterer klassehierarkier, hvor specialiserede klasser ikke har behov for at udvide repræsentationen i forhold til superklassen. Derimod har man typisk behov for at lægge bånd på superklassens repræsentation i forhold til subklassens. I eksemplet skal vi sikre os at et rektangel er en firkant med parvise parallelle sider, og med rette vinkler. Med andre strammer vi klasseinvarianten i subklassen i forhold til superklassen. Hvis man studerer det naturlige klassehierarki af trekanter vil man observere præcist det samme fænomen. I nedarvning i klassebaserede sprog kan man kun undgå overrepræsentere objekter ved at lade alle superklasse være abstrakte, uden repræsentation. Dette er imidlertid ikke tilfredsstillende i trekanthierarkiet, idet det giver fin mening at instantiere en generel trekant. Så der er et reelt problem her i klasse-baserede sprog. 7
8 Løsning af repræsentationsproblemet i klasseløse sprog: Self. Ved at undlade at arve fra prototypen af en polygon kan vi let arrangere, at et rektangel ikke overrepræsenteres. Prototypen af en polygon : Prototypen af rektangel punkt liste top-left-point (10,20) top-left-point: bot-right-point (90, 130) bot-right-point: clone area area returnerer kopi af modtageren beregner aralet af en polygon beregner arealet med simpel formel Fællestræk af en polygon Fællestræk af et rektangel Kurt Nørmark, Aalborg Universitet 11/14/96 s. 8 Problemet fra forrige slide løses elegant i Self ved at rektangel prototypen undlader at arve fra polygon prototypen. Bemærk dog, at fællestrækobjektet for rektangel arver fra polygon fællestrækobjektet. 8
9 Fleksibel sharing giver nye muligheder i Self. Ved at manipulere parent kan det eksempelvis lade sig gøre at lave en række punkt-objekter med delt x-koordinat. clone print returnerer kopi af modtageren udskriver et objekt Object traits + adderer et punkt til dette punkt Point traits x 7 x: Et punkt Et andet punkt y 7 y 7 y: y: Kurt Nørmark, Aalborg Universitet 11/14/96 s. 9 Denne slide viser, hvordan vi ved at jonglere med parent referencerne kan organisere objekterne på nye spændende måder. I Self arbejder vi reelt med objekt-dele i stedet for en objekt-helhed. Ved at mutere referencerne mellem objekt-dele opstår der helt nye muligheder i forhold til det sædvanlige objekt-orienterede paradigme baseret på klasser. 9
10 Dynamisk nedarvning. Ved dynamisk nedarvning menes muligheden for at ændre på parents under kørslen af et program. Med dynamisk nedarvning muliggøres midlertidige forandringer i objekters opførsel. Dynamisk nedarvning udgør en finkortnet mekanisme til ændring af klassen af et objekt. Boxed polygon fællestræk draw tegner normal polygon Polygon fællestræk copy returnerer en kopi af modtageren Prototypen af en polygon parent: : draw tegner blød spline polygon enten eller punkt liste Blød spline polygon fællestræk Kurt Nørmark, Aalborg Universitet 11/14/96 s. 10 Denne slide fortsætter i samme spor som foregående. Vi viser hvordan man ved at ændre på en parent reference fra ét fællestræk til et andet fællestræk kan lave en (måske midlertidig) forandring af et objets opførsel. 10
11 Singulære objekter i klasse-baserede sprog. Det er akavet at arbejde med singulære objekter i de fleste klasse-baserede sprog. Det er svært at sikre, at der ikke bliver lavet flere instanser af en klasse. iftrue: trueblock iffalse: falseblock trueblock value Klassen objekt iftrue: trueblock iffalse: falseblock falseblock value. Klassen True Klassen False Objektet True Objektet False Kurt Nørmark, Aalborg Universitet 11/14/96 s. 11 Denne slide viser hvordan man håndterer singulære objekter i et Smalltalk-agtigt system. Næste slide viser den tilsvarende situation i Self. 11
12 Singulære objekter i klasseløse sprog: Self. Det er umiddelbart naturligt at arbejde med singulære objekter i et klasseløst sprog True iftrue:iffalse: iftrue:iffalse: False :trueblock. :falseblock trueblock value :trueblock. :falseblock false value Kurt Nørmark, Aalborg Universitet 11/14/96 s
13 Self: Et sprog uden variable. I Self tilgåes slots (variable) ved at sende en besked til objektet selv (self). Variable er intetsteds leksikalsk tilgængelige. På det sted, hvor man refererer til en variabel kan man ikke erkende om der er tale om en aflæsning af variablens værdi en aktivering af en metode, som refererers fra den slot, som repræsenterer variablen. Det er ikke nødvendigt eksplicit at angive et modtagerobjekt for en besked. En implicit receiver besked sendes til self. Fremmer kortfattet udtryksform. Har en semantisk konsekvens, idet method lookup starter ved current activation i stedet for current receiver. Kurt Nørmark, Aalborg Universitet 11/14/96 s
14 Aktivering af metoder i Self. I funktionsorienteret programmering indså vi at closures tangerer klassebegrebet funktionskald tangerer objektbegrebet I self unificeres metodeaktivering og objekter. + Et punkt x 7 x: y 18 y: self* Cloned arg activation record <code>... x 3 x: y 4 y: Punkt faellestraek Et andet punkt Prototype activation record self* arg nil <code> (clone x: x + arg x) y: y + arg y) Kurt Nørmark, Aalborg Universitet 11/14/96 s
15 Principper for method lookup i Self objekter (1). x x parent1* parent2**... self x... Hvilket x? I Self er det muligt at priorietere en parent frem for en anden i forbindelse med metode opslag. Dette er et alternativ til CLOS totale ordning af alle superklasser. Kurt Nørmark, Aalborg Universitet 11/14/96 s
16 Principper for method lookup i Self objekter (2). m... self x... Hvilket x? x x Sender besked m til... parent1* parent2* Self har en sender path tiebreaker rule som priorieterer slots på stien mellem modtageren og den metode, som ovenfor sender x til self. Ifølge denne regel vælges x i den venstre gren. Kurt Nørmark, Aalborg Universitet 11/14/96 s
17 Indkapsling og synlighed i Self. Det muligt i Self at skelne mellem private slots, der kun kan refereres af metoder i klassen selv. offentlige slots, der kan refereres fra andre objekters metoder. To former for privatliv: Objekt-baseret indkapsling: En metode kan kun tilgå instansvariable i self. Eiffel Klasse-baseret indkapsling: En metode kan tilgår instansvariable i alle instanser af en bestemt klasse. C++ Kan man understøtte klasse-baseret indkapsling i et klasseløst sprog? Self forsøger dette ved at lade en metode have adgang til private slots i alle de objekter, som er fælles om metoden. Kurt Nørmark, Aalborg Universitet 11/14/96 s
18 Organisering af navnerum i Self. Objekter kan bruges til at organisere og kategorisere navnerum i Self. Lobby bør opfattes som rod i objekt-hierarkiet. lobby globals* prototypes* traits objekt som opremser globalt kendte navne de fleste objekter prototyper shapes* collections* fællestræk shapes* collections* shape prototyper polygon rectangle collection prototyper list array shape fællestræk polygon rectangle collection fællestræk list array Kurt Nørmark, Aalborg Universitet 11/14/96 s. 18 Det er værd at bemærke at traits ikke har en stjerne i lobby. Det betyder, at man ikke følger denne reference under metodeopslag. Man må altså sige noget i retning af traits rectangle for at referere til rectangles fællestræk fra et objekt. Hvis man blot siger rectangle vil man referere til rectangel prototypen. Katgorisering af navne er et vigtigt emne i Smalltalk. Sproget Smalltalk er blind for dette aspekt, men emnet håndteres i programmeringsomgivelsen. Emnet diskuteres i afsnit 4 af artiklen Organizing Programs Without Classes. 18
Metaklasser i Smalltalk.
8 Metaklasser i Smalltalk. Motivation Metodeopslag Simple metaklasser Mere udviklede metaklasser Klasse- og metaklassehierarkiet Instantiering og initialisering Skabelse af klasser og metoder Oversigt
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 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 mereIntroduktion til Smalltalk.
7 Introduktion til Smalltalk. Designbeslutninger. Message passing. Klassebegrebet. Metodebegrebet. Forskellige slags variable. Nedarvning og metodeopslag. Instans og klassevariable ift. nedarvning. Blokbegrebet.
Læs merePolymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion
Polymorfi Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type Coercion Tvangskonvertering (forfremmelse og begrænsning) Oversigt Abstrakt klasse abstrakt
Læs mere9 Introduktion til CLOS.
9 Introduktion til CLOS. Klasser Metoder Generiske funktioner Slots Nedarvning Class precedence lists Klasse-redefinition og objektopdatering Ændring af objekters klassetilhørsforhold Eksempler Kurt Nørmark,
Læs mere10 Metodekombination og multimetoder i CLOS.
10 Metodekombination og multimetoder i CLOS. Metodekombination generelt. Multimetoder generelt. Kald af en generisk funktion i CLOS. Specialisering på enkeltobjekter. Standard metodekombination. Simpel,
Læs mere13 Objekt-orienteret Design.
13 Objekt-orienteret Design. Analyse i forhold til design. Programbeskrivelse og designbeskrivelse. Sømløs udvikling. Design i forhold til OO Eiffel programmering. Kategorisering af klasser i et design.
Læs mere2 Funktionsorienteret programmering i Scheme.
2 Funktionsorienteret programmering i Scheme. Lisp og Scheme. Listebegrebet i Lisp. Funktionsdefinition og lambdaudtryk. Navnebinding. Iteration. Første-klasses funktioner. Closures som klasser. Praktisk
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 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 mere12 Metaobjekt protokoller i CLOS.
12 Metaobjekt protokoller i CLOS. Begreber og problemer. Sprog designrum. Niveauer i CLOS. Programobserverende protokoller. Programskabende protokoller. Sprogudvidende protokoller. Eksempler. Kurt Nørmark,
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 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 mere29 Opsamling af Objekt-orienteret Programmering.
29 Opsamling af Objekt-orienteret Programmering. Bottom-up kontra top-down design. "The shopping list approach". Hvordan finder man på objekterne. Klasser og dataabstraktion. Klasse interface og interface-teknikker.
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 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 mereIntroduktion til design patterns.
Introduktion til design patterns. Genbrug. Pattern languges i arkitektur. Standardbeskrivelse af design patterns. Oversigt over design patterns. Observer. Composite. Decorator. Abstract Factory. Patterns
Læs mere30 Objekt-orienteret Programmering i Andre Sprog.
30 Objekt-orienteret Programmering i Andre Sprog. Abstrakte datatyper i Pascal. Abstrakte datatyper i Modula og Ada. C++ Overordnet organisering Instantiering og initialisering. Interfaces. Nedarvning.
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 mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
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 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 mereMultiparadigme Programmering
Multi Programmering Repetition: De grundliggende r Systematisk karateristik. Paradigmesupplering. Symmetrisk multi programmering Leda eksempler på logikprogrammering kombineret med imperativ og funktionsorienteret
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 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 mere12 Nedarvning III. Noter. Multipel nedarvning. Nedarvning og assertions. PS1 -- Nedarvning III. Kurt Nørmark, Aalborg Universitet, 1994.
12 Nedarvning III. Multipel nedarvning. Nedarvning og assertions. 169 Multipel nedarvning. A C Klassen C arver egenskaberne fra både A og. A og egenskaber er umiddelbart tilgængelige i C. x A C x x er
Læs mere16 Træer. Noter. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype.
16 Træer. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype. Gennemløb af binære træer. Træer i Eiffel. 229 Definition af et træ.
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 mere2 Abstrakte datatyper.
2 Abstrakte datatyper. Motivere eksempel: top-down udvikling af program 'mini-bank' Strukturering af et program: efter data eller funktion? Definition af en abstrakt datatype og tilknyttede begreber. Fænomener,
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 mereBasale forudsætninger. Sortering ved fletning med tre bånd, i to faser.
25 Sortering III. Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser. Sortering ved fletning, med fire bånd, i én fase (balanceret fletning). Polyfase fletning med tre bånd. Generaliseret
Læs mereKapitel 6 Events i C#
Kapitel 6 i C# Når vi snakker programmering er en Event når der aktiveres specielt indbygget kode. Der sker en hændelse (event). Man siger at eventet bliver udført. De events vi skal gennemgå i dette kapitel
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 mereER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002
Databaser, efterår 2002 ER-modellen Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk
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 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 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 mereCrash Course i Programmering. HumTek, RUC
Crash Course i Programmering HumTek, RUC Kursus mål At give en basal introduktion til programmering i sproget Processing At give et overblik over sprogets potentiale At have det sjovt :-) Kursus form Meget
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 mereDistribuerte Objekter. Våren 2010 Professor II Eric Jul F
Distribuerte Objekter Våren 2010 Professor II Eric Jul F5 2010-04-26 Velkommen Eric Jul, Professor II, til daglig: Bell Labs, Dublin, Ireland Tor Ivar Johansen, hjelpelærer Deltagelse I Forelæsningerne
Læs mere5 Basal Objekt-orienteret Programmering II.
5 Basal Objekt-orienteret Programmering II. Historik og sprogoversigt. Programbeskrivelse kontra programudførelse. Referencer og værdier. Skabelse af objekter i Eiffel. Features og deres klassificering
Læs mereER-modellen. Databaser, efterår 2002. Troels Andreasen. Efterår 2002
Databaser, efterår 2002 ER-modellen Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk
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 mereHvordan organiseres et programs grafik-elementer? OOP e uge kursusgang. Advarsel! Component-objekter
OOP e2002 - uge 42 6. kursusgang Hvordan organiseres et programs grafik-elementer? 1. Teori: class Component og subklasser: Composite pattern layout-managere hændelsesstyret programmering 2. XP-program:
Læs mereDet sprogpædagogiske kørekort 2012/2013 Modul 7 Billedbehandling
Det sprogpædagogiske kørekort 2012/2013 Modul 7 Billedbehandling V 3.5.10 V Indhold Hvad er Paint.NET?. 3 Værktøj... 4 A. Åbn et billede..... 5 B. Gem et billede... 5 C. Beskær et billede... 7 D. Ændr
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 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 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 mereA Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Læs mereProjekt 1.4 Tagrendeproblemet en instruktiv øvelse i modellering med IT.
Projekt 1.4 Tagrendeproblemet en instruktiv øvelse i modellering med IT. Projektet kan bl.a. anvendes til et forløb, hvor en af målsætningerne er at lære om samspillet mellem værktøjsprogrammernes geometriske
Læs mereObjektorienteret Programmering
Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:
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 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 mereErrata pr. 1. sept Rettelser til Ypsilon 1. udgave, 1. oplag
Errata pr. 1. sept. 2009 Rettelser til Ypsilon 1. udgave, 1. oplag Rettelserne herunder er foretaget i 2. oplag af bogen. Desuden forekommer der mindre rettelser i 2. oplag, som ikke er medtaget her, da
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 mereArbejde med 3D track motion
Arbejde med 3D track motion Gary Rebholz I sidste måneds Tech Tip artikel gennemgik jeg det grundlæggende i track motion. Selv om vi ikke gennemgår alle værktøjer i Track Motion dialog box vil du alligevel
Læs mere18 Multivejstræer og B-træer.
18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.
Læs mereNR. 92 PDF-formularer med OpenOffice DEN 4. MARTS 2015
NR. 92 PDF-formularer med OpenOffice DEN 4. MARTS 2015 PDF-formularer med OpenOffice til LUDUS Web Målet med dette Tips & Tricks er at beskrive, hvordan man laver PDF-formularer til brug i LUDUS Web. Læs
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 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 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 mereGrafikprogrammering i mat. og teknologi uv. Louis Køhrsen
Grafikprogrammering i mat. og teknologi uv Louis Køhrsen Mål med forløbet At give eleverne et kreativt udløb, hvor deres matematiske kompetencer sættes i spil med et kreativt mål At give eleverne et billede
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 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 mereRapport Bjælken. Derefter lavede vi en oversigt, som viste alle løsningerne og forklarede, hvad der gør, at de er forskellige/ens.
Rapport Bjælken Indledning Vi arbejdede med opgaverne i grupper. En gruppe lavede en tabel, som de undersøgte og fandt en regel. De andre grupper havde studeret tegninger af bjælker med forskellige længder,
Læs mereSide 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5
Databaser og SQL Introduktion til SQL Kap 1-5 1 Dagens gang Databaser Database begreber Mapning af klasser til relationel model Normalisering Opgaver til næste gang 2 Databasebegreber A database is a:
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 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 mereAlgoritmeskabeloner: Sweep- og søgealgoritmer C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte
Læs mereLøsning af skyline-problemet
Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle
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 mereAdgang til WebGraf. 1. Start Microsoft Internet Explorer. 2. Skriv: http://kort.ge.dk
Indholdsfortegnelse Indholdsfortegnelse.. side 2 Adgang til webgraf 3 Opslag adresse... 4 Styring af layout.. 5 Opslag af område via oversigtskort... 6 Zoom funktioner.. 7 Panorere på skærmen. 8 Information
Læs merei x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0
BAndengradspolynomier Et polynomium er en funktion på formen f ( ) = an + an + a+ a, hvor ai R kaldes polynomiets koefficienter. Graden af et polynomium er lig med den højeste potens af, for hvilket den
Læs mereMattip om. Arealer 2. Tilhørende kopi: Arealer 4 og 5. Du skal lære om: Repetition af begreber og formler. Arealberegning af en trekant
Mattip om Arealer 2 Du skal lære om: Repetition af begreber og formler Kan ikke Kan næsten Kan Arealberegning af en trekant Arealberegning af en trapez Tilhørende kopi: Arealer 4 og 5 2016 mattip.dk 1
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 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 mereTips & Tricks nr. 92 PDF-formularer med OpenOffice til LUDUS Web
LUDUS Helpdesk T +45 3614 7070 sc-ludus@dxc.com CSC Scandihealth A/S - en del af DXC Technology P.O. Pedersens Vej 2 8200 Aarhus N T +45 3614 4000 www.dxc.technology www.dxc.technology/ludus Tips & Tricks
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 mereObjektorientering og databaser
Databaser, efterår 2002 Objektorientering og databaser Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674
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 mereIntroduktion til Computer Grafik Projekt 1
Introduktion til Computer Grafik Projekt 1 Line Løfquist,Thor Prentow, Nikoline Vinkel Datalogisk Institut, Aarhus Universitet Åbogade 34, 8200 Aarhus N, Denmark 20071346, 20071952, 20071387 {u071346,prentow,u071387}@cs.au.dk
Læs mere6.1 ØVEARK. Tæl og skriv tal
6.1 Tæl og skriv tal 1 2 3 4 6 11 12 13 14 1 16 1 1 1 20 0 30 1 30 1 0 30 30 1 1 0 30 1 30 1 0 1 30 1 0 30 30 1 JUICE JUICE JUICE JUICE JUICE JUICE JUICE JUICE JUICE JUICE JUICE JUICE JUICE JUICE JUICE
Læs mereIndhold. Download driver... 2. Find version af Windows 8... 3. Hent drivers til Windows 8... 5. Udpak driver... 6
KB print Windows 8 installations guide DET KONGELIGE NATIONAL OG Indhold Download driver... 2 Find version af Windows 8.... 3 Hent drivers til Windows 8... 5 Udpak driver... 6 Windows 8 installation af
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 mereObjects First with Java A Practical Introduction Using BlueJ
Objects First with Java A Practical Introduction Using BlueJ En introduktion til objektorienteret programmering for begyndere ud fra et software engineering aspekt Om at programmere i Java, ikke om værktøjet
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 mereIntroduktion til ActionScript
Introduktion til ActionScript 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 på
Læs mereDesign by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design
Læs mere- en manual fra Skolekonsulenterne.dk
- en manual fra Skolekonsulenterne.dk Versionsdato: April 2008 Indholdsfortegnelse Generelt om manualer fra Skolekonsulenterne.dk...3 Hvad er Geogebra?...4 Denne manual...4 Hent og installer programmet...4
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.
Læs mereGenvejstaster i kapilel 6. IKON BETEGNELSE INDLAGT SKAL TILFØJES Set Auto Borders Indsætter færdigt tegnede kanter,
Kanter Set Border værktøjet giver stor fleksibilitet. Man kan designe sine egne kanter fra bunden, vælge mellem de 22 typer der er i EQ6. Set Auto borders indsætter færdig designede kanter med et klik.
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 merePraktiske Maple kommandoer og arbejdsmåde
Praktiske Maple kommandoer og arbejdsmåde Options: I menuen "Tools" findes "Options". Under fanebladet "Interface" bør man vælge Default format for new worksheets = Worksheet Det bevirker, at man kan skelne
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 merePå min hjemmeside under Libre Draw finder du nederst en skabelon Skabelon med 2 spalter. Det er den vi skal bruge i dette eksempel.
Side 1 Mange kender programmet Microsoft Publisher hvor man sætte forskellige ting op i, blade, skrivelser, sange m.m. Libre Office Draw der er en del af den gratis LibreOffice pakke kan noget i samme
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 mereFase Forklaring Navigation. Mappen skal indeholde alle elementer til dit site.
1 Opstart af et site Opret hovedmappen Opret grafikmappen Opret dit site Mappen skal indeholde alle elementer til dit site. Opret en mappe indeni den første og kald den grafik. Heri lægges alle dine grafikfiler.
Læs mereVektorer og lineær regression
Vektorer og lineær regression Peter Harremoës Niels Brock April 03 Planproduktet Vi har set, at man kan gange en vektor med et tal Et oplagt spørgsmål er, om man også kan gange to vektorer med hinanden
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 mere