Grafer og grafalgoritmer

Størrelse: px
Starte visningen fra side:

Download "Grafer og grafalgoritmer"

Transkript

1 Algoritmer og Datastrukturer/Datalogi C Forelæsning 15/ Henning Christiansen Grafer og grafalgoritmer Hvad mener vi med en graf? NEJ! Graf: En matematisk abstraktion over ting som er logisk forbundet med hinanden Dagens program: Terminologi og anvendelser Repræsentationer af grafer Algoritme til korteste vej Algoritme til korteste vej med vægte (=omkostninger) Kort om netværksplanlægning o Princippet o Skitser af algoritmer, topologisk sortering, kritisk vej m.v.

2 Grafer, terminologi og baggrund Udspringer af matematisk disciplin Grafteori Leonard Euler 1736: De 7 broer i Königsberg (nu Kaliningrad) Er det muligt at gå en tur, så man passerer alle broer, men ikke mere end én gang? Svaret er nej... beviset baseret på abstraktion = grafer: (Interesserede kan finde bevis på nettet eller i en bog på biblioteket) Grafteori: Stort og spændende område, mange spændende sætninger og anvendelser!

3 Terminologi: En graf består af knuder (vertices); en eller anden (abstrakt mængde) {1,2,3,4} kanter (edges), en binær relation over knuder. {(1,2), (2,3), (2,2),...} Forskellige typer grafer: Ikke-orienteret graf: Kanter uden retning, dvs. (1,2) (2,1) Orienteret graf: Kanter har retning, dvs. (1,2) (2,1), dvs. Pile Vi taler om ind-kanter og ud-kanter for given knude Vægtet graf (typisk orienteret, men også ikke-orienteret): Hver kant har en vægt ( pris omkostning...) Tætte og tynde grafer: Tæt: Alle kan se alle, dvs. antal kanter O(antal-knuder 2 ) Tynd: Hver knude har lille antal kanter til/fra dvs. antal kanter O(antal-knuder) Eksempel 2D-strukturer uden krydsende kanter

4 Fænomener i grafer: En vej (path) fra K1 til Kn: En sekvens af kanter (K1,K2),(K2,K3),...,(Kn-1,Kn). En kreds/cyklus (cycle): En vej fra K til K. Klassifikation af grafer: Acyklisk: ingen kredse Sammenhængende: For vilkårlige knuder K1, K2, altid vej fra K1 til K2 eller omvendt Skov: Aldrig mere end én vej mellem to knuder Træ: en sammenhængende skov :) o NB: et træ har altid én top-knude (burde hedde dets rod, men nu er det altså etableret)

5 Anvendelser Infrastruktur/forsyningslinjer Knuder = Byer/Forbrugere-Producenter /Computere-Servere-Printere Kanter = Veje/Lastbilsruter/Togstrækninger/Vandrør /el-ledninger/datanetforbindelser Interessante spørgsmål: Er grafen sammenhængende (ellers øer) Billigste vej mellem to knuder Billigste vej som involverer givet punktmængde Sammenhængsgrad et mål for forsyningssikkerhed: hvor mange forskellige veje mellem to vilkårlige punkter Rejseplanlægning: Knuder = stationer/stoppesteder/adresser Kanter = trafikforbindelser; pris = rejsetid Ekstra komplikation: Køreplan => ventetid Planlægning af projekter: Knuder = Produkter (=aktivitet afsluttet) Kanter = Hvilke ting forudsætter hvilke andre Hvor lang tid tager aktivitet X? Programstrukturer: Kaldegrafer: Hvilke metoder kalder hvilke? Fejlsøgning, optimering på compiletime UML: Hvilke klasser benytter hvilke og hvordan (f.eks. nedarver fra, indeholder objekter fra,...) Vedligeholdelse af programmer...

6 Repræsentation af grafer Matrice: bool [ 5][ 5] graf Lister: For hver knude, en liste over dens ud-kanter 0: [1, [3, null]] 1: [2, null] 2: null 3: [2, null] 4: [4, null] Eksempel på listerepræsentation af vægtede grafer:

7 Hvordan var det nu med java.util.linkedlist Constructors LinkedList() Constructs an empty list. boolean add(object o) Appends the specified element to the end of this list. Object Object getfirst() Returns the first element in this list. getlast() Returns the last element in this list. int indexof(object o) Returns the index in this list of the first occurrence of the specified element, or -1 if the List does not contain this element. int lastindexof(object o) Returns the index in this list of the last occurrence of the specified element, or -1 if the list does not contain this element. ListIterator Object listiterator(int index) Returns a list-iterator of the elements in this list (in proper sequence), starting at the specified position in the list. remove(int index) Removes the element at the specified position in this list. boolean remove(object o) Removes the first occurrence of the specified element in this list. Object Osv. osv. removefirst() Removes and returns the first element from this list. Object removelast() Removes and returns the last element from this list.

8 Repræsentation med lister benytte i lærebogen (her renset for diverse ekstrainformation og fejlcheck ved indlæsning) Attributter har her tekstlige navne som benyttes ved indlæs og udskriv class Edge // start vertex given by position in list (below) {public Vertex dest; // Second vertex in Edge public double cost; // Edge cost public Edge( Vertex d, double c ) {dest = d; cost = c;}} class Vertex { public String name; // Vertex name public List adj; // Adjacent vertices //liste over ud-kanter public Vertex(String nm){name=nm;adj=new LinkedList( );}} public class Graph {private Map vertexmap = new HashMap( ); // String to Vertex private Vertex getvertex( String vertexname ) {Vertex v = (Vertex) vertexmap.get( vertexname ); if(v==null) {v=new Vertex(vertexName); vertexmap.put(vertexname,v);} return v;} public void addedge( String sourcename, String destname, double cost) {Vertex v=getvertex(sourcename); Vertex w=getvertex(destname); v.adj.add( new Edge( w, cost ) );}

9 public static void main( String [ ] args ) {Graph g = new Graph( ); FileReader fin = new FileReader( args[0] ); //file name BufferedReader graphfile = new BufferedReader( fin ); // Read the edges and insert String line; while( ( line = graphfile.readline( ) )!= null ) {StringTokenizer st = new StringTokenizer( line ); String source = st.nexttoken( ); String dest = st.nexttoken( ); int cost = Integer.parseInt( st.nexttoken( ) ); g.addedge( source, dest, cost );}; System.out.println( "File read..." ); System.out.println( g.vertexmap.size( ) + " vertices" );... }

10 Korteste vej mellem to knuder beregner korteste veje fra startknude til alle andre knuder a la princippet i dynamisk programmering; vi har måske brug for at gå via andre knuder Version 1: Orienterede grafer uden vægte; vejlængde = antal kanter. Datastruktur: hver knude tilføjes hjælpevariable: double dist; //hidtil bedst fundne afstand fra start; init=infinity Vertex previous; // Previous vertex on shortest path; init=null Metode clearall, som initialiserer alle hjælpevariable i graf global kø q over knuder som skal besøges. Princip i algoritme: Givet knude kalde start. Først besøges start; Så besøges alle knuder i afstand 1 fra start dvs. alle som kan nås via én kant fra start Dernæst alle knuder i afstand 2 fra start; dvs. alle som kan nås via én kant fra dem i forrige skridt, dog ikke dem som allerede har været besøgt! osv.

11

12 Implementation i Java public void unweighted( String startname ) { clearall( ); Vertex start = (Vertex) vertexmap.get( startname ); LinkedList q = new LinkedList( ); q.addlast( start ); start.dist = 0; while(!q.isempty( ) ) { Vertex v = (Vertex) q.removefirst( ); for( Iterator itr = v.adj.iterator( ); itr.hasnext( ); ) { Edge e = (Edge) itr.next( ); Vertex w = e.dest; if( w.dist == INFINITY ) { w.dist = v.dist + 1; w.prev = v; q.addlast( w );}}}} Sluttilstand: Alle knuder med påskrevet afstand fra start. Incl. dem som ikke kan nås fra start: INFINITY

13 Korteste vej med vægte, Dijkstras algoritme Princip, som før men ekstra komplikation i og med ikke nok med besøgt/ikke besøgt vægt for knude kan tælles ned flere gange Vi skelner mellem færdigbehandlede knuder ( visited ) ufærdige naboer til færdigbehandlede knuder ( unseen ) For at generalisere algoritmen fra før bruger vi en prioritetskø, som indeholder den sidste slags. Alle knuder tildeles fra start afstand fra startknude = uendelig. Abstrakt algoritme: indsæt start-knude med afstand=0 i kø; while( der-er-flere-kø ) { lad v = knuden i køen med mindst afstand... v fjernes fra køen; for alle v s naboer w, som ikke allerede er færdigbehandlede, { hvis v.afstand + længde(v--> w) < w.afstand så { w.afstand= v.afstand + længde(v--> w); sæt w i kø (hvis den ikke allerede er der; } notér v som færdigbehandlet }}

14 Hvorfor virker den? Lad os formulere et matematisk induktionsbevis over antal gennemløb af while-løkken: Hypotesen: Afstand for alle færdigbehandlede er korrekt, og Afstand for ufærdige nabo w = lgd. af korteste vej i delgraf som udover w kun indeholder færdigbehandlede. Induktionsstart, lad os vælge når startknuden er færdigbehandlet: c1 c1 start 0 c2 c2 c4 c3 c3 OK! c4 Antag nu at algoritmen har kørt korrekt op til skridt k: v Skridt k+1: Lad v være hvid knude med mindst vægt: v s naboers vægte justeres (måske) v forfremmes til færdigbehandlet

15 1. Redegøre for at v s afstand D er den mindst mulige. Men kan der være en anden vej fra start til v, som er billigere? Per induktionshypotese del 2, kan der ikke være en anden vej grå->grå->...->grå->v. Ergo må en sådan vej P være af formen... -> hvid -> grå. Kald denne hvide v1 og dens noterede afstand D1. Udfra valget af v må vi have D1 D. Kan længden af P = D1 + noget-positivt så være mindre end D?? Nej vel? Modstrid! 2. Redegøre for at de nye afstande for v s naboer er korteste vej i delgrafen bestående af de grå nu udvidet med v. Hvis en sådan nabo w får talt sin vægt ned, så er det netop fordi ny vej via v er kortere end tidligere grå->grå->...->grå-> w. Q.E.D.

16 Bogens algoritme i Java: Prioritetskøen implementeres lidt snusket med BinaryHeap... (NB: ikke i Javas std. pakker) BinaryHeap er en datastruktur, med underligt navn, hvis indmad vi ikke kender men som implementerer metoderne insert(comparable x) Comparable deletemin( ) hvor Min er bestemt ved objekternes compareto. Problem ved denne BinaryHeap: Objekternes rækkefølge bestemmes på indsættelsestidspunktet. Dvs. hvis objekt ændres undervejs, så det påvirker resultat af compareto, opfører deletemin sig ikke korrekt!!! Teknik (læs: hæsligt bøjet søm): I algoritmen ændres knudernes afstand altid nedad Vi vælger altid knude med mindst afstand Når knude er valgt, sættes den scratch felt = 1 (init=0). Hvis en knude med scratch =1 fremkommer ved deletemin, ignoreres den. Følgende Path objekter indsættes i BinaryHeap en_ class Path implements Comparable { public Vertex dest; // w public double cost; // d(w) public Path( Vertex d, double c ) {dest = d; cost = c;} public int compareto( Object rhs ) { double othercost = ((Path)rhs).cost; return cost < othercost? -1 : cost > othercost? 1 : 0;}}

17 Dijkstras algoritme for korteste vej i vægtede grafer ved brug af BinaryHeap : public void dijkstra( String startname ) { PriorityQueue pq = new BinaryHeap( ); Vertex start = (Vertex) vertexmap.get( startname ); clearall( ); pq.insert( new Path( start, 0 ) ); start.dist = 0; int nodesseen = 0; while(!pq.isempty( ) && nodesseen < vertexmap.size( ) ) {Path vrec = (Path) pq.deletemin( ); Vertex v = vrec.dest; if( v.scratch!= 0 ) continue; // already processed v v.scratch = 1; nodesseen++; for( Iterator itr = v.adj.iterator( ); itr.hasnext( ); ) { Edge e = (Edge) itr.next( ); Vertex w = e.dest; double cvw = e.cost; if( w.dist > v.dist + cvw ) { w.dist = v.dist +cvw; w.prev = v; pq.insert( new Path( w, w.dist ) );}}}}

18 Acykliske grafer Typisk anvendelse: Planlægning : tagspær 1: lægter 2: tagsten 3: rejsegilde A --> B: A forudsætter B Acykliske grafer nemmere at programmere om: man kommer aldrig tilbage til samme sted! Eksempel: Topologisk sortering at ordne knuderne i en graf i rækkefølge, så afhængigheder er overholdt. tagspærene skal på før lægterne hvorvidt du sætter vinduer i før eller efter tagstenene er ligegyldigt Algoritme som udskriver knuderne i topologisk sorteret rækkefølge G = vor graf; while(flere-knuder-tilbage) { find knude V med nul indgående kanter; //findes fordi G acyklisk udskriv V; fjern v og alle dens udgående kanter fra G; }

19 Bogens algoritme i Java (udsnit af fig ) (fig blander top.sort. med en kortestevej algoritme) Princip: hver knudes scratch benyttes som tæller for antal ind-kanter der bruges en kø til at holde de knuder som på givet tidspunkt har 0 ind-kanter LinkedList q = new LinkedList( ); // Compute the indegrees Collection vertexset = vertexmap.values( ); for( Iterator vsitr = vertexset.iterator( ); vsitr.hasnext( ); { Vertex v = (Vertex) vsitr.next( ); for( Iterator witr = v.adj.iterator( ); witr.hasnext( ); ) ( (Edge) witr.next( ) ).dest.scratch++;} // Enqueue vertices INITIALLY of indegree zero for( Iterator vsitr = vertexset.iterator( ); vsitr.hasnext( ); ) { Vertex v = (Vertex) vsitr.next( ); if( v.scratch == 0 ) {q.addlast( v ); UDSKRIV v; } ; // Loop: Remove 0-nodes from queue and count down in-degrees while(!q.isempty( )) { Vertex v = (Vertex) q.removefirst( ); for( Iterator itr = v.adj.iterator( ); itr.hasnext( ); ) { Edge e = (Edge) itr.next( ); Vertex w = e.dest; if( --w.scratch == 0 ) {q.addlast( w );; UDSKRIV v; }}}

20 Eksempel fra bogen

21 Korteste vej for acykliske grafer Tricket: Knuderne besøges i rækkefølge svarende til topologisk sortering Dvs. når en knude besøges, er alle dens forgængere besøgt (og med garanti ikke ændrer sin korteste vej) Algoritmen for topologisk sortering med 4 ekstra linjer i stedet for udskrift: LinkedList q = new LinkedList( ); // Compute the indegrees Collection vertexset = vertexmap.values( ); for( Iterator vsitr = vertexset.iterator( ); vsitr.hasnext( ); { Vertex v = (Vertex) vsitr.next( ); for( Iterator witr = v.adj.iterator( ); witr.hasnext( ); ) ( (Edge) witr.next( ) ).dest.scratch++;} // Enqueue vertices INITIALLY of indegree zero for( Iterator vsitr = vertexset.iterator( ); vsitr.hasnext( ); ) { Vertex v = (Vertex) vsitr.next( ); if( v.scratch == 0 ) q.addlast( v ) ; // Loop: Remove 0-nodes from queue and count down in-degrees while(!q.isempty( )) { Vertex v = (Vertex) q.removefirst( ); for( Iterator itr = v.adj.iterator( ); itr.hasnext( ); ) { Edge e = (Edge) itr.next( ); Vertex w = e.dest; if( --w.scratch == 0 ) q.addlast( w ); if( v.dist == INFINITY ) continue; // on island ; avoid overflow if( w.dist > v.dist + cvw ) { w.dist = v.dist + cvw; w.prev = v;}}}

22 Skitse af netværksplanlægning Udgangspunkt: En aktivitetsgraf Knuder: Aktivitet m. forventet tidsforbrug Kanter: Forudsætningsforhold Obs: Omkostninger på knuder passer ikke ind i vores hidtidige model. I stedet: En begivenhedsgraf: Knuder: aktivitet-start, aktivitet-slut Kanter. Forudsætningsforhold, Aktivitet m. tidsforbrug Hvor lang tid tager projektet hvis arbejdet planlægges optimalt? Kritiske vej = længste vej fra start til slut

23 Algoritmer a la korteste vej kan tilpasses længste vej for hver aktivitet, tidligst mulige slutpunkt Yderligere algoritmer til: Senest mulige starttidspunkt Tidligts mulige sluttidspunkt Hvor meget der kan slækkes Yderligere forfining af modellen med ressourcer: Aktivitet A kræver 1 gravko m. fører, 1 rendegraver m. fører Aktivitet E kræver 1 rendegraver m. fører, 1 bobcat, 5 gartnere, 3 river, 2 skovle Vi har ialt følgende ressourcer: 1 gravko, 2 rendegraver, 1 byggekran,... Alt dette kan behandles med algoritmer små forbedringer = store penge heuristikker til at behandle usikkerheder, robusthed for forudset og uforudsete ændringer

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

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

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012 Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk

Læs mere

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!

Læs mere

Programmeringscamp. Implementer funktionerne én for én og test hele tiden.

Programmeringscamp. Implementer funktionerne én for én og test hele tiden. Programmeringscamp De to opgaver træner begge i at lave moduler som tilbyder services der kan bruges af andre, samt i at implementere services efter en abstrakt forskrift. Opgave 1 beder jer om at implementere

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

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.

Læs mere

Kursusarbejde 3 Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................

Læs mere

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

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

Læs mere

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor

Læs mere

Synopsis: Titel: Flugtveje. Tema: Algoritmer og netværk. Projektperiode: P2, forårssemesteret 2010. Projektgruppe: A312

Synopsis: Titel: Flugtveje. Tema: Algoritmer og netværk. Projektperiode: P2, forårssemesteret 2010. Projektgruppe: A312 Flugtveje [1] A312 Jens Stokholm Høngaard Kristian Pilegaard Jensen Thomas Birch Mogensen Niels Asger Aunsborg Nicolai Vesterholt Søndergaard Daniel Agerskov Heidemann Jensen 26. maj 2010 I II Det Teknisk-Naturvidenskabelige

Læs mere

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393.

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Broer, skak og netværk Side 1 af 6 Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Eksempler på praktiske anvendelser af matematik og nogle uløste problemer Indledning Figur

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

Kursusarbejde 2 Grundlæggende Programmering

Kursusarbejde 2 Grundlæggende Programmering Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................

Læs mere

UNION-FIND. UNION-FIND-problemet. Forbundethed kan være svær at afgøre (især for en computer) Eksempel på udførelse

UNION-FIND. UNION-FIND-problemet. Forbundethed kan være svær at afgøre (især for en computer) Eksempel på udførelse UNION-FIND-problemet UNION-FIND inddata: en følge af heltalspar (p, q); betydning: p er forbundet med q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel på anvendelse: Forbindelser i computernetværk

Læs mere

Objektorienteret Programmering

Objektorienteret Programmering Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:

Læs mere

Kursusarbejde 1 Grundlæggende Programmering. Arne Jørgensen, 300473-2919 klasse dm032-1a

Kursusarbejde 1 Grundlæggende Programmering. Arne Jørgensen, 300473-2919 klasse dm032-1a Kursusarbejde 1 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 3. oktober 2003 Kode //File Name: kaalhovede.cc //Author: Arne Jørgensen //Email Address: arne@arnested.dk, arnjor@niels.brock.dk

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer

Læs mere

Udvikling af DOTNET applikationer til MicroStation i C#

Udvikling af DOTNET applikationer til MicroStation i C# Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller

Læs mere

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav. Miniprojekt2011 Projektbeskrivelse Der skal fremstilles en lille java application på PC, hvor brugeren kan foretage interaktioner med en simpel database på disken via et grafisk brugerinterface. Formålet

Læs mere

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter. Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening

Læs mere

DDD Runde 2, 2015 Facitliste

DDD Runde 2, 2015 Facitliste DDD Runde 2, 2015 Facitliste Søren Dahlgaard og Mathias Bæk Tejs Knudsen Opgaver og løsninger til 2. runde af DDD 2015. 1 4. 19. februar, 2015 linetest DK v1.0 Line Test Sigurd er begyndt i gymnasiet og

Læs mere

Dynamisk programmering. Flere eksempler

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

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille er. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle x.key og satellitdata x.data. operationer. PREDECESSOR(k): returner element x med største nøgle k. SUCCESSOR(k):

Læs mere

Danmarks Tekniske Universitet

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

Læs mere

14.1 Internationale programmer

14.1 Internationale programmer 14.1 Internationale programmer Når et program skal anvendes af flere kulturer og sprog opstår behov for at programtekster, beløb og datoangivelser afhænger af landet og sproget, og man må i gang med at

Læs mere

Start på Arduino og programmering

Start på Arduino og programmering Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget

Læs mere

Induktive og rekursive definitioner

Induktive og rekursive definitioner Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal

Læs mere

Umbraco installationsvejledning

Umbraco installationsvejledning på et ScanNet ASP Webhotel Indledning Beskrivelse Denne vejledning vil indeholde installation af CMS systemet Umbraco på et ASP Webhotel. Det dansk grundlagt Content Management System (CMS) Umbraco er

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen

Læs mere

BOSK F2011, 1. del: Induktion

BOSK F2011, 1. del: Induktion P(0) ( n N. P(n) P(n + 1) ) = ( n N. P(n) ) February 15, 2011 Summa summarum Vi får et tip om at følgende kunne finde på at holde for n N: n N. n i = n(n + 1). 2 Vi husker at summation læses meget som

Læs mere

Easy Guide i GallupPC

Easy Guide i GallupPC Easy Guide i GallupPC Version. 6.00.00 Gallup A/S Masnedøgade 22-26 DK 2100 København Ø Telefon 39 27 27 27 Fax 39 27 50 80 Indhold SÅDAN KOMMER DU I GANG MED AT ANVENDE GALLUPPC... 2 TILFØJELSE AF UNDERSØGELSER

Læs mere

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af

Læs mere

Løsningsforslag til Camp Let. Case Beskrivelse: Camp Let

Løsningsforslag til Camp Let. Case Beskrivelse: Camp Let Løsningsforslag til Camp Let Case Beskrivelse: Camp Let Firmaet Camp Let har til formål at udleje forskellige typer transportable ferieboliger. Det drejer sig i øjeblikket om campingbusser, campingvogne,

Læs mere

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net)

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Kim Harding Christensen EOS A/S Margrethepladsen 3 8000 Århus TLF: 8732 8787

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

Objektorienterede metoder

Objektorienterede metoder Objektorienterede metoder Denne gang: Designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Singleton eksempel: Forskellige slags

Læs mere

Software Projekt NoSQL vs RMDB

Software Projekt NoSQL vs RMDB Software Projekt NoSQL vs RMDB Skrevet af Carsten Sørensen, Hans Jørgen Frandsen, Peter Haislund Department of Computer Science, University of Aarhus Aabogade 34, 8200 Arhus N, Denmark 201200089, 19960442,

Læs mere

Integer.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else

Integer.parseInt(args[0]) konverterer tegnstreng (f.eks. 10) til heltal (10). if (udtryk) else Programmering 1999 Forelæsning 2, fredag 3. september 1999 Betingede ordrer: if-, if Indlejrede betingede ordrer Løkker med begrænset iteration: for Løkker med ubegrænset iteration: while Betingede ordrer,

Læs mere

Rekursion C#-version

Rekursion C#-version Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet

Læs mere

Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft

Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft Kurserne Kurset: programmering i sproget Java Programmering og Udvidet Programmering Lærerne: Morten Larsen og Peter Sestoft Kursusmål: I skal lære at skrive interessante programmer i Java Forudsætninger:

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer

Læs mere

PBX Online Brugervejledning www.pbxonline.dk

PBX Online Brugervejledning www.pbxonline.dk PBX Online Brugervejledning www.pbxonline.dk Indledning PBX Online er dit personlige omstillingsanlæg som ikke kræver noget fysisk udstyr installeret i dit firma. Du styrer det hele via din web browser.

Læs mere

Poly. - Javapakke til behandling af polynomier

Poly. - Javapakke til behandling af polynomier Poly - Javapakke til behandling af polynomier z 3 x y x 2 3 x -3 Skrevet af Susanne Nykjær Knudsen, John Thystrup Jensen, Jens Lykke Brandt, Troels C. Damgaard, Jacob W. Winther og Mikkel Bundgaard Vejleder:

Læs mere

DATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni 2003 1 25 % 2 10 % 3 25 % 4 10 % 5 30 %

DATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni 2003 1 25 % 2 10 % 3 25 % 4 10 % 5 30 % Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1F Skriftlig eksamen tirsdag den 10. juni 2003 Opgave Vægtning 1 25 % 2 10 % 3 25 % 4 10 % 5 30 % Alle de sædvanlige hjælpemidler må benyttes,

Læs mere

Software Design (SWD) Spørgsmål 1

Software Design (SWD) Spørgsmål 1 Spørgsmål 1 Unified Process Du skal give en beskrivelse af Unified Process. Beskrivelsen skal indeholde forklaring på følgende begreber: Phase Iteration Discipline Activity Milestone Artifact Spørgsmål

Læs mere

SelskabMasterKom. Per Kjærulf-Møller ApS 13. november 2008. KomTabel-layout. Art: 41 Sendes: Begge veje

SelskabMasterKom. Per Kjærulf-Møller ApS 13. november 2008. KomTabel-layout. Art: 41 Sendes: Begge veje SelskabMasterKom Bemærkninger: Ny protokol (opr. Art 11) Generelt : 1. + 2. byte = RecordArt 3. byte = Transaktionskode 1 = Opret 2 = Ændring 3 = Slet Email og Hjemmeside reduceret til 30 kar. Samlet længde

Læs mere

JSR-335: λ-udtryk i Java

JSR-335: λ-udtryk i Java JSR-335: λ-udtryk i Java Morten Heine Sørensen mhs@formalit.dk λ-udtryk i Java Ny feature i Java SE 8. Elegant syntaks for anonyme funktioner. Funktionel stil supplerer objekt-orientering. Alternativ til

Læs mere

LRESULT 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; 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 mere

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet. MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.

Læs mere

Programmering C 3.36 Eksamensprojekt - Tavledokumentation

Programmering C 3.36 Eksamensprojekt - Tavledokumentation Programmering C 3.36 Eksamensprojekt - Tavledokumentation August Møbius Roskilde HTX - Klasse 3.6 August Møbius 1 Indhold Indledende aktivitet... 3 Idégenerering... 3 Mit produkt(kort beskrivelse)... 3

Læs mere

Type Spçrg = Prodèhvad: Text, ja, nej: Vidè. ting èfor sça mça der jo ændes et spçrgsmçal, hvor man har svaret bçade ja

Type Spçrg = Prodèhvad: Text, ja, nej: Vidè. ting èfor sça mça der jo ændes et spçrgsmçal, hvor man har svaret bçade ja Opgave 1 è15èè Et videnstrç er èjfr. Dat1 nr. 2 opgave U61è af Trine typen Type Vid = Sumèting: Text, spçrgsmçal: Spçrgè Type Spçrg = Prèhvad: Text, ja, nej: Vidè Videnstrçet er inkonsistent hvis to forskellige

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Sådan opretter du en elektronisk aflevering

Sådan opretter du en elektronisk aflevering Sådan arbejder du med opgaver i Gradebook/karakterbog Denne vejledning indeholder en detaljeret beskrivelse af hvordan du bruger gradebook/karakterbogen når du vil arbejde med opgaver og give karakterer

Læs mere

ODIN-webservice ændringer release 2010 v2.0

ODIN-webservice ændringer release 2010 v2.0 DOKUMENTATION OG VEJLEDNING ODIN-webservice ændringer release 2010 v2.0 Indholdsfortegnelse 1. Nye webservice metoder... 2 1.1 Anvendelse af køretøjer og personel fra fremmede beredskaber ifm. indberetning

Læs mere

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation Plan 12.3. Oversigt over grundlæggende begreber Java: eksempel på applikation, programmering og oversættelse Uddybning af grundlæggende begreber Java RMI implementation Forklaring af øvelsen Hvad er et

Læs mere

BOSK F2012, 1. del: Prædikatslogik

BOSK F2012, 1. del: Prædikatslogik ε > 0. δ > 0. x. x a < δ f (x) L < ε February 8, 2012 Prædikater Vi skal lære om prædikatslogik lad os starte med prædikater. Et prædikat er et orakel der svarer ja eller nej. Eller mere præcist: Prædikater

Læs mere

Køge Handelsskole Vejledning til FollowYou Version 1.2 marts 2014

Køge Handelsskole Vejledning til FollowYou Version 1.2 marts 2014 Køge Handelsskole Vejledning til FollowYou Version 1.2 marts 2014 Indhold Grundlæggende om systemet... 1 Opstart-login med kort og uden kort... 1 Glemt kortet?... 3 Kopi... 4 Udskrivning... 5 Scan... 7

Læs mere

Programmering I Java/C#

Programmering I Java/C# Programmering I Java/C# Dit første projekt Datatekniker Intro to C# C# (C Sharp) Et enkelt, moderne, generelt anvendeligt, objektorienteret programmeringssprog Udviklet af Microsoft, ledet af danskeren

Læs mere

Mindmapping med FreeMind. En Introduktion til programmet FreeMind

Mindmapping med FreeMind. En Introduktion til programmet FreeMind En Introduktion til programmet FreeMind Jan Leffers 2006 Indholdsfortegnelse Indledning...2 Hvad er et mindmap...2 Mindmap guidelines...3 Download og installation...3 Kom hurtigt i gang...4 Det første

Læs mere

Objektorienteret design med arv og polymorfi:

Objektorienteret design med arv og polymorfi: Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Objektorienteret design med arv og polymorfi: Substitutionsprincippet Composite Design Pattern Finn Nordbjerg Side 1 Objektorienteret

Læs mere

En karakteristik af de regulære sprog. Ugens emner. FA minimering [5.1-5.2] MyHill-Nerode-sætningen en algoritme til minimering af FA er

En karakteristik af de regulære sprog. Ugens emner. FA minimering [5.1-5.2] MyHill-Nerode-sætningen en algoritme til minimering af FA er Ugens emner FA minimering [.-.] MyHill-Nerode-sætningen en algoritme til minimering af FA er En karakteristik af de regulære sprog Et sprog L er regulært hvis og kun hvis L beskrives af et regulært udtryk

Læs mere

GIS indlæsning af kreditorer og betalingsform. Brugervejledning 1.0

GIS indlæsning af kreditorer og betalingsform. Brugervejledning 1.0 GIS indlæsning af kreditorer og betalingsform Brugervejledning 1.0 Indhold 1 Indledning... 5 2 Opsætning af GIS grænseflade til kreditor indlæsning... 5 2.1 Oprettelse af en datastrøm... 7 2.2 Filsystem...

Læs mere

Servlets, Tomcat & BlueJ

Servlets, Tomcat & BlueJ Servlets, Tomcat & BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 05.october 2007 Hvad er Servlets: For at forstå det, må vi først få styr på to begreber, nemlig statiske og dynamiske hjemmesider

Læs mere

HVORDAN VI DOWNLOADEDE INTERNETTET. Man skal crawle før man kan gå

HVORDAN VI DOWNLOADEDE INTERNETTET. Man skal crawle før man kan gå HVORDAN VI DOWNLOADEDE INTERNETTET Man skal crawle før man kan gå DAGSORDEN Hvem jeg er Behovet for en crawler Arkitektur Nutch og Hadoop MongoDB Udfordringer Tak for i dag JACOB AVLUND Partner i Siblingsoft

Læs mere

Lille Georgs julekalender 08. 1. december

Lille Georgs julekalender 08. 1. december 1. december Et digitalur viser 20:08. Hvor lang tid går der før de samme fire cifre vises igen (gerne i en anden rækkefølge)? 2. december Hvilket matematisk tegn kan anbringes mellem 2 og 3, således at

Læs mere

Spil Master Mind. Indledning.

Spil Master Mind. Indledning. side 1 af 16 Indledning. Spillet som denne rapport beskriver, indgår i et større program, der er lavet som projekt i valgfaget programmering C på HTX i perioden 9/11-98 til 12/1-99. Spillet skal give de

Læs mere

Sådan redigerer du en hjemmeside i Umbraco

Sådan redigerer du en hjemmeside i Umbraco Brugermanual til din boligafdelings hjemmeside Sådan redigerer du en hjemmeside i Umbraco Indhold Introduktion... 2 Log på Umbraco og redigér din hjemmeside... 3 Opret ny side... 7 Gem side uden at udgive/publicere

Læs mere

Øvelser rundt på computeren

Øvelser rundt på computeren Øvelser rundt på computeren Kursister med it-færdigheder bør læse øvelserne igennem. Hvis der er elementer, som er ukendte, bør du udføre øvelserne. Hvis øvelserne derimod er kendt information kan øvelserne

Læs mere

APPENDIX A INTRODUKTION TIL DERIVE

APPENDIX A INTRODUKTION TIL DERIVE APPENDIX A INTRODUKTION TIL DERIVE z x y z=exp( x^2 0.5y^2) CAS er en fællesbetegnelse for matematikprogrammer, som foruden numeriske beregninger også kan regne med symboler og formler. Det betyder: Computer

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

Vejledning Lønindberetning. Opdateret 14. februar 2012

Vejledning Lønindberetning. Opdateret 14. februar 2012 Vejledning Lønindberetning Opdateret 14. februar 2012 Indhold Forudsætninger... 3 Indberetningsmappe... 3 TF-koder... 3 Lærernes aktiviteter... 4 Forud-oprettelse... 4 Bagud-oprettelse... 4 Indstillinger...

Læs mere

Projekt - Visual Basic for Applications N på stribe

Projekt - Visual Basic for Applications N på stribe Projekt - Visual Basic for Applications N på stribe Mikkel Kaas og Troels Henriksen - 03x 3. november 2005 1 Introduktion Spillet tager udgangspunkt i det gamle kendte 4 på stribe, dog med den ændring,

Læs mere

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller

Læs mere

Billeder på hjemmeside

Billeder på hjemmeside Billeder på hjemmeside Indholdsfortegnelse Emne 1. Billedredigering (Microsoft Picture Manager) Side 3 a. Komprimer billeder b. Beskæring af billeder 3 9 2. Billeder og tekst ved hjælp af en skabelon (Template

Læs mere

" #" $ " "!% &'% ' ( ) * " & #

 # $  !% &'% ' ( ) *  & # ! # $!% &'% '! #$ #$ ( * & #!! #$%& + &,Dim! - Sub Test( Dim Svar As String Svar = InputBox( Indtast dit Navn MsgBox Dit navn er & Svar Svar & * Sub Test2( MsgBox Goddaw & Svar #Test2( Svar& Test(Test2(Svar

Læs mere

Udlæsning af opslagsfil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt).

Udlæsning af opslagsfil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt). Indholdsfortegnelse Introduktion... 2 Udlæsning af opslagsfil til scanneren... 3 Installation af scanneren... 4 Indlæsning af datafil i scanneren... 6 Brug af scanneren... 7 Sådan scanner du... 7 Tømning

Læs mere

Vejledning til Club Counsellor i brug af RYE Database 2008

Vejledning til Club Counsellor i brug af RYE Database 2008 Vejledning til Club Counsellor i brug af RYE Database 2008 Indledning Multi District Denmark har udviklet en database til brug ved administration af udvekslingsstudenter. Databasen kan åbnes fra alle pc

Læs mere

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER MANUAL TIL OptitecRS CIPHERLAB 8000 - SCANNER INDHOLDSFORTEGNELSE 1 SAMLING OG TILKOBLING AF SCANNER... 1 1.1 STRØM TIL SCANNER... 2 1.2 TILKOBLING TIL COMPUTER... 2 1.2.1 Tilkobling med Seriel Stik...

Læs mere

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

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

Læs mere

Begreber om Godt Software

Begreber om Godt Software Begreber om Godt Software Maintainability (vedligeholdelse): Softwarens evne til at blive ændret (funktionalitet, rettet, forbedrelser, miljø, krav). - Analyserbart: Evnen til at blive fejldiagnosticeret,

Læs mere

Appendiks 6: Universet som en matematisk struktur

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

Læs mere

PDFmaps på smartphones

PDFmaps på smartphones PDFmaps på smartphones Kort udbyder - en enkel og (gratis) mulighed for at stille orienteringskort til rådighed på iphone/ipad og Android Bruger - en enkel og (gratis) mulighed for at downloade og anvende

Læs mere

Matador. Hvert hus koster: 2000 Et hotel koster: 2000 + 4 huse Pantsætningsværdien er 2000 kr.

Matador. Hvert hus koster: 2000 Et hotel koster: 2000 + 4 huse Pantsætningsværdien er 2000 kr. Matador Problembeskrivelse Matador består af en spilleplade med 40 felter, biler (som udgør spillebrikker), to terninger, huse, hoteller, lykkekort, pengesedler og skødekort. Hvert felt har et nummer og

Læs mere

vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl:

vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl: Fejlhåndtering Selv de bedste programmører laver af og til fejl! Dette kommer sikkert som en overraskelse for de fleste, bortset fra de, der har arbejdet med et hvilket som helst større program. Fejl kan

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

Gruppe 7 Toke Høiland-Jørgensen Morten Brandrup Mads Hald Jørgensen Thomas Petersen Bluhme. Vejleder Torben Braüner

Gruppe 7 Toke Høiland-Jørgensen Morten Brandrup Mads Hald Jørgensen Thomas Petersen Bluhme. Vejleder Torben Braüner LEGO OG LABYRINTER Gruppe 7 Toke Høiland-Jørgensen Morten Brandrup Mads Hald Jørgensen Thomas Petersen Bluhme Vejleder Torben Braüner 4. semester, forår 2008 NatBas RUC Abstrakt Vi har undersøgt hvilken

Læs mere

Manual CoffeeCup Visitkort konsulenter

Manual CoffeeCup Visitkort konsulenter Manual CoffeeCup Visitkort konsulenter Indhold 2 Start Lidt om sidens layout 3 Åbn den downloadede fil i CoffeeCup og gem den som dit eget projekt 3 Knapperne Ring og Mail Indsæt nyt link på Ring og mail

Læs mere

Søren Christian Nissen

Søren Christian Nissen Fraværsprotokol Søren Christian Nissen www.sc-nissen.dk e-mail: sc.nissen@sc-nissen.dk Fraværsprotokol version 5.5-22-08-2010 Adobe InDesign CS4 2 Indholdsfortegnelse Makroer...3 Ændre makrosikkerhed...3

Læs mere

Kontraktbaseret Design. Anker Mørk Thomsen

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

Læs mere

Brugervejledning til storkunder

Brugervejledning til storkunder Version 5.0 Brugervejledning til storkunder Version pr 20110322 Opdateret og seneste version kan altid hentes på http://webtour.dk/manual Der arbejdes til stadighed på at forbedre vores brugervejledning

Læs mere

Programmeringseksempel til CX/IPC

Programmeringseksempel til CX/IPC APP-NOTE 610004 Beckhoff Application Note Date: 7/17/2009 Document Status: 1.1 Beckhoff Automation Aps Naverland 2, DK-2600 Glostrup Phone +45 43 46 76 20 Fax +45 43 46 63 35 Programmeringseksempel til

Læs mere

Fra idé til virkelig med Azure Mobile Services

Fra idé til virkelig med Azure Mobile Services Fra idé til virkelig med Azure Mobile Services Niels Ladegaard Beck Holion nlb@holion.dk @nielslbeck Windows Developers in Denmark Azure App Service Mobile App Introduktion til Azure Mobile Services Platform

Læs mere