Metaklasser i Smalltalk.

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Starte visningen fra side:

Download "Metaklasser i Smalltalk."

Transkript

1 8 Metaklasser i Smalltalk. Motivation Metodeopslag Simple metaklasser Mere udviklede metaklasser Klasse- og metaklassehierarkiet Instantiering og initialisering Skabelse af klasser og metoder Oversigt over generelle klasser Automatisk skabelse af access metoder Kurt Nørmark, Aalborg Universitet 11/6/96 s. 133 Dele af dette kapitel, er lige som det forrige, inspireret af Kasper Østerbye s slide, som er anvendt i en tidligere version af kurset. 133

2 Overordnet motivation. Ide: Ikke blot applikationsdata, men også programbeskrivelse og køretidsstrukturer er objekter. Hvis programbeskrivelse er objekter, kan et objekt-orienteret program reflektere om sig selv, og andre programmer. Et program (et objekt) kan undersøge sin egen beskrivelse. Eksempel: Hvilke subklasser findes der af min klasse? Man kan slå bro mellem applikationsobjekter og programbeskrivelse. Eksempel: objekter kan skabes ved at sende beskeder til klasser. Eksempel: det er muligt at ændre på klassen af objekter fra programmet. Værktøjer i en programmeringsomgivelse kan programmeres umiddelbart i det objekt-orienterede sprog. Eksempel: Det er muligt at programmere en browser i Smalltalk, idet der via objekter og beskeder er adgang til de nødvendige informationer. Kurt Nørmark, Aalborg Universitet 11/6/96 s

3 Motivation for metaklasser i Smalltalk. Ræsonnement som leder til metaklasser Objekter er instanser af klasser. Vi ønsker at også klasserne er objekter. Derved kan vi sende beskeder til klasser, herunder instantiering og initialisering. Hvad er klassen af en klasse? Svar: En metaklasse. En metaklasse er en klasse, hvis instans er en klasse. Problem: Hvad er klassen af en metaklasse? Hvis ræsonnementet ovenfor gentages får vi skabt et uendeligt antal niveauer af metaklasser. I Smalltalk skal der findes en praktisk løsning på dette problem. Kurt Nørmark, Aalborg Universitet 11/6/96 s. 135 Givet designprincipperne for Smalltalk, som vi studerede i forrige kapitel, argumenterer vi på denne side for metaklassebegrebet i Smalltalk. Vi argumenterer også for, at vi meget let (ved gentagelse af argumentet) kan komme til at introducere et uendeligt antal metaklasser (metaklasser, meta-metaklasser, metameta-meta-klasser etc.) Dette er ikke praktisk, om end ikke nødvendigvis en umulig tanke. Vi vil senere i kapitlet vende tilbage til, hvordan Smalltalk løser det omtalte problem. Men først vil vi se på, hvilke alternative tilgangsvinkler der er på problemet. 135

4 Idealet - problemet - alternativer. Idealet. Alle data er objekter. Alle objekter er beskrevet af en klasse. Problemet. Når en klasse opfattes som data, introduceres der en uendelig kæde af meta i klasser, i >= 0. Alternativer Kun applikationsdata er objekter. Alle data, bortset fra klasser, er objekter. Dette er løsningen i langt de fleste konventionelle objekt-orienterede sprog. Giv afkald på klasser: Ingen objekter er beskrevet af en klasse. (Self). Lazy metaklasser: Skab metaklasser efter behov. Lav en sløjfe: Introducer en løkke, f.eks. således at en klasse på et eller andet niveau bliver sin egen metaklasse. Kurt Nørmark, Aalborg Universitet 11/6/96 s Integer class class Integer class Integer 123 I figuren til højre betegner X class klassen af objektet refereret af X. Beskeden class er tilgængelig i Smalltalk på alle objekter. 136

5 Metodeopslag i Smalltalk. Når der sendes en besked til et objekt lokaliseres klassen af objektet, og i denne klasse, samt dennes superklasser, søges efter en metoden med en selektor der matcher beskeden. push: 5 copy En stak Objekt Array Stak copy push: instans af klasse En klasse Et objekt Metode Beskeder Objekt Klasser Besked selektorer Superklasse Besked til obj. Kurt Nørmark, Aalborg Universitet 11/6/96 s. 137 På denne slide repeterer vi metodeopslagsprincippet, og vi giver et eksempel, hvor vi sender et par beskeder til et stakobjekt. 137

6 Simpel metaklasse i Smalltalk. Alle klasser er instans af netop én metaklasse. A B C Class new instans af klasse. klasse-objekt alm objekt Metode instanser klasser metaklasse Konsekvenser: Alle klasser deler den samme protokol. Med andre ord: alle klasser har præcist den samme opførsel. Alle klasser instantieres på den måde, som Class foreskriver: med new. I klassen Class: new obj obj := self basicnew. ^ obj initialize Kurt Nørmark, Aalborg Universitet 11/6/96 s. 138 Ovenfor ser vi situationen, som den kunne se ud hvis Smalltalk kun understøttede én metaklasse. Vi ser, at alle klasser er instanser af denne. Vi har skitseret metoden new, som den kunne se ud i dette hypotetiske system. Når vi siger A new sendes beskeden new til klassen A, som er et objekt. Efter det sædvanlige metodeopslagsprincip lokaliseres metoden i klassen af dette objekt, altså i metaklassen class. Beskeden basicnew foretager selve instantieringen. obj refererer nu til en instans af A, som vi straks sender beskeden initializie. Metoden initialize lokaliseres (igen efter det sædvanlige metodeopslagsprincip) i klassen A (eller i en superklasse). Vi forestiller os her, at initialize foretager en eller anden default initialisering af instansvariable (måske ala den vi kender fra bl.a. Simula og Eiffel). Bemærk at new er ens for alle klasser, men at initialize sendes til et almindelig objekt, og derfor lokaliseres i klassehierarkiet (hvori klasserne A, B og C indgår på en eller anden måde). Initialiseringen kan derfor fint tilpasses de enkelte klasser. 138

7 Et mere udviklet metaklassebegreb. Hver klasse har sin egen metaklasse. Metaklasserne er struktureret i et klasssehierarki, der er parallelt med klassehierarkiet af de almindelige klasser. A MetaA A MetaA B C MetaB MetaC B C D MetaB MetaC MetaD Konsekvenser: Det er muligt at have klassespecifikke instantierings/initialiseringsoperationer. Date today. Date day: 8 month: 5 year: Kurt Nørmark, Aalborg Universitet 11/6/96 s. 139 Figuren til højre uddyber situationen til venstre, for så vidt angår hierarkiet af klasser og metaklasser. På næste side vil vi tage udgangspunkt i figuren til højre, og tilføje de klasser, som i Smalltalk afrunder klassehierarkiet. 139

8 Afrunding af klassehierarki og metaklassehierarki. Object er roden i klassehierarkiet. Metaklasser har ikke navne, men returneres af beskeden class sendt til en klasse. Klassen Class er superklasse for alle metaklasser. instans af klasse. klasse-superklasse Object Metaklasserne er alle instanser af klassen MetaClass specielt er metaklassen MetaClass class en instans af MetaClass. Den fælles protokol mellem metaklasserne og MetaClass er faktoriseret ud i en klasse, som hedder Behavior Behavior Class MetaClass Object class A A class Behavior class B C D B class C class D class Class class MetaClass class Kurt Nørmark, Aalborg Universitet 11/6/96 s. 140 Det er naturligt, at MetaClass er en instans af MetaClass class. Således forholder det sig også med de øvrige klasser, vi har på figuren. Men MetaClass class er også selv en instans af MetaClass. Her har vi altså introduceret en cirkularitet, som består af to klasser, som indbyrdes er instanser af hinanden. Dette er sløjfen i Smalltalk, hvormed vi undgår et uendeligt antal niveauer af metaklasser. Vi har ikke ovenfor medtaget klassen, der hedder ClassDescription. Denne klasse er en subklasse af Behavior, og både Class og MetaClass arver fra ClassDescription. Man kan altså sige, at den ovenfor viste klasse Behavior er faktoriseret ud i den egentlige klasse Behavior, og i klassen ClassDescription. Årsagen er den omfattende protokol af beskeder, som findes i Behavior og ClassDescription (se senere i dette kapitel, hvor vi giver en kort oversigt over disse). Det er instruktivt at følge instans-af relationen (den stiplede relation) så langt man kan komme. Tag f.eks. udgangspunkt i objektet 7: 7 -> SmallInteger -> SmallInteger class -> Metaclass -> Metaclass class -> Metaclass -> Metaclass class ->... Bemærk, at man kan blive ved i det uendelige, men at klasserne gentager sig selv med perioden

9 Instantiering og initialisering af objekter. Stak Stak class initialize initializewith: new with: I klassen Stak class: new ^ super new initialize with: initarray ^super new initializewith: initarray I klassen Stak: initialize elements := Aray new: 100. top := 0 initializewith: initarray elements := initarray. top := initarray size Kurt Nørmark, Aalborg Universitet 11/6/96 s. 141 Moralen er, at man ikke fra en klassemetode (en metode som bor i en metaklasse) kan tiltvinge sig adgang til det ny-allokerede objekts tilstand. Årsagen er, at instansvariable kun kan ses fra instansmetoder (metoder som bor i klassen). Derfor bliver vi nødt til at lave en instansmetode (en metoder som bor i klassen), som vi ovenfor til venstre giver selektoren initialize. Beskeden initialize sendes fluks til det nye objekt. Bemærk, at vi kan gøre dette én gang for alle, i metoderne new og with: ovenfor. Når vi fra en applikationssammenhæng skal lave nye objekter er dette meget praktisk, idet vi ikke skal sige men blot f.eks. Stak new initialize Stak new. 141

10 Skabelse af klasser og metoder. En klasse NyKlasse med instans variable a, b og c og klassevariable x, y og z i kategorien kat laves ved at sende en besked til superklassen: SuperClass subclass: #NyKlasse instancevariablenames: a b c classvariablenames: x y z pooldictionaries: category: kat En ny metode med selektor sel og krop krop i klassen C under kategorien metokat laves ved at sende en besked til C. C compile: sel krop classified: #metokat Kurt Nørmark, Aalborg Universitet 11/6/96 s. 142 Denne slide repeterer de vigtige metoder, der skaber en ny klasse og en ny metode. Førstnævnte metode bor i klassen Class. Sidstenævnte bor i klassen ClassDescription. Vi vil komme tilbage til begge lidt længere fremme i kapitlet. 142

11 Klassen Object. Klassen Objekt definerer en protokol af beskeder, som alle objekter kan svare på. Et repræsentativt udvalg af Object s protokol: class returnerer modtagerens klasse ismemberof: aclass returnerer hvorvidt dette objekt er aclass == anobject returnerer om dette obj. og anobject er identiske. copy returnerer en kopi af modtageren deepcopy shallowcopy at: index returnerer værdi af indiceret instansvariabel at: index put: anobject ændrer værdi af indiceret instansvariabel. printstring udskriver en beskrivelse af modtagerobjektet doesnotunderstand: amessage fejl: modtageren forstår ikke beskeden subclassresponsibility fejl: en subklassse skulle implementere metode Kurt Nørmark, Aalborg Universitet 11/6/96 s. 143 For detaljer se kapitel 6 af Smalltalk The Language and its Implementation. 143

12 Klassen Behavior (1). Klassen Behavior definerer en protokol af beskeder for alle objekter (klasser og metaklasser) hvoraf vi kan lave instanser. Skabelse af: Metode dictionaries. Instanser. Klassehierarki. Tilgang til og undersøgelse af Metode dictionaries. Instanser af klassen Instans- og klassevariable. Klassehierarkiet. Enumerering over subklasser og instanser. Kurt Nørmark, Aalborg Universitet 11/6/96 s. 144 Behavior har mange forskellige metodoer. Denne slide giver en overblik over protokollerne i klassen. På næste slides vises et udsnit af metoderne i Behavior, som forhåbentlig giver en god konkret fornemmelse af, hvad klassen tilbyder. Den fulde protokol er beskrevet i kapitel 16 af Smalltalk The Language and its Implementation. 144

13 Klassen Behavior (2). Eksempler på metoder i Bahaviors protokoller: addselector: selector withmethod: compiledmethod compile: code new new: aninteger superclass: aclass removesubclass: aclass selectors allinstances allinstvarnames subclasses superclass canunderstand: selector allsubclassesdo: ablock tilføj en metode til klassens metode dictionary. oversæt udtrykkene i code i denne klasse returner en instans af modtageren returnerer en instans me indicerede variable. sætter superklassen af denne klasse. fjener en subklasse af denne klasse. returnerer alle selektor i denne klasse returnerer mængden af alle instanser returnerer et array af alle instans variable returnerer mængden af alle direkte subklasser returnerer superklassen af denne klasse svarer denne klasse på besked med selector? Evaluerer blokken på alle klassens subklasser. Kurt Nørmark, Aalborg Universitet 11/6/96 s. 145 På næste side vises et repræsentativt udsnit af protokollen af ClassDescription. 145

14 Klassen ClassDescription. ClassDescription er en subklasse af Behavior, og en superklasse af Class og Metaclass. ClassDescription indeholder således ligesom Behavior en subprotokol af beskeder for alle objekter (klasser og metaklasser) hvoraf vi kan lave instanser. ClassDescription repræsenterer klasse navn, kommentar, navngivning af instansvariable samt output af klasser til filer. Et repræsentativt udvalg af ClassDescriptions protokol: name comment: astring addinstvarname: astring removeinstvarname: astring category: astring fileouton: afilestream fileoutcategory: categoryname compile: code classified: heading returnerer navnet af denne klasse returnerer kommentaren af denne klasse sætter kommentaren af denne klasse definerer en instansvariabel i denne klasse fjerne en instansvariabel i denne klasse returnere denne klasses kategori indsætter/omplacerer klassen ny kategori gem denne klasse på en fil gem klassens categoryname metoder metodeskabelse. Kurt Nørmark, Aalborg Universitet 11/6/96 s

15 Klasserne Metaclass og Class. Metaclass definerer protokollen af beskeder på alle metaklasser. subclassof: supermeta returnerer en subklasse af supermeta. Klassen Class definerer en protokol af beskeder på klasser, som ikke er metaklasser. Repræsentationen af klassevariable. Mere tilgængelige beskeder på klasser end i Behavior. addclassvarname: astring removeclassvarname: astring tilføjer en klassevariabel til denne klasse fjerner en klassevariabel fra denne klasse SuperClass subclass: #NyKlasse instancevariablenames: ivstring classvariablenames: cvstring pooldictionaries: poolvarstring category: categorystring Kurt Nørmark, Aalborg Universitet 11/6/96 s. 147 Hvis vi eksempelvis sender en besked til metaklassen A class, vil vi lokalisere den ønskede i metode i protokollen af Metaclass. Bemærk at det er i protokollen af Class at vi finder den bekendte besked subclass:instancevariablenames:classvariablenames:pooldictioraries:category 147

16 Automatisk skabelse af access metoder til instansvariable. accessingsubclass: classname instancevariablenames: instvarstring classvariablenames: classvarstring pooldictionaries: stringofpoolnames category: categoryname newclass newclass := self Subclass: classname instancevariablenames: instvarstring classvariablenames: classvarstring pooldictionaries: stringofpoolnames category: categoryname. newclass instvarnames do: [ :aname newclass compile: (aname, ^, aname) classified: #accessing. newclass compile: (aname, : arg, aname, := arg. ^ arg ) classified: #accessing]. ^newclass Object accessingsubclass: #Record instancevariablenames: top el classvariablenames: pooldictionaries: category: Example top ^top Metode i klassen Class top: arg top := arg. ^ arg Kurt Nørmark, Aalborg Universitet 11/6/96 s. 148 el ^el el: arg el := arg. ^ arg Ovenstående viser en metode i klassen Class. Det er en variation af klassedefinition, hvor accessor metoder genereres automatisk. Dette svarer altså til mulighederne i CLOS (reader, writer metoder). Beskeden instvarnames besvares af klassen Behavior (se slide om denne lidt tidligere i dette kapitel). Forneden illustreres en anvendelse på en klasse (Record) med to instansvariable. Vi ser, at der genereres fire metoder. 148

Introduktion til Smalltalk.

Introduktion til Smalltalk. 7 Introduktion til Smalltalk. Designbeslutninger. Message passing. Klassebegrebet. Metodebegrebet. Forskellige slags variable. Nedarvning og metodeopslag. Instans og klassevariable ift. nedarvning. Blokbegrebet.

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

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

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

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

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

Klasser og objekter. (Afsnit i manualen)

Klasser og objekter. (Afsnit i manualen) Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser

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

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

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

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

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

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

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

2 Funktionsorienteret programmering i Scheme.

2 Funktionsorienteret programmering i Scheme. 2 Funktionsorienteret programmering i Scheme. Lisp og Scheme. Listebegrebet i Lisp. Funktionsdefinition og lambdaudtryk. Navnebinding. Iteration. Første-klasses funktioner. Closures som klasser. Praktisk

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

DM507 Algoritmer og datastrukturer

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

Læs mere

9 Introduktion til CLOS.

9 Introduktion til CLOS. 9 Introduktion til CLOS. Klasser Metoder Generiske funktioner Slots Nedarvning Class precedence lists Klasse-redefinition og objektopdatering Ændring af objekters klassetilhørsforhold Eksempler Kurt Nørmark,

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

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

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

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

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

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

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

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

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse... 4. Styring af layout.. 5. Zoom funktioner..

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse... 4. Styring af layout.. 5. Zoom funktioner.. Indholdsfortegnelse Indholdsfortegnelse.. side 2 Adgang til webgraf 3 Opslag adresse... 4 Styring af layout.. 5 Zoom funktioner.. 6 Panorere på skærmen. 7 Information om grafikken.... 8-10 Print et udsnit.....

Læs mere

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:

Læs mere

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave

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

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

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 9 Andre designmønstre Andre designmønstre: Uforanderlig, Fluevægt, Lagdelt Initialisering, Komposit/Rekursiv Komposition, Kommando/Ændring Fremlæggelse af programmering/status

Læs mere

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON Data load og udtræk 2. iteration: implmentation (test af backend) 1 PHP mysql Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON 2 Data udtræk PHP mysql: Processen 1. Forbind til MySQL server

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 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Om binære søgetræer i Java

Om binære søgetræer i Java Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret

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

ISO 27001/27002:2013 i SecureAware Policy TNG

ISO 27001/27002:2013 i SecureAware Policy TNG ISO 27001/27002:2013 i SecureAware Policy TNG - Sådan lægger du din informationssikkerhedshåndbog om til de nye ISO- standarder 1. Opgrader til version 4.6.0 (eller senere)... 2 2. (Kun for brugere af

Læs mere

Uniq.Survey-Xact.DK. Vejledning. Rambøll Management Olof Palmes Allé 20 DK-8200 Århus N Denmark. Tlf: 8944 7800 www.ramboll-management.

Uniq.Survey-Xact.DK. Vejledning. Rambøll Management Olof Palmes Allé 20 DK-8200 Århus N Denmark. Tlf: 8944 7800 www.ramboll-management. Uniq.Survey-Xact.DK Vejledning Rambøll Management Olof Palmes Allé 20 DK-8200 Århus N Denmark Tlf: 8944 7800 www.ramboll-management.dk TU1.UT TUIndledningUT TU2.UT TUKlargøring TU3.UT TUOprettelse TU4.UT

Læs mere

Kursus navn: Indledende programmering Kursus nr. 02101

Kursus navn: Indledende programmering Kursus nr. 02101 Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning

Læs mere

Lær Python - Dag 4, modul 2 Objektorienteret programmering

Lær Python - Dag 4, modul 2 Objektorienteret programmering Lær Python - Dag 4, modul 2 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Metoder Metoder Indtil videre har vi kun brugt objekter til at gemme værdier.

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

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

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

Leif Smidt E-MAIL GODT IGANG MED IPAD - IOS 9

Leif Smidt E-MAIL GODT IGANG MED IPAD - IOS 9 Leif Smidt E-MAIL GODT IGANG MED IPAD - IOS 9 KAPITEL E-MAIL På din hjemmeskærm finder du en app ved navn Mail. Appen er et mailprogram, som kan vise og håndtere dine e-mails på en enkel og overskuelig

Læs mere

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

Læs mere

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger

Læs mere

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

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

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

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige

Læs mere

Prepress Serigrafi Grafisk Tekniker Grundforløb. Opgave 3: T shirt i flere farver

Prepress Serigrafi Grafisk Tekniker Grundforløb. Opgave 3: T shirt i flere farver Grafisk Tekniker Grundforløb Opgave 3: T shirt i flere farver Temaet for denne opgave er frit dog skal motivet være enkelt i sin udformning. Du skal arbejde med et motiv i forskellige farver, der skal

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

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

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

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

Nyhedsmodul brugermanual

Nyhedsmodul brugermanual Nyhedsmodul brugermanual version 6 Indholdsfortegnelse 1. Kategorier... 02 1.1. Hvordan opretter jeg en kategori?... 02 1.2. Hvordan viser jeg en nyhedskategori på websitet?... 02 2. Oprettelse/redigering

Læs mere

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser

Læs mere

Virkefeltsregler i Java

Virkefeltsregler i Java Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten

Læs mere

Lectio. Overgang til Lectio Eksamensmodul. MaCom A/S Vesterbrogade 48, 1. 1620 København V Telefon: 33 79 79 00

Lectio. Overgang til Lectio Eksamensmodul. MaCom A/S Vesterbrogade 48, 1. 1620 København V Telefon: 33 79 79 00 Lectio Overgang til Lectio Eksamensmodul 1992-2008 MaCom A/S MaCom A/S Vesterbrogade 48, 1. 1620 København V Telefon: 33 79 79 00 Telefax: 33 79 79 84 E-mail: mail@macom.dk Internet: www.macom.dk Forord

Læs mere

DM507 Algoritmer og datastrukturer

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

Læs mere

Mit Sygefravær. Introduktion til den borgervendte selvbetjeningsløsning. Marts 2016. Version 1.3

Mit Sygefravær. Introduktion til den borgervendte selvbetjeningsløsning. Marts 2016. Version 1.3 Mit Sygefravær Introduktion til den borgervendte selvbetjeningsløsning Marts 2016 Version 1.3 Indholdsfortegnelse Forord... 4 Når en borger bliver sygemeldt... 5 Brev til den sygemeldte om opgaver i Mit

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

Den automatiske sanseforventningsproces

Den automatiske sanseforventningsproces Den automatiske sanseforventningsproces Af forsknings- og institutleder Flemming Jensen Det kunne ikke gøres enklere. Jeg ved, at for nogle ser meget teoretisk ud, mens det for andre måske endda er for

Læs mere

Introduktion til ActionScript, fortsat

Introduktion til ActionScript, fortsat Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling

Læs mere

IT Support Guide. Installation af netværksprinter (direkte IP print)

IT Support Guide. Installation af netværksprinter (direkte IP print) IT Support Guide Denne guide er hentet på www.spelling.dk Program: Microsoft Windows Vista Program sprog version: ENG (US) Guide emne: Installation af netværksprinter (direkte IP print) Publikationsnr.:

Læs mere

Systemkald DM14. 1. Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111

Systemkald DM14. 1. Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111 DM14 1. Obligatoriske opgave Systemkald Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111 Side 1 af 5 Intro: Formålet med opgaven at et lave en system kald

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

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Klasser. Grundlæggende Programmering med Projekt. Peter Sestoft Tirsdag 2. september 2008. (Tak til Jakob Bardram for nogle slides) Dagens begreber

Klasser. Grundlæggende Programmering med Projekt. Peter Sestoft Tirsdag 2. september 2008. (Tak til Jakob Bardram for nogle slides) Dagens begreber Klasser Grundlæggende Programmering med Projekt Peter Sestoft Tirsdag 2. september 2008 (Tak til Jakob Bardram for nogle slides) Dagens begreber Felt (field) Metode (method) Parameter (parameter) Sætning,

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

Tirsdagssejladser 2011 -Brugervejledning til Sailwave

Tirsdagssejladser 2011 -Brugervejledning til Sailwave Tirsdagssejladser 2011 -Brugervejledning til Sailwave Dette dokument beskriver brugen af Sailwave i forbindelse med tirsdagssejladser i Kerteminde Sejlklub. Pt anvendes Sailwave til resultatberegning efter

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

Lær Python - Dag 4, modul 1 Objektorienteret programmering

Lær Python - Dag 4, modul 1 Objektorienteret programmering Lær Python - Dag 4, modul 1 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Objektorienteret programmering Hvad er objektorienteret programmering? Vi

Læs mere

Øvelse 10. Tobias Markeprand. 11. november 2008

Øvelse 10. Tobias Markeprand. 11. november 2008 Øvelse 10 Tobias Markeprand 11. november 2008 Kapitel 10 i Blanchard omhandler vækst, dvs. økonomien på det lange sigt. For at kunne foretage analyser af vækst og dets årsager må man kunne sammenligne

Læs mere

Brug Photo Story 3 en let introduktion

Brug Photo Story 3 en let introduktion Brug Photo Story 3 en let introduktion Denne vejledning forudsætter at programmet Photo Story 3 er installeret på din computer. Se andetsteds for vejledning i at installere programmet, der kan findes gratis

Læs mere

Test af It-komponent

Test af It-komponent Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side

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

Håndtering af stof- og drikketrang

Håndtering af stof- og drikketrang Recke & Hesse 2003 Kapitel 5 Håndtering af stof- og drikketrang Værd at vide om stof- og drikketrang Stoftrang kommer sjældent af sig selv. Den opstår altid i forbindelse med et bestemt udløsningssignal

Læs mere

HVORDAN KAN REFERENCEARKITEKTUR IMPLEMENTERES I EN STANDARDISERET DOKUMENTATION?

HVORDAN KAN REFERENCEARKITEKTUR IMPLEMENTERES I EN STANDARDISERET DOKUMENTATION? HVORDAN KAN REFERENCEARKITEKTUR IMPLEMENTERES I EN STANDARDISERET DOKUMENTATION? Strukturering af dokumentation er et must, hvis der skal være genkendelighed og ensartethed i dokumentationen. Det samme

Læs mere

Dannelse af PDF-dokumenter

Dannelse af PDF-dokumenter Dannelse af PDF-dokumenter Indhold Generere PDF-dokumenter... 2 Håndtering af PDF-dokumentet... 6 Hvordan indsætter man sidetal i PDF-dokumentet?... 6 Hvordan laver man bookmarks i PDF-dokumentet?... 7

Læs mere

Skriftlig eksamen, Programmer som Data 2. 3. januar 2014

Skriftlig eksamen, Programmer som Data 2. 3. januar 2014 Skriftlig eksamen, Programmer som Data 2. 3. januar 2014 Dette eksamenssæt har 5 sider. Tjek med det samme at du har alle siderne. Eksamenssættet udleveres elektronisk fra kursets hjemmeside torsdag 2.

Læs mere

Vejledningtiladministratorbrugerfladen

Vejledningtiladministratorbrugerfladen Vejledningtiladministratorbrugerfladen Indholdsfortegnelse Quickguide, brug af EQ-i 2.0 testportalen... 2 Kontakt... 2 Ændring af kodeord samt My Dashboard... 3 EQ-i 2.0... 4 Menuoversigt... 5 1. Invite...

Læs mere

Aalborg Universitet. Økonomisk ulighed og selvværd Hansen, Claus Dalsgaard. Publication date: 2011

Aalborg Universitet. Økonomisk ulighed og selvværd Hansen, Claus Dalsgaard. Publication date: 2011 Aalborg Universitet Økonomisk ulighed og selvværd Hansen, Claus Dalsgaard Publication date: 2011 Document Version Tidlig version også kaldet pre-print Link to publication from Aalborg University Citation

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

RefWorks Workshop Medicinsk Bibliotek Aalborg Universitetshospital. Oprettelse af konto/log in... 2. RefWorks-databasen... 2

RefWorks Workshop Medicinsk Bibliotek Aalborg Universitetshospital. Oprettelse af konto/log in... 2. RefWorks-databasen... 2 RefWorks vejledning Indhold Oprettelse af konto/log in... 2 RefWorks-databasen... 2 Import af referencer... 2 Pubmed... 3 Embase/Psycinfo/Medline (Ovid)... 4 Cinahl... 5 RefGrab-it... 6 Organisering af

Læs mere

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11 DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

dmasark Aflevering - Uge 50

dmasark Aflevering - Uge 50 dmasark Aflevering - Uge 50 Michael Lind Mortensen, 20071202, DAT4 Michael Dahl, 20073943, DAT4 Katalog: http://www.daimi.au.dk/ u073943/dmasark/uge6/ 13. december 2007 Indhold 1 PingClient implementation

Læs mere

Brug af Archive-funktion i SportIdent (baseret på version 10.3 af SI-programmerne)

Brug af Archive-funktion i SportIdent (baseret på version 10.3 af SI-programmerne) Brug af Archive-funktion i SportIdent (baseret på version 10.3 af SI-programmerne) Formål: Ved at anvende arkiv-funktionen kan arrangørerne ved et træningsløb uden tilmeldinger eller ved åbne baner hurtigt

Læs mere

Sådan får du Salmebogen på CD-ROM til at fungere i Internet Explorer 7 både under Windows XP og Windows Vista

Sådan får du Salmebogen på CD-ROM til at fungere i Internet Explorer 7 både under Windows XP og Windows Vista Sådan får du Salmebogen på CD-ROM til at fungere i Internet Explorer 7 både under Windows XP og Windows Vista Beskrivelse af fejlen Salmebogen på CD-ROM har visse problemer med at fungere i Internet Explorer

Læs mere

Newtons afkølingslov

Newtons afkølingslov Newtons afkølingslov miniprojekt i emnet differentialligninger Teoretisk del Vi skal studere, hvordan temperaturen i en kop kaffe aftager med tiden. Lad T ( t ) betegne temperaturen i kaffen til tiden

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

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen. Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19

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

Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.:

Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.: Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.: Kategoriseringer uden ABC-kategorier Krydstabel (trebenede) Beregnede og avancerede

Læs mere

BRP 6.9.2006 Kursusintroduktion og Java-oversigt

BRP 6.9.2006 Kursusintroduktion og Java-oversigt BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:

Læs mere

Højskolepædagogik set fra en gymnasielærers synsvinkel

Højskolepædagogik set fra en gymnasielærers synsvinkel Højskolepædagogik set fra en gymnasielærers synsvinkel Kommentarer af gymnasielærer, Kasper Lezuik Hansen til det Udviklingspapir, der er udarbejdet som resultat af Højskolepædagogisk udviklingsprojekt

Læs mere

DANSK LYS: Lys i byens rum Lyspunkter Light Spots 02.12.2013

DANSK LYS: Lys i byens rum Lyspunkter Light Spots 02.12.2013 DANSK LYS: Lys i byens rum Lyspunkter Light Spots 02.12.2013 Projektleder: Arkitektskolen Aarhus, Kätte Bønløkke og Jan Fugl Partnere: Kollision A/S, out-sider a/s, Martin Professional, Århus Kommune,

Læs mere