29 Opsamling af Objekt-orienteret Programmering.

Størrelse: px
Starte visningen fra side:

Download "29 Opsamling af Objekt-orienteret Programmering."

Transkript

1 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. Klasse nedarvning og nedarvnings-teknikker. 'Køber' eller 'arving'? Co-varians og contra-varians. Indskrænkning af klient-interface. 411

2 Bottom-up kontra top-down design. Bottom-up design: abstraktioner over definitioner, som indkapsler data (= klasser). Små enheder, som er data-abstraktioner, tilpasses og kombineres til gradvis større enheder. Enhedernes genbrugsværdi er relativ stor. Top-down design: Store enheder, som er procedure-abstraktioner, forfines og nedbrydes til gradvis mindre enheder. Enhedernes genbrugsværdi er relativ lille. abstraktioner over kommandoer (= procedurer) eller udtryk (= funktioner). Objekt-orienteret programmering lægger primært op til bottom-up design. 412

3 En klasse tilbyder en samling af tjenester. En klasse C tilbyder en samling af tjenester (= features) til kunder (= klienter). Tjenester fra en klasse er ligeværdige. Tjenester forekommer separat, og løsrevet fra bestemte anvendelsesordener og -kombinationer. Mængden af tjenester af passende afrundet. Hvormange tjenester må der være i en klasse? Tilgodese kravene om separation og afrundethed af tjenester. Tilgodese overskuelighed, forståelighed og læsbarhed. Faktoriser variationer og basale egenskaber ud i hhv. sub- og superklasser En klasser udfører ikke noget. Den tilbyder noget. Ligeværdighed: Det er udelukkende varens værdi for kunden, der afgør, om den bliver købt. Minimale bånd på kombination og orden: Det er kunden som bestemmer i hvilken kombination og orden egenskaberne skal anvendes. Selvom to operationer i en given anvendelsessituation altid bruges sammen, er der gode grunde til ikke at svejse dem sammen i klassen. Selv om nogle mennesker altid spiser sovs til kartofler, er det hensigtsmæssigt at ingredienserne sælges hver for sig. Afrundethed: for at opnå den bedste genbrugsværdi, uden snæver hensyntagen til en specifik brugssituation. På ovenstående figur betyder et '+' en forøgelse af antallet af tjenester, og et '-' en formindskelse. 413

4 Hvordan finder man på klasser og objekter Inspirationskilder: Begreber og fænomener i systemets omverden. Begreber bliver til klasser. Fænomener bliver til objekter, som er instanser af klasser. Klasser i programmeringsomgivelsens bibliotek. Tilpasning af eksisterende klasser er mere attraktiv end Opfindelse af nye klasser. Systematisk dataoverførsel mellem en mængde af relaterede procedurer eller funktioner: Indfør en dataabstraktion (en klasse), hvori procedurerne og funktionerne er operationer. Det sidste tilfælde (procedurer med systematisk dataflow) er beskrevet i stor detalje, og ud fra et eksempel, i 12.3 af OOSC. 414

5 Gode klasser er dataabstraktioner. En klasse skal beskrive en mængde af objekter. - Typisk flere objekter af samme klasse. - Det skal være naturligt at lave instanser af klassen. Objekter skal have tilstand, som på ethvert tidspunkt i dets levetid skal være meningsfuld. - Meningsfuldhed: udtrykkes af invarianten. Der skal være relevante og meningsfulde operationer på objekterne. - Relevans: operationerne skal "arbejde på" objekternes tilstand. - Meningsfuldhed: Operationer skal respektere invarianten. Klasser beskriver og dækker over objekter: Antag man har en klasse, og man ønsker at benytte en operation i klassen. Antag endvidere at dette dybest set burde kunne lade sig gøre, uden at lave et objekt af klassen. Det objekt-orienterede programmeringssystem tvinger dog programmøren til at lave en dummy instans af klassen, således man kan sige dummy.nyttig-operation(parametre). Klassen er i dette tilfælde ikke en dataabstraktion. Man kan forestille sig en klasse med en operation, som blot benytter det omkringliggende objekts tilstand til intern bogholderi information. Eksempel: Operation som genererer tilfældige tal. Operation med hukommelse. En sådan klasse er ikke en dataabstraktion. 415

6 Eksempel på en dårlig klasse. Class udskriv_regning_operation feature {NONE} Kunde_navn: string; Vare_liste: list[varer]; hent_regnings_info(info_kilde: XX) is do definer Kunde_navn og Vare_liste end; feature udskriv_regning(info_kilde: XX; info_destination: YY) is do hent_regnings_info(info_kilde); udskriv regningen på info_destination end Klassen er entydigt bygget op omkring en handling, ikke om data. Klassen beskriver ikke tilstand, som er meningsfuld i den fulde livstid af instanser. Det er unaturligt at instantiere klassen. Operationerne i klassen er for tæt koblede. end For bedre at kunne diskutere egenskaberne af gode klasser, vil vi her studere en dårlig klasse. På næste slide vises en forbedret udgave af dette eksempel. 416

7 Eksempel på en forbedret klasse. Class regning feature {NONE} Kunde_navn: string; Vare_liste: list[varer]; create(navn: string; varer: LIST[varer]) is do... end; feature udskriv(info_destination: YY) is do... end; -- andre operationer på regninger end; Ideen med denne klasse er at beskrive dataabstraktionen regning. En regning har både tilstand og et antal af operationer, som opererer på tilstanden. Det er disse operationer som udgør klientinterfacet af klassen. Bemærk særligt, at vi nu har en create operation, som opretter en regning. 417

8 Interfaces. A B En klasse er typisk - relativt åben i forhold til subklasser, og - mere lukket i forhold til klienter. B s klient-interface er typisk en udvidelse af A s klient-interface. Eiffel klasser: Total åbenhed mellem A og B. Uafhængighed mellem A's og B's klient-interfaces. Inducerer typeproblem 2 Typeproblem 2 vil blive beskrevet senere i dette kapitel. 418

9 Interfaceteknikker. En Abstrakt klasse som definerer klient interfacet, men ikke repræsentation af tilstand. A En konkret klasse, der definerer en dataabstration, men intet klient interface. A B C D Klasser, der definerer repræsentationen af tilstand samt tilknyttede operationer, men blot afspejler A's klient interface. Funktionelt ækvivalente objekter, med forskellig repræsentation kan sam-eksistere. B C D Klasser, der hver for sig definerer egne syn på dataabstraktionen, som arves fra A. Syn: - Udvalget af operationer. - Teminologi. 419

10 Nedarvning. Tilføjelse af nye egenskaber til nogle eksisterende egenskaber. Redefinition af nogle eksisterende egenskaber. Kontrolleret redefinition: A op(x: S) Op har samme antal parametre som A's op. Specifikation af op: Prebetingelsen må ikke styrkes. B op(x: T) Postbetingelsen må ikke svækkes. Signaturen af op: Den effektive invariant af klassen B er styrket i forhold til invarianten af A. Co-varians: T er en subklasse af S. Contra-varians: T er en superklasse af S. Eiffel foreskriver co-varians. Inducerer typeproblem 1. Vi vil også vende tilbage til typeproblem 1 senere i denne forelæsning. 420

11 Nedarvningsteknikker (1). Definition af specialiseringer. X Y a: X; b: Y!!b.create(...); Objektet refereret af b er et Y-objekt, men det opfattes også som et X-objekt. Extensionen af Y-begrebet er en delmængde af extensionen af X-begrebet. Eksempel: Træ Binært-træ Binært-søgetræ AVL-træ Multivejs-træ Multivejs-søgetræ B-træ Definition af generaliseringer: Understøttes ikke af sproglige mekanismer i objekt-orienterede programmeringssprog. 421

12 Nedarvningsteknikker (2). Formidling af operationer og konstanter som ønskes umiddelbart til rådighed. X Y a: X; b: Y --meningsløst!!b.create(...); I operationerne på klassen Y er egenskaberne i X umiddelbart tilgængelige, som om de var definerede i selve Y. X er ikke nogen dataabstration. Extensionen af X er meningsløs. Eksempel: Geometrisk-figur Globale-konstanter Mat-bibliotek Cirkel Muligheden for at have multiple super-klasser er essentiel. På denne slide antages, at klassen X indeholde er samling af operationer og/eller konstanter, som ønskes gjort tilgængelig i klassen Y. 422

13 Nedarvningsteknikker (3). "The mariage of convenience": Specialisering, som i tilgift bliver tilført nogle nødvendige mekanismer til realisering af den ønskede funktionalitet af den specialiserede klasse. Eksempel: Abstrakt klasse som definerer interfacet Klasse som definerer implementations-mekanismer Stack Array Fixed_stack Muligheden for at have multiple super-klasser er essentiel. "The mariage of convenience" er et specialtilfælde af den anvendelse af nedarvning, som forekommer på den forrige slide. 423

14 'Køber' eller 'Arving'? Problem: Klassen B har behov at benytte A-egenskaber. Skal B være en klient af A, eller skal B arve fra A? Arve: hvis B er en A. hvis B ønsker umiddelbar adgang til egenskaberne i A. B får adgang til en relativ stor, men potentiel ustabil mængde af operationer, inklusiv repræsentation af data. Ofte relevant hvis A ikke er en dataabstraktion, men en løsere samling procedurer eller konstanter. Klient: hvis B har en A-del. B får adgang til en relativ mindre, men mere stabil mængde af operationer (repræsentationsuafhængighed). 424

15 Typeproblem 1. Co-varians. Klasser og nedarvning: A B op(x: S) op(x: T) Objekter og operationskald: S T Typer af operationsparametre varierer på samme måde, som de klasser, hvori operationerne befinder sig. op(x: T) is do x.t_operation end Aref: A; Bref: B; Sref: S;!!Bref.create(...);!!Sref.create(...); Aref := Bref; Aref.op(Sref) --Aref betegner et B-objekt --OK idet Aref har statisk type A. --Op i klassen A tager et objekt af typen S som parameter. --Via dynamisk binding anvendes B's op. --En T-operation på et S-objekt er meningsløst. Vi antager, at op er redefine'et i forbindelse med, at B arver fra A. Co-varians problemet's kerne: Vi kalder operationen op på et objekt af typen B. Dette objekt er refereret gennem en variabel, der er erklæret af (har statisk type A). Ud fra et statisk synspunkt er det derfor OK at overføre et S-objekt til operationskaldet. På grund af dynamisk binding bliver det imidlertid operationen op fra klassen B, som kaldes. Dette er en tidsindstillet bombe, idet op fra B kan kalde en T-operation på sin parameter. Kald af en T-operation på et S-objekt er klart meningsløst. Hvad skal der til for at "demontere" den tidsindstillede bombe? Et run-time check på, at (i vort tilfælde) x faktisk refererer til et T-objekt. For mange run-time checks gør programmer langsomme. Derfor strør compiler-skrivere ikke om sig med sådanne. I vores Eiffel implementation opstår der en grim fejl på udførelsestidspunktet når T-operationen kaldes på S-objektet. På næste slide viser vi den sammen situation, blot med contra-varians. 425

16 Typeproblem 1. Contra-varians. Klasser og nedarving: A B op(x: S) op(x: T) Objekter og operationskald: T S Typer af operationsparametre varierer på modsat måde, som de klasser, hvori operationerne befinder sig. op(x: T) is do x.t_operation end Aref: A; Bref: B; Sref: S;!!Bref.create(...);!!Sref.create(...); Aref := Bref; Aref.op(Sref) --Aref betegner et B-objekt --OK idet Aref har statisk type A. --Op i klassen A tager et objekt af typen S som parameter. --Via dynamisk binding anvendes B's op. --En T-operation på et S-objekt er altid meningsfuld. Bemærk at vi stadig benytter den sammen grafiske konvention for nedarvning mellem klasser: Den mest generelle klasse angives øverst på papiret; Den mest specifikke klasse angives nederst. Problemerne på denne slide er anderledes end på den forrige. Det er et problem med contra-varians, at Eiffel-reglerne ikke overholdes. Eiffel-compileren checker reglen, og programmet kan ikke oversættes. Men filosofien bag Eiffel kan naturligvis være forkert. Det er et problem med contra-varians, at det forekommer mere sjældent i praktisk objektorienteret programmering end co-varians. Det er til gengæld ikke et problem, at der i operationen op i B kaldes en T_operation på x, som er et S-objekt. 426

17 Co-varians i praktisk OO programmering. Eksempel: match(k: bog_kriterium): boolean is do... end; Litteratur Bog Tidsskrift Rapport Afhandling match(k: tidsskrift_kriterium): boolean is do... end; Litteratur_kriterium Bog_kriterium Tidsskrift_kriterium Rapport_kriterium match(k: litteratur_kriterium): boolean is deferred end match(k: rapport_kriterium) : boolean is do... end; match(k: afhandling_kriterium) : boolean is do... end; Afhandling_kriterium Påstanden og dermed pointen på denne slide er følgende: I praktiske sammenhænge har man behov for at berige parametre i takt med at man beriger klasser. I klassehierarkiet i eksemplet specialiseres klassen af litteratur til bøger, tidsskrifter, tekniske rapporter og afhandlinger. I takt hermed har man også behov for at specialisere parameteren af match, som jo er det kriterium, ud fra hvilket match bestemmer, om et givet stykke litteratur matcher de i kriteriet givne egenskaber. Når der kommer nye egenskaber til i et specialiseret stykke litteratur, opstår der et naturligt behov for nye egenskaber i det tilhørende match-kriterium. Typeproblemerne, som de blev omtalt på sliden om co-varians, optræder (1) hvis en variabel via brug af polymorfi-reglerne refererer et mere specifikt objekt, og (2) hvis der på dette objekt kaldes en operation med et argument, der er et mere generelt objekt. I praksis er det atypisk, at (2) holder. Vi kan observere at typesammenligneligheden i Eiffel (og de fleste andre OO-sprog) tillader, at en match operation med parameter p kan kalde en mere generel match operation med samme parameter p. (Dette har vi undertiden kaldt imperativ metode-kombination). Ved anvendelse af contra-varians ville dette ikke være muligt. 427

18 Typeproblem 2. Indskrænkninger i klient-interfacet. Klasser og nedarving: A B Objekter og operationskald: Aref: A; Bref: B;!!Bref.create(...); Aref := Bref; class A feature -- x, y og z eksporteres x... is... y... is... z... is end class B export x, y inherit A export {NONE} z; {ANY} x, y feature -- nothing. end Aref.z --Statisk set har Aref en z-egenskab. --Dynamisk set er denne egenskab ikke tilgængelig på --objekter. Fra et statisk synspunkt er der ikke noget i vejen med ovenstående program. Eiffel compileren (i version 2.3) opdager ingen fejl. Det ville generelt set kræve omfattende (statisk) analyse af programmet for at erkende, at Aref kan (i dette tilfælde vil ) referere til et B-objekt. Det er selvfølgelige let at erkende, at B har en mere snæver eksport end klassen A. I Eiffel 2.3 er der ikke indlagt run-time check, som fanger ovenstående tilfælde. Så på trods af, at z ikke er en del af B's klient-interface, er vi i stand til at referere til z i det B-objekt, som refereres via Aref. 428

Udvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Abstrakte klasser.

Udvidelse 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 mere

Rename og redefine. Abstrakte klasser. Dynamisk binding.

Rename 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 mere

4 Basal Objekt-orienteret Programmering I.

4 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 mere

13 Objekt-orienteret Design.

13 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 mere

30 Objekt-orienteret Programmering i Andre Sprog.

30 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

Objektorientering. Programkvalitet

Objektorientering. 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 mere

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. 22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327

Læs mere

Årsagen til fejl. Erkendelse af fejl. Håndtering af fejl.

Å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 mere

3 Algebraisk Specifikation af Abstrakte Datatyper.

3 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 mere

2 Abstrakte datatyper.

2 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 mere

12 Nedarvning III. Noter. Multipel nedarvning. Nedarvning og assertions. PS1 -- Nedarvning III. Kurt Nørmark, Aalborg Universitet, 1994.

12 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 mere

Abstrakte datatyper C#-version

Abstrakte 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 mere

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.

26 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 mere

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign 28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par

Læs mere

Objektorienteret design med arv og polymorfi:

Objektorienteret 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 mere

Objekt-orienteret programmering uden klasser: Self.

Objekt-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 mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 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 mere

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

METODER 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 mere

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Datalogi 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 mere

16 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. 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 mere

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion

Polymorfi. 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 mere

5 Basal Objekt-orienteret Programmering II.

5 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 mere

Objects First with Java A Practical Introduction Using BlueJ

Objects 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 mere

Metaklasser i Smalltalk.

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 mere

Videregående Programmering for Diplom-E Noter

Videregå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 mere

Tree klassen fra sidste forelæsning

Tree 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 mere

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser 3/10/96 Seminaret den 26/10 vil omhandle den sidste fase af analysen og de første skridt i kodegenereringen. Det drejer sig om at finde betydningen af programmet, nu hvor leksikalsk og syntaktisk analyse

Læs mere

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

class 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 mere

ER-modellen. Databaser, efterår 2002. Troels Andreasen. Efterår 2002

ER-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 mere

Moduler i Standard ML

Moduler i Standard ML Moduler i Standard ML Hans Hüttel December 2001 I løbet af datalogikurset har vi haft glæde af en hel række forskellige standardmoduler som f.eks. Math, Int, Real og String. Disse moduler kan, har vi set,

Læs mere

class subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.

class 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 mere

Citation for pulished version (APA): Nordbjerg, F. E. (1993). Objektorientering = Programkvalitet? Prosabladet. De it-professionelles fagblad, (4).

Citation for pulished version (APA): Nordbjerg, F. E. (1993). Objektorientering = Programkvalitet? Prosabladet. De it-professionelles fagblad, (4). Danish University Colleges Objektorientering = Programkvalitet? Nordbjerg, Finn Ebertsen Published in: Prosabladet. De it-professionelles fagblad Publication date: 1993 Document Version Pre-print: Det

Læs mere

Hypotesetest. Altså vores formodning eller påstand om tingens tilstand. Alternativ hypotese (hvis vores påstand er forkert) H a : 0

Hypotesetest. Altså vores formodning eller påstand om tingens tilstand. Alternativ hypotese (hvis vores påstand er forkert) H a : 0 Hypotesetest Hypotesetest generelt Ingredienserne i en hypotesetest: Statistisk model, f.eks. X 1,,X n uafhængige fra bestemt fordeling. Parameter med estimat. Nulhypotese, f.eks. at antager en bestemt

Læs mere

Kommentar fra KMS til Specifikation af Serviceinterface for Person

Kommentar fra KMS til Specifikation af Serviceinterface for Person Kommentar fra KMS til Specifikation af Serviceinterface for Person Organisation Side Kapitel Afsnit/figur/tabel /note Type af kommentar (generel (G), redaktionel (R), teknisk (T)) Kommentar KMS-1 G Godt

Læs mere

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Design 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

Klasser 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 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 mere

Skriftlig eksamen i Datalogi

Skriftlig 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 mere

Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser.

Basale 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 mere

Skriftlig eksamen i Datalogi

Skriftlig 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 mere

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002

ER-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 mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

Exceptions i Delphi. Try except

Exceptions 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 mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =

Læs mere

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1

Software 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 mere

b) 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.

b) 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 mere

Rolf Fagerberg. Forår 2012

Rolf Fagerberg. Forår 2012 Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater Design by Contract Design and Programming by Contract Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig 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 mere

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528) Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM58) Institut for Matematik & Datalogi Syddansk Universitet Torsdag den 7 Januar 010, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger,

Læs mere

18 Multivejstræer og B-træer.

18 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 mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software 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 mere

Introduktion til DM507

Introduktion til DM507 Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: 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 mere

Lektion 6. Grundlæggende programmering i VR

Lektion 6. Grundlæggende programmering i VR Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, 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 mere

UML til kravspecificering

UML 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 mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software

Læs mere

15 Arrays og Lister samt Stakke og Køer.

15 Arrays og Lister samt Stakke og Køer. 15 Arrays og Lister samt Stakke og Køer. Introduktion til arrays. Algebraisk specifikation af arrays. Arrays i Eiffel. Introduktion til lister og kædede lister. Fælles egenskaber ved stakke og køer. Algebraisk

Læs mere

Eksempel: Skat i år 2000

Eksempel: 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 mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer

Læs mere

12 Metaobjekt protokoller i CLOS.

12 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 mere

Rolf Fagerberg. Forår 2014

Rolf Fagerberg. Forår 2014 Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig

Læs mere

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2 Affine rum I denne note behandles kun rum over R. Alt kan imidlertid gennemføres på samme måde over C eller ethvert andet legeme. Et underrum U R n er karakteriseret ved at det er en delmængde som er lukket

Læs mere

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides 01017 Diskret Matematik E12 Alle bokse fra logikdelens slides Thomas Bolander 1 Udsagnslogik 1.1 Formler og sandhedstildelinger symbol står for ikke eller og ( A And) hvis... så... hvis og kun hvis...

Læs mere

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1 Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den

Læs mere

10 Metodekombination og multimetoder i CLOS.

10 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 mere

Forelæsning Uge 6 Mandag

Forelæ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 mere

Objektorienteret Programmering

Objektorienteret 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 mere

Kontraktbaseret Design. Anker Mørk Thomsen

Kontraktbaseret Design. Anker Mørk Thomsen Kontraktbaseret Design Anker Mørk Thomsen 5. marts 2014 -2 Kontraktbaseret Design Anker Mørk Thomsen 1. udgave ISBN: 9788740491500 Forord Bogen er blevet til gennem undervisning i faget Kontraktbaseret

Læs mere

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1 Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den

Læs mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA

Læs mere

Emmas og Frederiks nye værelser - maling eller tapet?

Emmas og Frederiks nye værelser - maling eller tapet? Emmas og Frederiks nye værelser - maling eller tapet? Emmas og Frederiks familie skal flytte til et nyt hus. De har fået lov til at bestemme, hvordan væggene på deres værelser skal se ud. Emma og Frederik

Læs mere

Forelæsning Uge 12 Torsdag

Forelæ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 mere

DM507 Algoritmer og datastrukturer

DM507 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 mere

Matematikkens metoder illustreret med eksempler fra ligningernes historie. Jessica Carter Institut for Matematik og Datalogi, SDU 12.

Matematikkens metoder illustreret med eksempler fra ligningernes historie. Jessica Carter Institut for Matematik og Datalogi, SDU 12. illustreret med eksempler fra ligningernes historie Institut for Matematik og Datalogi, SDU 12. april 2019 Matematiklærerdag, Aarhus Universitet I læreplanen for Studieretningsprojektet står: I studieretningsprojektet

Læs mere

Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)

Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition) Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 Datastrukturer og algoritmer Henning Christiansen henning@ruc.dk http://www.ruc.dk/~henning Formål: at kunne - forstå datastrukturer og algoritmer

Læs mere

Lagervisning. Dina Friis, og Niels Boldt,

Lagervisning. Dina Friis, og Niels Boldt, Lagervisning Dina Friis, dina@diku.dk og Niels Boldt, boldt@diku.dk 6. april 2001 Kapitel 1 Sammenfatning Dette dokument er et eksempel på en delvis besvarelse af G-opgaven stillet på Datalogi 0 2000-2001.

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Onsdag den. august 200, kl. 9.00.00 Opgave (25%) Lad A = A[] A[n] være et array af heltal. Længden af det længste

Læs mere

Multiparadigme Programmering

Multiparadigme Programmering Multi Programmering Repetition: De grundliggende r Systematisk karateristik. Paradigmesupplering. Symmetrisk multi programmering Leda eksempler på logikprogrammering kombineret med imperativ og funktionsorienteret

Læs mere

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996 Hjerner i et kar - Hilary Putnam noter af Mogens Lilleør, 1996 Historien om 'hjerner i et kar' tjener til: 1) at rejse det klassiske, skepticistiske problem om den ydre verden og 2) at diskutere forholdet

Læs mere

Introduktion til ActionScript

Introduktion 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 mere

Klasser og nedarvning

Klasser 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 mere

DM507 Algoritmer og datastrukturer

DM507 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 mere

Hvad er Objekter - Programmering

Hvad 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 mere

Klasser og Objekter i Python. Uge 11

Klasser 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 mere

SWC eksamens-spørgsmål. Oversigt

SWC 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 mere

8 Specifikation med Logiske Udtryk.

8 Specifikation med Logiske Udtryk. 8 Specifikation med Logiske Udtryk. Specifikation kontra program. Specifikation af funktioner. Specifikation af funktions-orienterede ADT-er. Integreret specifikation og program i Eiffel. Korrekthed af

Læs mere

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2013 Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Forslag til ny struktur - overblik

Forslag til ny struktur - overblik BESKRIVELSESVÆRKTØJ Forslag til ny struktur - overblik Den korte version Udarbejdet af Molio 2018-03-01 Høringsversion Molio 2018 1 Indledning og formål Molio ønsker at omlægge beskrivelsesværktøjets struktur.

Læs mere

Analyse 10. juni 2015

Analyse 10. juni 2015 Analyse 1. juni 21 Hvad har valgkampen handlet om indtil videre? Af Nicolai Kaarsen I november 214 tilkendegav danskerne, at emner som arbejdsløshed, indvandring og beskyttelse af miljøet var blandt de

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh Databasesystemer, forår 2005 IT Universitetet i København Forelæsning 3: E-R modellering 17. februar 2005 Forelæser: Rasmus Pagh Forelæsningen i dag Datamodellering hvad, hvornår, hvorfor og hvordan? Business

Læs mere

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Side 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 mere

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

Læs mere

DM507 Algoritmer og datastrukturer

DM507 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 mere

Forelæsning Uge 12 Mandag

Forelæ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

Analyse, problemområde, anvendelsesområde

Analyse, 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 mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Mat H /05 Note 2 10/11-04 Gerd Grubb

Mat H /05 Note 2 10/11-04 Gerd Grubb Mat H 1 2004/05 Note 2 10/11-04 Gerd Grubb Nødvendige og tilstrækkelige betingelser for ekstremum, konkave og konvekse funktioner. Fremstillingen i Kapitel 13.1 2 af Sydsæters bog [MA1] suppleres her med

Læs mere