2 Abstrakte datatyper.

Størrelse: px
Starte visningen fra side:

Download "2 Abstrakte datatyper."

Transkript

1 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, begreber og begrebsdannelse. Objekt-orienteret udvikling af programmet 'mini-bank'. Abstrakte datatyper udgør den allervigtigste ide i forhold til objekt-orienteret programmering. I denne forelæsning vil vi behandle emnet uafhængigt af programmeringssprog. 19

2 Topdown udvikling af programmet 'minibank' (1) Program mini-bank; Type Bankkonto-typedefinitioner af alle konto-arter; Transaktions-procedurer på de forskellige konto-typer; begin while not fyraften do begin indlæs kontotype KT; udfør en transaktion på KT For at forstå egenskaberne af et objekt-orienteret program baseret på abstrakte datatyper er det nyttigt at sætte fokus på en anden programudviklingsteknik. I denne forelæsning starter vi derfor med at studere et program udviklet ved såkaldt top-down programmering. Når et program udvikles top-down, startes med de overordnede dele af programmet, og dele deraf forfines trinvis, indtil alle detaljer er fuldt ud implementeret. En modsætning til top-down programmering kaldes bottom-up programmering. I en bottom-up teknik starter man med at udvikle detaljer, og bygger op til en helhed. Man kan naturligvis forestille sig kombinerede top-down og bottom-up teknikker. 20

3 Topdown udvikling af programmet 'minibank' (2) Eksempel på bankkonto typedefinition: check-konto = record id: KontoId; balance: Kroner; rente-sats: real; antal-udnyttede-checks: integer udfør en transaktion på kontotype KT : procedure transaktion(kt: kontotype); begin case KT of check-konto: check-konto-transaktion; aktionær-konto: aktionær-konto-transaktion; pensions-konto: pensions-konto-transakton; gevinst-konto: gevinst-konto-transaktion;... ; ; Her er vist et eksempel på en type-definition (af check-konti). Endvidere er det centrale fragment af hovedprogrammet forfinet i forhold til forrige slide. Denne forfining har vi givet status af en procedure, transaktion, som naturligvis så skal kaldes af hovedprogrammet. Procedurerne check-konto-transaktion, aktionær-konto-transaktion m.m., som kaldes i proceduren transaktion, vil vi på en naturlig måde kunne definere som lokale procedurer til transaktion. Typen med navnet kontotype kan være en enumeration type, altså en type defineret ved kontotype = (check-konto, aktionær-konto, pensions-konto, gevinst-konto,...). På næste slide viser vi en definition af proceduren check-konto-transaktion. 21

4 Topdown udvikling af programmet 'minibank' (3) procedure checkkonto-transaktion; var ck: check-konto; transaktions-procedurer på check-konto begin hent-konto(ck); indlæs transaktionstype TT; case TT of opret: opret-check-konto(ck); hæve: hæve-check-konto(ck); indsætte: indsætte-check-konto(ck); tilskriv-rente: tilskriv-rente-check-konto(ck); clear-check: clear-check(ck, check); nedlæg: nedlæg-check-konto(ck) For hver type af bank-konti BKT antager vi, at der findes en procedure BKT-kontotransaktion, som i interaktion med brugeren udfører en af flere mulige transaktioner på en konto. Vi har vist proceduren for check-konti. Man skal bemærke, at nogle af procedurerne tilsynelade mangler noget information for at kunne virke. F.eks. er det ikke oplagt, hvilke beløb der hæves og indsættes på kontoen af hhv. hæve-check-konto og indsætte-check-konto. Vi antager, at disse procedurer spørger brugeren af programmet om den mangle information. De enkelte transaktionsprocedurer antages at være lokale procedurer til den viste check-konto-transaktion, placeret under transaktions-procedurer på check-konto. Bemærk, at vi "uden videre" ved at udføre den trinvise forfinelse har fået procedurer i tre indlejrede niveauer. Dette er meget karakteristisk for denne udviklingsteknik. 22

5 Tabel med oversigt over bankkonto-operationer. Transaktions-type Kontotype Checkkonto Oprette Hæve Indsætte Rentetilskrivning hæve-checkkonto indsættecheck-konto tilskriv-rentecheck-konto opretcheck-konto... Aktionær konto Pensionskonto Gevinstkonto hæve-aktionærkonto hæve-pensionskonto hæve-gevinstkonto indsætteaktionær-konto indsættepensions-konto indsættegevinst-konto tilskriv-renteaktionær-konto tilskriv-rentepensions-konto tilskriv-rentegevinst-konto opretaktionær-konto opretpension-konto opretgevinst-konto... Med den skitserede fremgangsmåde kræves der en transaktionsprocedure pr. kontotype pr. transaktion. Dette giver et stort antal forskellige procedurer, som vist i tabellen ovenfor. Nogle af disse procedurer har sikkert lighedspunkter, som det kunne være hensigtsmæssigt at samle på ét sted. Hvis man ønsker at opretholde konto-type-definitionerne som hver sin record type, er det nødvig at have en procedure for hvert felt i tabellen. Procedurerne er struktureret således, at hver række af procedurer er lokale til den bank-konto type specifikke transaktionsprocedure. Man kan i Pascal arrangere tingene mere hensigtsmæssigt, nemlig ved at definere én type, som dækker alle konto-typer. En sådan record type skal have afdelinger med felter, der er specifikke for den enkelte konto-type. Sådanne records kaldes variantrecords. Hvis ikke man allerede har gjort det i forbindelse med "grundbegreber", anbefales det at repetere dette begreb, som bl.a. findes i Pascal. Opgave 1. Det blev observeret ovenfor, at vi primært har struktureret vores program efter rækker af operationer, og sekundært efter søjler. Demonstrer, at vi også kunne have valgt at gøre det omvt; altså primært at strukturere efter arten af vores transaktion, og sekundært efter kontotype. Skitser det resultere program. Hvilken af de to strategier (transaktions-art-først, kontotype-først) skal man foretrække, hvis vi antager, at der oftere skal tilføjes nye transaktioner nye kontotyper? Og oftere nye kontotyper nye transaktioner? Opgave 2. Antag nu, at vi definerer en variant-record, hvor felterne id og balance er fælles for alle kontotyper, mens andre felter er specifikke for de forskellige typer af bankkonti. Vi vil nu forvente, at vi kan programmere nogle af bankkonto operationerne på et "fælles niveau". Skitser nu proceduren transaktion og dets lokale procedurer, og illustrer hvor de enkelte operationer nu hører hjemme. 23

6 Strukturering af et program: Efter data eller funktion "Hvilke handlinger udfører programmet?" kontra "Hvad udfører programmet handlinger på?" Top-down udvikling af et program afspejler trinvis nedbrydning af et problem i mindre delproblemer og er som sådan med til at nedbringe "kompleksiteten" af problemløsningen. En funktionel strukturering af et program er mindre stabil en datastrukturering i programmets samlede levetid. "Rigtige systemer" har ingen top. Top-down udvikling og strukturering efter funktion virker hæmme på udvikling af genbrugelige programkomponenter. Mange af pointerne på denne slide er kondencerede udsagn fra Meyers: Object-oriented Program Construction, kapitel 4. 24

7 Definition af abstrakt datatype. En abstrakt datatype er en mængde af værdier samt en mængde af operationer på disse værdier. Et program arbejder på instanser af en ADT, ikke på typen som så. Instanser af en ADT kaldes også for objekter. Udvalgte operationer på en ADT udgør det interface, som en klient af typen benytter til manipulation af instanser af typen. En abstrakt datatype skjuler, beskytter og indkapsler data-repræsentationen for klienter af typen. Ved programændringer i interne dele af den abstrakte datatype udgør operations-interfacet en "brandmur" mellem klient og data-repræsentation. Operationsinterfacet opdeler operationerne på datatypen i interne og eksterne operationer. Mængden og naturen af interne operationer er af mindre betydning, sålænge de eksterne operationer fungerer, som det forventes (se nedenfor). Tilsvare er selve datarepræsentationen som regel skjult for klienter. Det betyder, at selv om en abstrakt datatype har en variable V som en del af sin repræsentation, kan man ikke udefra assigne til eller aflæse fra V direkte. Det skal ske gennem en operation. Det dermed skabte operations interface udgør et indirekte niveau med hensyn til både aflæsning af og skrivning i instanser af typen. Dette indirekte niveau er meget værdifuldt. Hvis der sker ændringer i typens interne dele (i interne operationer eller i repræsentation) kan man nøjes med at ændre i eksterne operationers definition, og ikke i deres anvelse rundt omkring i programmet. Det er på denne måde, at operationsinterfacet kommer til at spille rollen af en brandmur om datatypen. Spørgsmålet melder sig, om det er muligt at angive, hvordan eksterne operationer i typen skal fungere, uden at programmere dem. Det kan man godt! På dette kursus vil vi studere to forskellige måder at specificere abstrakte datatyper. Allerede i næste forelæsning vil vi introducere den første af disse. 25

8 Bestanddele af en abstrakt datatype Op1 Op2 Op3 Op4 Operationsinterface Op5 Op6 Data Repræsentation Interne operationer datarepræsentation Man kan naturligvis opfinde mange forskellige tekstuelle såvel som grafiske notationer for abstrakte datatyper. Her er bestanddelene af en abstrakt datatype illustreret grafisk. 26

9 En abstrakt datatype og dens instanser. Instans af T Instans af T Instans af T Instans af T Objekter Relation mellen instans og ADT En abstrakt datatype T Abstrakt datatype Ovenfor er abstrakte datatyper rektangulære, medens objekter har afrundede kanter. Forholdet mellem en abstrakt datatype og dets instanser er illustreret ved en pil fra instansen til dens ADT. Instanser indeholder selvfølgelig objektets tilstand (i form af variable af konkrete, primitive typer, eller af andre abstrakte datatyper). Derimod repræsenteres objekternes operationer sædvanligvis ikke i objekterne, men i den tilhøre klasse. Dette kan lade sig gøre, idet operationer er ens for alle instanser af en given abstrakt datatype. 27

10 Hvordan finder man objekter? Hvis et program modellerer en del af virkeligheden (såsom en bank), giver denne virkelighed ofte inspiration til hvilke objekter, og dermed abstrakte datatyper, et program skal indeholde. Referent system Model system Begreber Fænomener ADT-er Objekter Virkeligheden Et program Overskriften af denne slide skal læses som "hvordan finder man på, hvilke objekter der skal indgå i et program". Pointen er, at hvis programmet, man skal skrive, behandler data, som er en del af vores virkelighed, giver begreber og fænomener (ting) i denne virkelighed inspiration til abstrakte datatyper og objekter. Hvis programmet ikke retter sig mod virkeligheden, men måske internt mod maskinen, kan det være vanskeligere at finde på, hvilke abstrakte datatyper og hermed typer af objekter, der skal indgå i programmet. 28

11 Fænomener og begreber Fænomen: En ting i den virkelige (eller "tænkte") verden med individuel eksistens. Begreb: Et begreb er karakteriseret af: Navn. Intension : mængden af egenskaber, der karakteriserer begrebet. Extension : mængden af fænomener, som er dækket (beskrevet) af begrebet. Begreb Klassificering Eksemplificering Fænomen Begreber og fænomener hører til i den virkelige verden, i referent systemet. Abstrakte datatyper og objekter dannet ud fra abstrakte datatyper hører hjemme i programmeringsverdenen. Emnet på denne slide er ikke beskrevet i bøgerne, som vi benytter på dette kursus. Hvis man ønsker at vide mere henvises der til f.eks. Jørgen Lindskov Knudsen og Kristine Stougaard Thomsen "A Conceptual Framework for Programming Languages" (DAIMI PB-192, April 1985). Klassificering/eksemplificering er let at få øje på blandt begreber og fænomener i vores hverdag. Begrebet 'gravhund' kan have 'Fido' og 'King' som eksempler; omvt klassificerer 'gravhund' de nævnte to eksempler på hunde. 29

12 Begrebsdannelse. Hvordan danner man begreber ud fra andre begreber? Begreb Aggregering Begreb Begreb Begreb Begreb Dekomponering Begreb Begreb Begreb Begreb Generalisering Begreb Begreb Specialisering Begreb De fire nævnte former for begrebsdannelse forekommer i par. Aggregering samler et antal begreber i et nyt begreb. Dekomponering løsriver allerede samlede begreber i dets bestanddele. Et generaliseret begreb betegner et bredere dække begreb det specialiserede begreb. Ekstensionen af et specialiseret begreb er en delmængde af ekstensionen af det mere generelle begreb. Intensionen af det specialiserede begreb udvides typisk med nye egenskaber; det kan også forekomme, at eksistere egenskaber redefineres (pålægges bånd) når man beskriver et specialiseret begreb. Næste slide viser eksempler på de nævnte former for begrebsdannelse. 30

13 Eksempler på begrebsdannelse Aggregering Begrebet en flyvemaskine består af Et cockpit En krop Et haleparti To vinger Et antal motorer En record record f1: T1; f2: T2; f3: T3 er en aggregering af typerne T1.. T3 Specialisering Befordringsmiddel bil båd flyvemaskine personbil bus skib sejlbåd jetjager passagerfly færge DC10 Boing747 Indbyrdes generaliserede/specialiserede begreber danner et begrebshierarki. Roden i hierarkiet er det mest generelle begreb. Hvis A->B i hierarkiet er B en specialisering af A (og A en generalisering af B). Specialisering af abstrakte datatyper er et nøgleemne i objekt-orienteret programmering. Emnet vil komme til at spille en stor rolle senere i kurset. Den programmeringssproglige mekanisme, der understøtter specialisering af abstrakte datatyper, kaldes nedarvning. I senere kapitler af disse noter vil vi komme stærkt tilbage til dette. 31

14 Objekt-orienteret udvikling af 'minibank' (1) bank-konto check-konto aktionær-konto gevinst-konto ADT bank-konto id: KontoId rentesats: real balance: kroner opret (init-beløb: kroner) hæv (beløb: kroner) indsæt (beløb: kroner) tilskriv-rente () bank-konto ADT check-konto : bank-konto antal-udskrevne-checks: integer tilskriv-rente () clear-check(beløb: kroner) check-konto Tilsvare definitioner af aktionær-konto og gevinst-konto Generaliserings/specialiserings hierarkiet af bankkonto-typer fastlægges som det første. Dette er et meget vigtigt trin i designet af et hvilket som helst objekt-orienteret program, der manipulerer bank-konti. Hver af typerne, som indgår i hierarkiet, beskrives hvad angår repræsentation og operationer. Operationerne implementeres. På denne slide er implementationen af operationerne hverken vist eller antydet. Der er benyttet en pseudo-syntax for abstrakte datatyper, som ikke er en del af noget programmeringssprog. Det eneste formål med denne slide er at illustrere principperne i objekt-orienteret udvikling, som et modstykke til den allerede viste top-down udvikling af mini-bank programmet. En abstrakt datatype svarer til record-typen for bank-konto på den tidligere viste slide. Endvidere er udvælgelse af bank-konto operationen, som vist i check-konto-transaktion (se tidligere slide) implicit tilstede via mekanismer i det objekt-orienterede sprog. Vi mangler "blot" at lave en (eller flere) hovedprogrammer med en passe brugerinteraktion på instanser af typerne. Et sådan er skitseret på næste slide. 32

15 Objekt-orienteret udvikling af 'minibank' (2) procedure mini-bank-main-program var K: bank-konto begin while not fyraften do begin indlæs en bank-konto K indlæs en transaktions-type TT case TT of opret: instantiering af et nyt bank-konto objekt hæve: indlæs beløb B; K.hæv(B); indsætte: indlæs beløb B; K.indsæt(B); tilskriv-rente: K.tilskriv-rente; clear-check: indlæs beløb B; K.clear-check(B) nedlæg: nedlæg bank-konto instans ; Hovedprogrammet vist ovenfor er et af mange mulige hovedprogrammer, som kan programmeres med basis i de viste klasse-definitioner. Flere steder i ovenståe program forekommer notationen K.operation(parameter). Denne notation kaldes "dot notation", og udtryksformen forekommer i mange objektorienterede programmeringssprog. Betydningen er at operation udføres på kontoen K med den angivne parameter. I mere konventionel Pascal-stil ville man skrive operation(k, parameter). Det er værd at bemærke, at ovennævnte case-sætning kan bruges for alle typer af bankkonti forudsat at alle typer af bankkonti har det samme sæt af operationer. (Dette er ikke altid en realistisk antagelse. I så fald må man programmere en interaktion pr. kontotype). I ovenståe program vil det være op til den objekt-orienterede omgivelse at udvælge kontotype-specifikke operationer. Når, f.eks. K.indsæt(B) kaldes i ovenståe program, udvælger systemet således den indsættelsesoperation, som er relevant på netop typen af kontoen K. Dette er en meget vigtig og karakteristisk egenskab ved objekt-orienterede programmeringsomgivelser. Senere i kurset ver vi tilbage til dette under betegnelsen "dynamisk binding". 33

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

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

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

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

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

29 Opsamling af Objekt-orienteret Programmering.

29 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 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

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

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

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

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

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

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

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

Noter til Perspektiver i Matematikken

Noter til Perspektiver i Matematikken Noter til Perspektiver i Matematikken Henrik Stetkær 25. august 2003 1 Indledning I dette kursus (Perspektiver i Matematikken) skal vi studere de hele tal og deres egenskaber. Vi lader Z betegne mængden

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

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

Pointen med Funktioner

Pointen med Funktioner Pointen med Funktioner Frank Nasser 0. april 0 c 0080. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette er en

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

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

Miniprojekt i Programmering (MIP) for DAT2 og SW2, Forår 2012

Miniprojekt i Programmering (MIP) for DAT2 og SW2, Forår 2012 Miniprojekt i Programmering (MIP) for DAT2 og SW2, Forår 2012 Opgaven er delt op i 2 dele. Læs hele opgaven igennem inden I begynder. 1. Struktur I denne opgave skal der laves et system der håndterer salg

Læs mere

Appendiks 6: Universet som en matematisk struktur

Appendiks 6: Universet som en matematisk struktur Appendiks 6: Universet som en matematisk struktur En matematisk struktur er et meget abstrakt dyr, der kan defineres på følgende måde: En mængde, S, af elementer {s 1, s 2,,s n }, mellem hvilke der findes

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:

Læs mere

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

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

Å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

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

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

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

1. Intoduktion. Undervisningsnoter til Øvelse i Paneldata

1. Intoduktion. Undervisningsnoter til Øvelse i Paneldata 1 Intoduktion Før man springer ud i en øvelse om paneldata og panelmodeller, kan det selvfølgelig være rart at have en fornemmelse af, hvorfor de er så vigtige i moderne mikro-økonometri, og hvorfor de

Læs mere

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002 Databaser, efterår 2002 Databasesystemer 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

Kapitel 21: Softwarearkitektur designprincipper

Kapitel 21: Softwarearkitektur designprincipper Kapitel 21: Softwarearkitektur designprincipper Miriam Tang Jacob Jensen Lars Christensen Jacob Atzen Onsdag 9/3 Dagens program Definitioner Analyseværktøjer Designprocessen Raffinering Afrunding Design

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

En note om Programmering

En note om Programmering En note om Programmering Kurt Nørmark Institut for Datalogi Aalborg Universitet normark@cs.aau.dk Resumé Denne note er en introduktion til programmering. Formålet er at give dig et indblik i hvad programmering

Læs mere

Lektion 3. Grundlæggende programmering i VR

Lektion 3. Grundlæggende programmering i VR Lektion 3 Grundlæggende programmering i VR Plan for i dag UML Usecase diagrammer Aktivitets diagrammer Klasse diagrammer Udforskning af forskelligt VR og andre måder at udvide virkeligheden på Cardboard

Læs 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

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

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

Fra Computer til Virkelighed. TPE-kursus Elektroniske Systemer P1

Fra Computer til Virkelighed. TPE-kursus Elektroniske Systemer P1 Fra Computer til Virkelighed TPE-kursus Elektroniske Systemer P1 Fra Computer til Virkelighed En kort introduktion til kurset Systems Engineering Projektfaser Opsamling og opgave Om kurset Mål: at I lærer

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

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

It og informationssøgning Forelæsning oktober 2006 Jakob Grue Simonsen. Klasser

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

Skriftlig eksamen i Datalogi

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

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin August 2009 - juni 2010 Institution HTX Sukkertoppen/Københavns Tekniske Skole Uddannelse Fag og niveau Lærer(e)

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

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

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

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

Noter til dm529. Jonas Nyrup. 11. november 2011

Noter til dm529. Jonas Nyrup. 11. november 2011 Noter til dm529 Jonas Nyrup 11. november 2011 Indhold 1 Kravdisciplinen: Kravmodellen og Indfangning af Krav 2 1.1 (ikke)-funktionelle krav...................... 2 1.2 Kravattributter...........................

Læs mere

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN 5. OPSÆTNING DOKUMENTSKABELONER Under fanen Dok. skabeloner kan du arbejde med de skabeloner som du har i systemet, eller du kan oprette nye. I denne vejledning kigger vi på hvordan du kan tilrette selve

Læs mere

Bliv opdaget på Internettet! - 10 gode råd til at optimere din hjemmeside til søgemaskiner

Bliv opdaget på Internettet! - 10 gode råd til at optimere din hjemmeside til søgemaskiner Bliv opdaget på Internettet! - 10 gode råd til at optimere din hjemmeside til søgemaskiner Af Henrik Bro og Martin T. Hansen I har måske allerede en flot, og informativ hjemmeside. Og alle jeres kursister

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

Ugeseddel 12(10.12 14.12)

Ugeseddel 12(10.12 14.12) Ugeseddel (..) Matematisk Programmering Niels Lauritzen..7 FORELÆSNINGER I ugen. 7. gennemgik vi algoritmer til løsning af heltalsprogrammer ved hjælp af simplex algoritmen. Dette er heltalsprogrammeringsugesedlen

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer

Læs mere

Database for udviklere. Jan Lund Madsen PBS10107

Database for udviklere. Jan Lund Madsen PBS10107 Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated

Læs mere

Vejledning til 5 muligheder for brug af cases

Vejledning til 5 muligheder for brug af cases Vejledning til 5 muligheder for brug af cases Case-kataloget kan bruges på en række forskellige måder og skabe bredde og dybde i din undervisning i Psykisk førstehjælp. Casene kan inddrages som erstatning

Læs mere

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. 19 Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. Sammenligning af hashtabeller og søgetræer. 281 Hashing-problemet (1). Vi ønsker at afbilde n objekter på en tabel

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

5 Ligninger og uligheder

5 Ligninger og uligheder 5 Ligninger og uligheder Faglige mål Kapitlet Ligninger og uligheder tager udgangspunkt i følgende faglige mål: Regler for løsning af ligninger og uligheder: kende reglerne for ligningsløsning og uligheder

Læs mere

Punktmængdetopologi. Mikkel Stouby Petersen. 1. marts 2013

Punktmængdetopologi. Mikkel Stouby Petersen. 1. marts 2013 Punktmængdetopologi Mikkel Stouby Petersen 1. marts 2013 I kurset Matematisk Analyse 1 er et metrisk rum et af de mest grundlæggende begreber. Et metrisk rum (X, d) er en mængde X sammen med en metrik

Læs mere

Rettelser til Pilen ved træets rod

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

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel.

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Gruppeteori Michael Knudsen 8. marts 2005 1 Motivation For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Eksempel 1.1. Lad Z betegne mængden af de hele tal, Z = {..., 2, 1, 0,

Læs mere

Funktioner og ligninger

Funktioner og ligninger Eleverne har både i Kolorit på mellemtrinnet og i Kolorit 7 matematik grundbog arbejdet med funktioner. I 7. klasse blev funktionsbegrebet defineret, og eleverne arbejdede med forskellige måder at beskrive

Læs mere

Matema10k. Matematik for hhx C-niveau. Arbejdsark til kapitlerne i bogen

Matema10k. Matematik for hhx C-niveau. Arbejdsark til kapitlerne i bogen Matema10k Matematik for hhx C-niveau Arbejdsark til kapitlerne i bogen De følgende sider er arbejdsark og opgaver som kan bruges som introduktion til mange af bogens kapitler og underemner. De kan bruges

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

1 KlassifikationStruktur

1 KlassifikationStruktur ..27 KlassifikationStruktur. KlassifikationStruktur Klassifikation er det abstrakte objekt som samler et klassifikationssystem. Klassifikation holder klassifikationssystemets metadata. Klassifikationssystemet

Læs mere

Formål & Mål. Ingeniør- og naturvidenskabelig. Metodelære. Kursusgang 1 Målsætning. Kursusindhold. Introduktion til Metodelære. Indhold Kursusgang 1

Formål & Mål. Ingeniør- og naturvidenskabelig. Metodelære. Kursusgang 1 Målsætning. Kursusindhold. Introduktion til Metodelære. Indhold Kursusgang 1 Ingeniør- og naturvidenskabelig metodelære Dette kursusmateriale er udviklet af: Jesper H. Larsen Institut for Produktion Aalborg Universitet Kursusholder: Lars Peter Jensen Formål & Mål Formål: At støtte

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Termin Juni 119 Institution Uddannelse Fag og niveau Lærer Hold Erhvervsskolerne Aars hhx Programmering B Patrick Bøgsted Sørensen (pbs) 2k18 Forløbsoversigt (4) Forløb 1 Forløb

Læs mere

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Hassansalem.dk/delpin User: admin Pass: admin BACKEND Hassansalem.dk/delpin User: admin Pass: admin BACKEND 1/10 Indledning Dette projekt er den afsluttende del af web udvikling studiet på Erhvervs Lillebælt 1. semester. Projektet er udarbejdet med Del-pin

Læs mere

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et

Læs mere

Simulering af stokastiske fænomener med Excel

Simulering af stokastiske fænomener med Excel Simulering af stokastiske fænomener med Excel John Andersen, Læreruddannelsen i Aarhus, VIA Det kan være en ret krævende læreproces at udvikle fornemmelse for mange begreber fra sandsynlighedsregningen

Læs mere

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller. Flowchart Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller. Et godt program til at tegne flowcharts med er, EDGE-Diagrammer, eller Smartdraw.

Læs mere

Skriftlig eksamen, Programmer som Data Onsdag 6. januar Spørgsmål 1 (20 %): Regulære udtryk og automater

Skriftlig eksamen, Programmer som Data Onsdag 6. januar Spørgsmål 1 (20 %): Regulære udtryk og automater Skriftlig eksamen, Programmer som Data Onsdag 6. januar 2010 Dette eksamenssæt har 5 sider. Tjek med det samme at du har alle siderne. Eksamens varighed er 4 timer. Der er fire spørgmål. For at få fuldt

Læs mere

CCS klassifikation og identifikation

CCS klassifikation og identifikation UDVEKSLINGSSPECIFIKATION klassifikation og identifikation Udgivet 01.09.2017 Revision 0 Molio 2017 s 1 af 19 Forord Denne udvekslingsspecifikation beskriver, hvilke egenskaber for klassifikation og identifikation,

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin 2014-2015 Institution Rybners Tekniske Gymnasium Uddannelse Fag og niveau Lærer(e) Hold Htx Programmering

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

Kursusarbejde 3 Grundlæggende Programmering

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

Projekt 2.9 Sumkurver som funktionsudtryk anvendt til Lorenzkurver og Ginikoefficienter (især for B- og A-niveau)

Projekt 2.9 Sumkurver som funktionsudtryk anvendt til Lorenzkurver og Ginikoefficienter (især for B- og A-niveau) Projekt 2.9 Sumkurver som funktionsudtryk anvendt til Lorenzkurver og Ginikoefficienter En sumkurve fremkommer ifølge definitionen, ved at vi forbinder en række punkter afsat i et koordinatsystem med rette

Læs mere

Oprids over grundforløbet i matematik

Oprids over grundforløbet i matematik Oprids over grundforløbet i matematik Dette oprids er tænkt som en meget kort gennemgang af de vigtigste hovedpointer vi har gennemgået i grundforløbet i matematik. Det er en kombination af at repetere

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Villa 2. maj 202 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

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

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

Matricer og lineære ligningssystemer

Matricer og lineære ligningssystemer Matricer og lineære ligningssystemer Grete Ridder Ebbesen Virum Gymnasium Indhold 1 Matricer 11 Grundlæggende begreber 1 Regning med matricer 3 13 Kvadratiske matricer og determinant 9 14 Invers matrix

Læs mere

Introduktion. Jan Brown Maj, 2010

Introduktion. Jan Brown Maj, 2010 Jan Brown Maj, 2010 Introduktion OIOXML har eksisteret som det centrale datastandardiseringsparadigme siden 2002. Til OIOXML-konceptet er der et regelsæt betegnet OIO Navngivnings- og Deignregler (NDR),

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

Projekt 4.6 Løsning af differentialligninger ved separation af de variable

Projekt 4.6 Løsning af differentialligninger ved separation af de variable Projekt 4.6 Løsning af differentialligninger ved separation af de variable Differentialligninger af tpen d hx () hvor hx ()er en kontinuert funktion, er som nævnt blot et stamfunktionsproblem. De løses

Læs mere

Oversigt. Modellering.6. Begrebsmodellering. Begrebsapparat til OO. Fænomener og begreber. Objektorienteret modellering

Oversigt. Modellering.6. Begrebsmodellering. Begrebsapparat til OO. Fænomener og begreber. Objektorienteret modellering Oversigt Modellering Begrebsmodellering, UML og Java Begrebsapparat til objektorientering Begrebsopfattelser og -modellering Strukturer: specialisering, aggregering, associering Anvendes til organisering

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Nasser 9. april 20 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

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

Specifikationsdokument for LDAP API

Specifikationsdokument for LDAP API Nets DanID A/S Lautrupbjerg 10 DK 2750 Ballerup T +45 87 42 45 00 F +45 70 20 66 29 info@danid.dk www.nets-danid.dk CVR-nr. 30808460 Specifikationsdokument for LDAP API DanID A/S 5. juni 2014 Side 1-15

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

Dynamisk programmering. Flere eksempler

Dynamisk programmering. Flere eksempler Dynamisk programmering Flere eksempler Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z}, {A,C,G,T}, {,1} Streng = sekvens x 1 x 2 x 3... x n af tegn fra et alfabet: helloworld

Læs mere

Computerstøttet beregning

Computerstøttet beregning CSB 2009 p. 1/16 Computerstøttet beregning Lektion 1. Introduktion Martin Qvist qvist@math.aau.dk Det Ingeniør-, Natur-, og Sundhedsvidenskabelige Basisår, Aalborg Universitet, 3. februar 2009 people.math.aau.dk/

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Klassevariabler og klassemetoder Levetid for variabler og parametre Virkefeltsregler Projektopgave Kaninjagt Lommeregner (for MAT studerende) Klassevariabler og klassemetoder

Læs mere

Anden del af kapitlet fokuserer på rentebegrebet. I læseplanen fra Fælles Mål 2009 står der direkte, at eleverne skal arbejde med

Anden del af kapitlet fokuserer på rentebegrebet. I læseplanen fra Fælles Mål 2009 står der direkte, at eleverne skal arbejde med Af læseplanen for 7.-9. klassetrin fremgår det, at beskrivelse af lineære og ikke-lineære sammenhænge indgår i arbejdet med funktionsbegrebet. Det er ligeledes fremhævet, at arbejdet med funktionsbegrebet

Læs mere

Dynamisk programmering

Dynamisk 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

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

Køreplan Matematik 1 - FORÅR 2005

Køreplan Matematik 1 - FORÅR 2005 Lineær algebra modulo n og kryptologi Køreplan 01005 Matematik 1 - FORÅR 2005 1 Introduktion Kryptologi er en ældgammel disciplin, som går flere tusinde år tilbage i tiden. Idag omfatter disciplinen mange

Læs mere