Videregående Programmering for Diplom-E Noter
|
|
- Simone Freja Klausen
- 8 år siden
- Visninger:
Transkript
1 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å have metoder til alle typiske opgaver. Et eksempel på dette er funktionen 'vis', der udskriver værdien af attributterne på skærmen. I bil/person/elev-eksemplet ser dette sådan ud: bil person vis vis elev vis Klassen 'bil', 'person' og 'elev' har hver sin vis-funktion. Men for at kunne virke, må disse visfunktioner "samarbejde". F.eks. må vis-funktionen i klassen 'person' overlade en del af sit arbejde til vis-funktionen i klassen 'bil' - nemlig den del der går ud på at vise oplysninger om personens bil. Det samme kan siges om vis-funktionen i klassen 'elev'. Man kalder denne form for samarbejde for uddelegering (eng.: propagation). Uddelegering i denne forstand er karakteristisk for objektorienterede programmer. ehovet for uddelegering kommer af, at attributterne i en klasse jo normalt er specificeret private - de kan defor kun tilgås gennem metoder. I det følgende ser vi nærmere på, hvordan uddelegering rent teknisk foregår for køber/sælgerrelationens og arve-relationens vedkommende. 1.1 Uddelegering i køber/sælger-relationen Realiseringen i C++ af den ovenfor viste køber/sælger-relation mellem klasserne 'person' og 'bil' ser sådan ud: class bil class person 1
2 //data //data private: private: bil denne_persons_bil; //metoder //metoder void vis(); void vis(); ; ; Køber/sælger-relationen mellem 'person' og 'bil' er altså realiseret ved at 'person' indeholder et attribut af typen 'bil' - d.v.s. et objekt af typen bil. Dette objekt ved navn 'denne_persons_bil' udgør sammenhængen mellem de 2 klasser. En skabelon for vis-funktionen i klassen 'person' ser sådan ud: void person::vis() denne_persons-bil.vis(); //udskriften af attributten //'denne_persons_bil' uddelegeres til bil- //klassens egen vis-funktion cout<< //udskrift af de øvrige attributter Den indbyrdes rækkefølge mellem disse 2 dele af funktionen kan naturligvis vælges anderledes. Uddelegeringen foregår altså gennem det eller de involverede objekt(er) - i dette tilfælde 'denne_persons_bil'. Generelt kan man formulere dette princip på flg. måde: 's vis-funktion uddelegerer til 's vis-funktion vis _objekt vis uddelegering: _objekt.vis() 2
3 1.2 Uddelegering i arve-relationen Realiseringen i C++ af den ovenfor viste arve-relation mellem klasserne 'person' og 'elev' ser sådan ud: class person class elev: public person //data //data private: private: bil denne_persons_bil; //metoder //metoder void vis(); void vis(); ; ; rve-relationen mellem 'elev' og 'person' er altså realiseret ved at 'elev' direkte specificerer arven i sin definition. En skabelon for vis-funktionen i klassen 'elev' ser sådan ud: void elev::vis() person::vis(); //udskriften af den del af objektet, der er //arvet fra klassen 'person' uddelegeres til //vis-funktionen i klassen 'person' cout<< //udskrift af de øvrige attributter Den indbyrdes rækkefølge mellem disse 2 dele af funktionen kan naturligvis vælges anderledes. Da et objekt af klassen 'elev' direkte indeholder de arvede attributter og metoder fra klassen 'person', skal vis-funktionen i klassen 'person' her ikke kaldes "gennem" et objekt - det hele foregår jo indenfor ét og samme objekt. I stedet er vi nødt til at angive den uddelegerede vis-funktions scope: person::vis(). Ellers ville systemet opfatte det som om funktionen "kaldte sig selv". Generelt kan man formulere dette princip på flg. måde: 3
4 C's vis-funktion uddelegerer til 's vis-funktion vis uddelegering: ::vis() C vis Løsningsforslaget i afsnit 3.4 til opgave viser et eksempel på uddelegering både i køber/sælger-relationen og i arve-relationen. 2. utomatisk uddelegering mellem constructorer En constructor er en metode, der tjener til at initialisere objekter. ehovet for uddelegering er derfor nøjagtigt det samme for constructorer som for andre metoders vedkommende. Som bekendt kaldes constructorer automatisk ved oprettelsen af objekter. Derfor foretages uddelegeringen også automatisk når det er constructorer, det drejer sig om. Dette foregår således: 2.1 køber/sælger-relationen 's constructor uddelegerer automatisk til 's constructor constructor _objekt constructor Et objekt indeholder af klassen indeholder iflg. 's definition et objekt af klassen ("_objekt"): 4
5 () () objekt_ objekt af klassen Når et objekt af klassen oprettes, kaldes automatisk 's constructor. Denne constructor sætter objektet op med de værdier, der er specificeret i constructoren. En del af dette arbejde går ud på at sætte det indeholdte objekt ('objekt_') op - denne del af arbejdet uddelegeres automatisk til 's constructor. Hvis klassen 's constructor har en parameterliste, skal værdier svarende til denne parameterliste "stilles til rådighed" for det automatiske kald. Til dette benyttes en initialiseringsliste i 's constructor: class class objekt_; (int i, char c); (int i, char c); ; ; ::(int i, char c):objekt_(i,c) Med fede typer er vist constructoren 's initialiseringsliste - i dette tilfælde navnet på det objekt, der skal initialiseres (objekt_) og en parameterliste med de værdier, dets constructor skal have som aktuelle parametre (i og c). Denne initialiseringsliste bevirker, at inden 's constructor udføres, så vil automatisk 's constructor udføres på det anførte objekt med de anførte værdier. I det viste eksempel er -constructorens parameterværdier hentet ind som parametre i - constructoren. -constructoren sender på den måde blot sine modtagne parameterværdier videre til -constructoren. -constructoren kan naturligvis herudover have parametre "til eget brug". 5
6 -constructorens aktuelle parametre i initialiseringslisten behøver ikke nødvendigvis komme fra -constructorens parametre selvom dette vil være det normale. 2.2 arve-relationen C's constructor uddelegerer automatisk til 's constructor constructor C constructor P.g.a. arven fra indeholder et objekt af klassen C både en del, der svarer til 's definition og en del, der svarer til C's egen definition: (C) indhold svarende til 's definition indhold svarende til C's definition objekt af klassen C Når et objekt af klassen C oprettes, kaldes automatisk C's constructor. Denne starter med automatisk at uddelegere opsætningen af 's del af objektet til 's constructor. Herefter sætter den selv resten af objektet op, d.v.s. den del der svarer til C's egen definition. Hvis klassen 's constructor har en parameterliste, skal værdier svarende til denne parameterliste "stilles til rådighed" for det automatiske kald. Til dette benyttes en initialiseringsliste i C's constructor: 6
7 class class C (int i, char c); C(int i, char c); ; ; C::C(int i, char c):(i,c) Med fede typer er vist constructoren 's initialiseringsliste - i dette tilfælde navnet på den klasse, der arves fra og en parameterliste med de værdier, dens constructor skal have som aktuelle parametre (i og c). Denne initialiseringsliste bevirker at inden C's constructor udføres, så vil 's constructor automatisk blive udført således at 's del af objektet sættes op med de anførte værdier. I det viste eksempel er -constructorens parameterværdier hentet ind som parametre i C- constructoren. C-constructoren sender på den måde blot sine modtagne parameterværdier videre til -constructoren. C-constructoren kan naturligvis herudover have parametre "til eget brug", d.v.s. til den del af objektet der ikke er arvet. 3. cceskontrol ved arv Ved nedarvning kan specificeres en kollektiv acceskontrol på 3 måder: OMT: private protected public C++: 7
8 class : private class : protected class : public eller blot: class : Denne form for acceskontrol påvirker ikke den klasse, der specificerer den, men dens omgivelser (d.v.s. dens klienter og afledte klasser ). Klassen ovenfor påvirkes altså ikke af den anførte acceskontrol. Den acceskontrol, en klasse specificerer ved arv, påvirker muligheden for "udefra" at referere til det, klassen har arvet. I eksemplet ovenfor drejer det sig m.a.o. om omgivelsernes muligheder for "gennem" klassen at referere til klassen 's attributter og metoder. Her gælder den regel, at en klasses egne interne specifikationer af acceskontrol for attributter og metoder aldrig kan svækkes gennem specifikationen af den kollektive acceskontrol ved arv. 3.1 private arv Hverken klienter eller afledte klasser til den specificerende klasse kan referere til klassemedlemmer i dennes baseklasse: private D her kan ikke refereres til C her kan ikke refereres til private arv er default. Hvis man ikke eksplicit specificerer acceskontrollen ved arv, er der altså tale om private arv. 3.2 protected arv 8
9 fledte klasser til den specificerende klasse kan referere til klassemedlemmer i dennes baseklasse i overensstemmelse med baseklassens interne acceskontrol-specifikationer. Klienter til den specificerende klasse kan ikke referere til klassemedlemmer i baseklassen: protected D her kan ikke refereres til C her kan refereres til (public og protected medlemmer) Muligheden for at tilgå 's klassemedlemmer "gennem" gælder ikke kun klassen C, men hele klassehierarkiet under - sålænge der ikke arves private. 3.3 public arv åde klienter og afledte klasser til den specificerende klasse kan referere til klassemedlemmer i dennes baseklasse i overensstemmelse med baseklassens interne acceskontrol-specifikationer. 9
10 public D her kan refereres til (public medlemmer) C her kan refereres til (public og protected medlemmer) 4. Virtuel baseklasse Multipel arv medfører repeteret arv, hvis de multiple baseklasser igen arver fra en fælles baseklasse: i C D ::i C::i (D) 10
11 Repeteret arv betyder, at en klasse arver ét og samme klassemedlem ad flere veje samtidigt, som det f.eks. er tilfældet med attributten i i klassen D ovenfor. Et objekt af klassen D vil derfor have 2 forekomster af i, hvilket medfører at flg. er ulovligt: D obj_d; obj_d.i = 0; //flertydigt, da 2 attributter hedder 'i' Som regel er repeteret arv uønsket, og man kan undgå det ved at specificere baseklasserne virtual ved multipel arv: class D: virtual public, virtual public C Dette har den effekt, at klassemedlemmer fra fælles baseklasser, der arves ad flere veje, ikke dubleres når der oprettes objekter. 5. friend-specifikationen ved arv Med friend-specifikationen kan en klasse undtage én eller flere klasser og/eller funktioner fra de specificerede acceskontroller i klassen: friend class klassen kan tilgå alle 's klassemedlemmer, uanset acceskontrol En friend-status kan ikke arves: friend class C 's friend-status arves ikke 11
12 Klassen C er i eksemplet herover underlagt de accekontroller, der internt er specificeret.i klassen. Omvendt arves selve friend-specifikationen: friend class C klassen kan tilgå den del af C's klassemedlemmer, der arves fra, uanset acceskontrollen i Enhver friend-specifikation betragtes altså som knyttet til den specificerende klasse. Den arvede friend-specifikationen giver derfor kun rettigheder m.h.t. baseklassen - ikke m.h.t. den afledte klasse. 6. Typeskabeloner (templates) En abstrakt datatype kendes på dens metoder (mulige operationer) - den tillader/kræver m.a.o. en abstrahering fra datas implementering. Ofte er det naturligt også at kunne abstrahere fra datas type. Det gælder f.eks. når den abstrakte datatype er en datastruktur beregnet på lagring af dataelementer. En stak f.eks. virker på samme måde uanset om dens elementer er af den ene eller anden type. Den logiske konsekvens af begrebet abstrakt datatype er m.a.o. muligheden for en vis frigørelse fra den stærke typebinding, der ellers har kendetegnet de fleste højniveau-programmeringssprog i mange år. C++ tilbyder 2 muligheder for en frigørelse fra den traditionelle typebinding: typeskabeloner (templates) Typer kan parameteroverføres til en datastruktur. Én og samme definition af datastrukturen kan derfor bruges til at oprette f.eks. en datastruktur af heltal og en datastruktur af strenge. 12
13 polymorfi Objekter indenfor samme arvehierarki kan uanset deres type (klasse) refereres med en pointer til arvehierarkiets baseklasse. Man kan derfor gemme objekter af alle typerne i arvehierarkiet i samme datastruktur. Forskellen mellem typeskabeloner og polymorfi er, at typeskabeloner binder alle elementer i en datastruktur til at være af samme type - det gør polymorfi ikke. Til gengæld sætter typeskabeloner ingen grænser for hvilke typer, der kan vælges - det gør polymorfi, da kun klasser indenfor det pågældende arvehierarki kan vælges. I det følgende skal vi se nærmere på, hvordan man arbejder med typeskabeloner (templates) i C++. Som eksempel benytter vi en klasse stak, hvor stakelementerne ikke er bundet til en bestemt type i definitionen. 6.1 Definition af klasser Når man definerer en klasse, hvori der indgår en ikke fastlagt type (parameteriseret type), skal denne erklæres i klassens hovede på flg. måde: template <class T> class ; etydningen af denne definition er, at 'T' defineres som en typeparameter, der kan bruges inde i definitionen af klassen. Dette betyder, at 'T' inde i klassen kan benyttes som synonym for en type. Definitionen af 'T' som typeparameter er lokal for klassen. Definitionen af en stakklasse kan foregå sådan: template <class T> class stak //definition af en klasse "stak", hvor T //er typeparameter T data[size]; //definition af en tabel "data" med "size" //elementer af typen T int staktop; //index til staktop-elementet stak(); void push(t i); T pop(); //konstruktør, sætter staktop til -1 svarende //til tom stak //lægger værdien 'i' på stakken ("pusher i") //tager øverste element af stakken og returnerer //dets værdi ("popper stakken") 13
14 ; void vis(); //viser hele stakken på skærmen Navnet på typeparameteren kan være enhver lovlig identifikator. Iflg. dokumentationen af C++ kan defineres flere typeparametre samtidigt, men dette fungerer ikke stabilt - sandsynligvis p.g.a. en fejl i compileren. 6.2 Definition af metoder Når en metode fra en klasse med typeparameter defineres udenfor sin klasse, skal typeparameteren igen defineres. Hvis klassen fra før har en metode med prototype void F(); ser definitionen sådan ud: template <class S> void <S>::F() Dette skal forstås således: <S> dette er den måde klassen 's scope betegnes på fordi der indgår en typepartameter nødvendig template <class S> dette er en erklæring af typeparameteren S - fordi typeparameteren indgår i klassens scope For at illustrere at erklæringen af en typeparameter er lokal for den umiddelbart efterfølgende programdel (f.eks. en klasse eller en funktion), er her valgt navnet S. Definitionen af metoderne i klassen 'stak' kan ske således: template <class T> stak<t>::stak() staktop=-1; template <class T> void stak<t>::push(t i) data[++staktop]=i; 14
15 template <class T> T stak<t>::pop() return data[staktop--]; template <class T> void stak<t>::vis() cout<<endl<<"stakkens indhold: "; for (int i=0; i<=staktop; i++) cout<<data[i]<<" "; 6.3 Oprettelse af objekter Ved oprettelsen af objekter skal angives en type svarende til typeparameteren. Dette sker således: <int> objekt_; Her oprettes objektet 'objekt_' af klassen, og typeparameteren bindes for dette objekts vedkommende til typen int. Et hovedprogram, der bruger klassen 'stak', kan se således ud: void main() stak<int> heltalsstak; stak<char> tegnstak; stak<string> strengstak; //opret en stak, hvor elementværdierne er heltal //opret en stak, hvor elementværdierne er tegn //opret en stak, hvor elementværdierne er strenge heltalsstak.push(2); heltalsstak.push(4); heltalsstak.vis(); tegnstak.push('a'); cout<<endl<<heltalsstak.pop(); strengstak.push("c"); strengstak.push("defg"); tegnstak.pop(); tegnstak.vis(); strengstak.vis(); 15
16 6.4 Operationer på attributter defineret med typeparametre Når attributter defineres med typeparametre, sætter dette en grænse for hvilke operationer, man kan foretage på disse attributter. Man kan jo ikke foretage operationer, der kun er defineret for bestemte typer. I praksis kan man foretage flg. operationer: - tildeling - parameteroverførsel - i/o med << og >>, forudsat disse operationer er defineret for den parameteroverførte type Især skal man bemærke, at man ikke kan foretage sammenligninger med operatorerne == og!= selvom disse operationer synes logisk veldefineret uanset typen. 16
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 mere30 Objekt-orienteret Programmering i Andre Sprog.
30 Objekt-orienteret Programmering i Andre Sprog. Abstrakte datatyper i Pascal. Abstrakte datatyper i Modula og Ada. C++ Overordnet organisering Instantiering og initialisering. Interfaces. Nedarvning.
Læs mereObjektorientering. Programkvalitet
1 PROSA-Bladet nr. 4 1993 Objektorientering = Programkvalitet? Af Finn Nordbjerg, adjunkt ved Datamatikeruddannelsen, Aalborg Handelskole 1. Indledning Objektorientering er blevet et edb-fagets mest udbredte
Læs mereProgrammering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
Læs mereSWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereMETODER ARV KLASSER. Grundlæggende programmering Lektion 5
METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen
Læs mere18 Multivejstræer og B-træer.
18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.
Læs mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereUgeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereObjektorienteret design med arv og polymorfi:
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Objektorienteret design med arv og polymorfi: Substitutionsprincippet Composite Design Pattern Finn Nordbjerg Side 1 Objektorienteret
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSWC Elementer i klassedefinition
SWC Elementer i klassedefinition Indhold Eksempel... 2 Karakteristika for en klasse... 3 Karakteristika for et instance field... 4 Karakteristika for en constructor... 5 Karakteristika for en property...
Læs mereRename og redefine. Abstrakte klasser. Dynamisk binding.
11 Nedarvning II. Enkeltnedarvning i Eiffel. Rename og redefine. Initialisering af superklasse-dele af et objekt. Interfaces til klienter og subklasser. Typesammenlignelighed og polymorfi. Abstrakte klasser.
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning
Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:
Læs mereJavaScript. nedarvning.
JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mere19 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 mereDatalogi 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 mereSoftware Construction 1. semester (SWC) januar 2014 Spørgsmål 1
Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mereKAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE
Kapitel 8: Oprettelse og administration af dokumentgodkendelse KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE Målsætninger Introduktion Målsætningerne er at: Oprette dokumentgodkendelsessystemets
Læs mereDM507 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 mereDM01 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 mereEksamensopgaver datalogi, dlc 2011 side 1/5. 1. Lodtrækningssystem
Eksamensopgaver datalogi, dlc 2011 side 1/5 1. Lodtrækningssystem Der skal fremstilles et program, som kan foretage en lodtrækning. Programmet skal kunne udtrække en eller flere personer (eller andet)
Læs mereEksamensadministration, EUD, udtrækning af elever Sidst opdateret 16-03-2010/version 1.3 /UNI C/Steen Eske Christensen
Eksamensadministration, EUD, udtrækning af elever Sidst opdateret 16-03-2010/version 1.3 /UNI C/Steen Eske Christensen Indhold Ændringer Centrale begreber Generelt Arbejdsgange mv. Vejledningen består
Læs mereIndivid og fællesskab
INDIVIDUALITET I DET SENMODERNE SAMFUND Individ og fællesskab - AF HENNY KVIST OG JÓRUN CHRISTOPHERSEN I forholdet mellem begreberne individ og fællesskab gælder det til alle tider om at finde en god balance,
Læs mereC++ Programmering V. 0.9991
Indholdsfortegnelse 1. Indledning...3 1.2 Forudsætninger:...3 1.3 Udeståender...4 1 Start med C++...5 1.1 Det første C++ program...5 1.2 Formatering af output...8 1.3 Kommentarer...9 1.4 Funktions prototyper...9
Læs mereKlasser og objekter. (Afsnit i manualen)
Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser
Læs mereCCS Formål Produktblad December 2015
CCS Formål Produktblad December 2015 Kolofon 2015-12-14
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Sommer 1999 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 15% Opgave 2 15% Opgave 3 8% Opgave
Læs meredcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger
Læs mereREGLER FOR DANMARKSRANGLISTEN FOR SENIORER
REGLER FOR DANMARKSRANGLISTEN FOR SENIORER 1. Licens a. For at være omfattet af Danmarksranglisten for seniorer skal en spiller være registreret med spillerlicens og tilhørende licensnummer hos DSqF. b.
Læs mereclass subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.
Programmering 1999 Forelæsning 11, tirsdag 5. oktober 1999 Oversigt Klasse-hierarkier: superklasser og subklasser Nedarvning Polymorfi Programmering 1999 KVL Side 11-1 Hierarkier En klasse repræsenterer
Læs mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 4 18. september 2009 Pointers Referenceparametre 2 / 19 Pointers 1 Pointers 2 Referenceparametre Pointers Referenceparametre 3 / 19 Husk: En variabel er en navngiven plads i computerens
Læs mereKlasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22.
Klasser og Objekter i Python Uge 46 Learning Python: kap 15-16, 19-22. Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. En kage form Klassens
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereKursus 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 mereUdvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Abstrakte klasser.
10 Nedarvning I. Udvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Dynamisk binding og virtuelle operationer. Decentraliseret/centraliseret
Læs mereSpecifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api
Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereVideregå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 mereAtt: Mads Ellehammer:
KL Att: Mads Ellehammer: 27. august 2008 FESD-standardiseringsgruppen har nu færdigbehandlet de indkomne svar til høringen, som løb fra den 22. marts 2008 til 23. maj 2008, og ønsker med dette brev at
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form
Læs mereGenerelt Internationalisering
Bekendtgørelse om krav til anvendelse af Informations- og Side 1 af 7 Generelt Digital Konvergens samarbejdet, har i sit hidtidige arbejde fokuseret på at implementere vindende, digitale standarder, der
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder
Læs mereUniq.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 mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereProgrammering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale
Programmering i C Lektion 1 16. september 2008 Målgruppe Indhold Form Materiale Kursusintroduktion 1 Målgruppe 2 Indhold 3 Form 4 Materiale 2 / 21 Målgruppe Indhold Form Materiale Folk der har styr på
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Læs mereKlasser og nedarvning
Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere
Læs mereTree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Læs mereAthena DIMENSION Varmeanlæg 4
Athena DIMENSION Varmeanlæg 4 Juni 2001 Indhold 1 Introduktion.................................. 2 2 Programmets opbygning........................... 2 3 Fremgangsmåde................................ 3
Læs mereFaggruppernes troværdighed
Radius Kommunikation Faggruppernes troværdighed Faktaark Oktober 2014 Materialet er fortroligt og må ikke anvendes uden for klientens organisation uden forudgående skriftligt samtykke fra Radius Kommunikation
Læs mereTips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF
Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF Den afsluttende prøve i AT består af tre dele, synopsen, det mundtlige elevoplæg og dialogen med eksaminator og censor. De
Læs mereMiljøministerens besvarelse af spørgsmål nr. J, stillet af Nick Hækkerup i Folketingets Skatteudvalg
Skatteudvalget SAU alm. del - Bilag 291 Offentligt Ministeren J.nr. MST-705-00066 Den 22. april 2009 Miljøministerens besvarelse af spørgsmål nr. J, stillet af Nick Hækkerup i Folketingets Skatteudvalg
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereRapport vedrørende. etniske minoriteter i Vestre Fængsel. Januar 2007
Rapport vedrørende etniske minoriteter i Vestre Fængsel Januar 2007 Ved Sigrid Ingeborg Knap og Hans Monrad Graunbøl 1 1. Introduktion Denne rapport om etniske minoriteter på KF, Vestre Fængsel er en del
Læs mereINDHOLDSFORTEGNELSE INTRODUKTION SØGERESULTAT
INDHOLDSFORTEGNELSE Introduktion Søgeresultat Ikoner i søgeresultatet Sådan arbejder du med dit søgeresultat Sammenlign valgte Føj alle til overvågning Eksporter data Gem som eksportkriterium Hent eksportkriterium
Læs mereIndledning... 2 Opbygning... 2 Servicesegmenternes sammenhæng... 3 UNA... 4 UNB... 6 UNH... 10 UNT... 12 UNZ... 14
05.05.2000 5. SERVICESEGMENTER Indholdsfortegnelse Indledning... 2 Opbygning... 2 Servicesegmenternes sammenhæng... 3 UNA... 4 UNB... 6 UNH... 10 UNT... 12 UNZ... 14 Side: 2 Indledning Dette afsnit indeholder
Læs mereModelbase findes under Maskinhandel Opsætning Modelbase.
Modelbase Modelbase findes under Maskinhandel Opsætning Modelbase. En modelbase, f.eks. Agrimach, kan anvendes ved oprettelse af maskiner: I stedet for at indmelde alle oplysninger manuelt, er der mulighed
Læs mereForslag til oprettelse af et konferencemodul
Forslag til oprettelse af et konferencemodul Motivation Konferencerelaterede aktiviteter kan i dag ikke registreres tilfredsstillende. En forsker, der har været på konference, vil typisk skulle registrere
Læs mereMiniprojekt 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 mereNår arbejdsulykken er sket Vejledning til arbejdsmiljøgruppen
Når arbejdsulykken er sket Vejledning til arbejdsmiljøgruppen Definitionen af en arbejdsskade: En arbejdsskade dækker over to forskellige begreber: - arbejdsulykker og - erhvervssygdomme En arbejdsulykke
Læs mereVurderingsprincipper i DDKM af 2015 for kommuner Vejledning til surveyors og Akkrediteringsnævnet November 2015
Vurderingsprincipper i DDKM af 2015 for kommuner Vejledning til surveyors og Akkrediteringsnævnet November 2015 Institut for Kvalitet og Akkreditering i Sundhedsvæsenet Kommuner: Vurderingsprincipper kortfattet
Læs mereHVORDAN 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 mereKursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Læs mereLRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);
Læs mereSide 1 af 16. Vedligehold decentrale stamdata i SKS
Side 1 af 16 Vedligehold decentrale stamdata i SKS Indholdsfortegnelse Side 2 af 16 1. Indledning... 3 2. Generelt om stamdata i SKS og vedligeholdelse af disse... 3 2.1. CENTRALE STAMDATA... 4 2.2. DECENTRALE
Læs mereGLAMSBJERG FRI- OG EFTERSKOLE
GLAMSBJERG FRI- OG EFTERSKOLE Realkompetencer Efterskolens selvevaluering 2008/2009 06-06-2009 Selvevaluering: Realkompetencer Indledning Emnet for dette skoleårs selvevaluering er Realkompetencer og den
Læs mereCivilingeniø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 merePædagogiske læreplaner
- en kort introduktion til programmet Pædagogiske læreplaner med værktøjet RiskMinder. - Se evt. den tilhørende video på www.rmlink.dk Hvad siger loven..? Det enkelte dagtilbud skal udarbejde en pædagogisk
Læs mereHashing og hashtabeller
Datastrukturer & Algoritmer, Datalogi C Forelæsning 16/11-2004 Hashing og hashtabeller Teknik til at repræsentere mængder Konstant tid for finde og indsætte men ingen sortering af elementerne Specielt
Læs mereMetoder Klasser Arv. Operatorer Løkker. Praksis eksempel. Grundlæggende programmering Lektion 3
Praksis eksempel Operatorer Løkker Metoder Klasser Arv Grundlæggende programmering Lektion 3 Praksis eksempel Et program der benytter Unity til at lave et 3D spil Praksis eksempel Spil der benytter Unity
Læs mereLektion 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 mereForslag til visioner og strategier for fremtidens overbygning i Norddjurs Kommune
Forslag til visioner og strategier for fremtidens overbygning i Norddjurs Kommune Indledning Norddjurs Kommune har i de senere år sat fokus på mulighederne for at udvikle en folkeskole, hvor de unge i
Læs mereObjektorienteret Programmering
Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:
Læs mereKursus i OOP og Java. Kursus i Objektorienteret programmering i Java
Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger
Læs mere3 Algebraisk Specifikation af Abstrakte Datatyper.
3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.
Læs mereJava Programmering. En bog for begyndere. Skrevet af Henrik Kressner
Java Programmering En bog for begyndere Skrevet af Henrik Kressner Indholdsfortegnelse Introduktion...3 1 Introduktion til Java...4 1.1 Javakoden...4 1.2 Det første program...6 1.2 Skriv til skærmen...6
Læs meredintprog 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 mereHvad sker der med sin i moderne dansk og hvorfor sker det? Af Torben Juel Jensen
Hvad sker der med sin i moderne dansk og hvorfor sker det? Af Torben Juel Jensen De fleste danskere behøver bare at høre en sætning som han tog sin hat og gik sin vej, før de er klar over hvilken sprogligt
Læs mereGPS-Link version 1.6.4 Brugervejledning Dansk Sejlunion
GPS-Link version 1.6.4 Brugervejledning Dansk Sejlunion Alle henvendelser om GPS-Link bedes foretaget pr. email til supportdlsk@sejlsport.dk Hvad er GPS-Link? GPS-Link anvendes til overførsel af navigationsdata
Læs mereFå navn på analysenr. i excel-fil og ind i pivottabel med data fra qlikview
Få navn på analysenr. i excel-fil og ind i pivottabel med data fra qlikview Opret en excel-fil med analysenr. og navn. Gemt som dataliste_til_pivottabeller Analysenr. skal stå i nr. orden, og cellen skal
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereNotat. Introdansk beskrivelse af fastlagte krav til indberetning af statistikoplysninger fra udbydere 27.06.2012 JL
Notat Vedrørende: Skrevet af: Introdansk beskrivelse af fastlagte krav til indberetning af statistikoplysninger fra udbydere Jesper Lund Version: 1.4: rev. af Ankestyrelsen, januar 2014 27.06.2012 JL I
Læs mereIndholdsfortegnelse Avanceret søgning:
Indholdsfortegnelse Avanceret søgning: Behov/ overskredet behov Manglende us behov (Småbørnstjek, Alm us, Udskrivning) Manglende klinik Manglende behandler Gl. aftaler uden mødekoder Antal udeblivelser
Læs mereBeregning af Grenaa Havns regionaløkonomiske virkning på oplandet.
1 Beregning af Grenaa Havns regionaløkonomiske virkning på oplandet. Der har igennem de senere år været en stigende interesse og fokus i offentligheden på havnenes økonomiske og lokaliseringsmæssige betydning
Læs mereAllan C. Malmberg. Terningkast
Allan C. Malmberg Terningkast INFA 2008 Programmet Terning Terning er et INFA-program tilrettelagt med henblik på elever i 8. - 10. klasse som har særlig interesse i at arbejde med situationer af chancemæssig
Læs mereDOMSTOLENS DOM (Første Afdeling) 20. juni 1996 *
DOM AF 20.6.1996 SAG C- 121/95 DOMSTOLENS DOM (Første Afdeling) 20. juni 1996 * I sag C-121/95, angående en anmodning, som Bundesfinanzhof i medfør af EF-traktatens artikel 177 har indgivet til Domstolen
Læs mereEfterskoleforeningen. Pixi-udgave af rapport. Efterskolernes effekt på unges uddannelse og beskæftigelse
Pixi-udgave af rapport Efterskolernes effekt på unges uddannelse og beskæftigelse Capacent Epinion Indhold 1. Et efterskoleophold 1 1.1 Flere skal gennemføre en ungdomsuddannelse 1 1.2 Data og undersøgelsesmetode
Læs mere3.0 Velkommen til manualen for kanalen Shift 1. 3.1 Introduktion til kanalen 1. 3.2.1 Hvad er et spot? 2. 3.2.2 Opret et nyt spot 2
3.0 Velkommen til manualen for kanalen Shift 1 3.1 Introduktion til kanalen 1 3.2 Shift kanalside 1 3.2.1 Hvad er et spot? 2 3.2.2 Opret et nyt spot 2 3.2.3 Aktivt og inaktivt spot 3 3.2.4 Rediger et spot
Læs mereEksempler på elevbesvarelser af gådedelen:
Eksempler på elevbesvarelser af gådedelen: Elevbesvarelser svinger ikke overraskende i kvalitet - fra meget ufuldstændige besvarelser, hvor de fx glemmer at forklare hvad gåden går ud på, eller glemmer
Læs mere0KAPITEL 5: DOKUMENTGODKENDELSE OPSÆTNINGSVEJLEDNING
Kapitel 5: Dokumentgodkendelse Opsætningsvejledning 0KAPITEL 5: DOKUMENTGODKENDELSE OPSÆTNINGSVEJLEDNING 1Målsætninger Målene er at: Opsætte dokumentgodkendelsessystemets generelle funktioner. Opsætte
Læs mereVejledning for anvendelse af PensionsIndberetningssystem PI
Vejledning for anvendelse af PensionsIndberetningssystem PI PNN PENSION 190503/AMB Indholdsfortegnelse 1. INDBERETNINGER... 3 2. SØG INDBERETNING... 4 3. NY INDBERETNING... 5 4. INDLÆS FIL... 7 5. INDTAST
Læs mere