Life. Kurt Nørmark Aalborg Universitet. 10. september Resumé

Størrelse: px
Starte visningen fra side:

Download "Life. Kurt Nørmark Aalborg Universitet. 10. september Resumé"

Transkript

1 Life Kurt Nørmark Aalborg Universitet 10. september 1997 Resumé Dette skrift er et literate program for Life. Life simulerer generationer af levende cellers udvikling, med baggrund i tre simple regler for hvornår celler dør, og hvornår celler opstår. Programmet udvikles i Turbo Pascal

2 1 Introduktion Life er et fascinerende "spil", hvori man simulerer udviklingen af levende celler fra population til population. Her følger et klip fra et Computer spil, som forklarer lidt om historien af Life. The world first learned of John Conway s Life rules when they were presented in Martin Gardner s "Mathematical Games"column in the October 1970 issue of Scientific American. That and a follow-up article in February 1971 were enough to start amateur and not-soamateur mathematicians scrambling to find new and interesting Life patterns and properties. Remember that this was before the dawn of personal computers, so much of the early work was done by hand on paper and on Go boards. Early questions concerned topics like the eventual fate of various initial patterns. The famous "R Pentomino"is a five-cell pattern that finally settles down to an oscillator after 1,10 generations. Such long-lived patterns are called Methuselahs. A seven-celled Methuselah called Acorn lives for over 5,000 generations. Other questions surrounded the theoretical existence of a Garden of Eden pattern, one that has no possible ancestor. Early proofs determined that such a pattern must exist within a grid 10,000,000,000 squares on each side. By 1974, two had been found, one of which has only 226 cells. A newsletter devoted to Life research called Lifeline was published from March 1971 to September 197. Articles on Life appeared in Byte magazine, IBM Research Reports, and even Time magazine (January 1974). If you d like to learn more about Life, a good place to start is Martin Gardner s "Wheels, Life and Other Mathematical Amusements"published in 198 by W. H. Freeman and Company. 2 Spilleregler Der er tre simple regler i Life spillet: 1. En levende celle med mindre end to naboer dør af isolation. 2. En levende celle med mere end tre naboer dør af overbefolkning.. Nyt liv opstår i en tom celle, som har netop tre levende naboer. 2

3 1 x 1 y 1 x 1 y Figur 1: To generation af tre levende life celler. Figur 1 viser et simpelt eksempel på et bræt med tre levende celler (øverst) og det samme bræt efter at have anvendt reglerne (nederst). Om programmet Programmet, som udvikles på literate vis i dette skrift, er oprindelig udviklet til brug på basisuddannelsen af Kurt Nørmark (til den frie studieaktivitet Eksempel på problemløsning med datamater ). I dets nuværende udformning tjener programmet som en illustration af literate programming med det sproguafhængige værktøj Nuweb. Programmet skrives i Turbo Pascal 7.0.

4 4 Den abstrakte datatype LifeVerden En LifeVerden repræsenterer et bræt med en life population. Fra et programmeringsperspektiv repræsenterer vi en LifeVerden som en abstrakt datatype. Vores sproglige tilgang til abstrakte datatyper er simpel, i og med vi ikke anvender hverken units eller objects fra Turbo Pascal; Vi anvender derimod sprogets simple faciliteter på en disciplineret måde, således at vi opnår fordelene ved dataabstraktion. Vi beslutter at en Life Verden skal repræsenteres af en type, som vi kalder LifeVerden. Data af denne type overføres som parameter og som resultat til og fra operationer i typen. Vi udskyder beslutningen om repræsentationen af en Life verden til senere (se afsnit 6). Vi giver her et rids af den abstrakte datatype: hlifeverden ADT 4i (* ******************** ADT LifeVerden ********************** *) (* En life verden er en matrix af celler, som enten kan vaere levende eller doede *) hlifeverden constanter og typer 7i hprocedure NulstilVerden(Var V: LifeVerden; x,y: Integer); 8i hprocedure SaetStatus(var V: LifeVerden; i,j: integer; s: CelleStatus); 9ai hfunction Levende(var V: LifeVerden; i,j: Integer): Boolean; 9bi hfunction NaboLevende(var VR: LifeVerden; i,j: Integer; r: Retning): Boolean; 10ai hfunction AntalLevendeNaboer(var VR: LifeVerden; i,j: Integer): Integer; 10bi hprocedure NyGeneration(var Gammel, Ny: LifeVerden); 11i hprocedure PrintVerden(Var V: LifeVerden); 12ai hlife Verden initialiseringsprocedurer 12bi (* **************** Slut paa ADT LifeVerden ***************** *) Macro referenced in scraps 5, 16. Vi ser ovenfor hovedet af de centrale operationer på en LifeVerden. Lad os her forklare operationerne på grænseflade-niveau. Vi starter med de simple og basale. NulstilVerden er den basale initialiserings operation, som sætter alle celler til at være døde. (I slutningen af den abstrakte datatyper er der andre initialiseringsprocedurer, som definerer verden på forskellige interessante måder - mere om disse i 7.). Proceduren SaetStatus sætter celle (i,j) til at være levende; SaetStatus er altså en mutations operation på en LifeVerden. Funktionen Levende aflæser status af celle (i,j); mere specifikt returnerer funktionen 4

5 hvorvidt denne celle er levende. Nu kommer vi til de mere interessante: NaboLevende er en funktion, som undersøger hvorvidt en bestemt nabo til celle (i,j) er levende. Vi bemærker at en celle kan have op til 8 naboer (mindre hvis cellen er på grænsen af verden). Typen retning af parameter 4 tillader os at adressere en bestemt nabo til celle (i,j). Dette designes i detaljer i 7.2. Antal levende naboer tæller og returnerer antallet af naboer til celle (i,j) som er levende. Bemærk at dette er højst relevant i forhold til reglerne i Lifespillet. Proceduren NyGeneration er den central procedure, som simulerer et skridt i en LifeVerdens udvikling. Ideen er her at vi genererer en helt ny verden (2. parameter) fra den gamle verden (1. parameter). Ideen er videre at den nye verden bliver den nuværende verden efter dette skridt. Mere om dette i selve simuleringsdelen af programmet (se 5 og 8). Endelig har vi proceduren PrintVerden, som udskriver en verden på skærmen. 5 En simpel anvendelse af LifeVerden Vi viser her en simpel anvendelse af vores abstrakte datatype. Vi erklærer verden V1 og V2, hvor V1 initialiseres passende, og udskrives. Dernæst kører spillet et trin, hvilket giver V2. V2 overtager V1 s rolle, hvorpå der itereres. "life-simple.pas" 5 Program life (input, output); uses CRT, Dos; var faerdig: Boolean; hlifeverden ADT 4i Var V1,V2: LifeVerden; (* hovedprogram *) hlav en start situation i V1 6ai; repeat PrintVerden(V1); NyGeneration(V1,V2); V1 := V2 until hfaerdig 6bi end. Dette hovedprogram viser princippet i anvendelsen af LifeVerden; men hovedprogrammet er for simpelt i praksis. Vi ønsker dels lidt mere kontrol over start initialiseringen og dels over hvordan verden skal udvikle sig. Vi definerer derfor senere (afsnit 8) et mere realistisk hovedprogram. 5

6 (Det er imidlertid muligt i Nuweb at generere mere end én programfil som output. Vi genererer derfor en simpel version af programmet, foruden den egentlige version. Vi må derfor lige færdiggøre detaljerne i ovenstående simple hovedprogram: hlav en start situation i V1 6ai LavTilfaeldigVerden(V1, xverdenmax, yverdenmax) Macro referenced in scrap 5. hfaerdig 6bi false Macro referenced in scrap 5. Vi beslutter altså, at det simple program skal tage udgangspunkt i en simpel verden, og køre indtil vi (brutalt) slår det ned (med Ctrl Break i Turbo Pascal). ) 6 Datarepræsentation i LifeVerden. Nu hvor vi har introduceret grænsefladen af den abstrakte datatype, og hvor vi har skitseret princippet i anvendelsen af den centrale procedure NyGeneration er det tiden hvor vi skal beslutte os for, hvorledes vi repræsenterer en LifeVerden. Vi vælger den simple og oplagte løsning: et to-dimensionelt array. Vi introducerer to konstanter xverdenmax og yverdenmax, som angiver absolutte grænser for verdens størrelse. (Disse er her valgt til størrelser, som tillader os at vise enhver LifeVerden på en PC skærm i DOS mode, hvor vi benytter et tegn pr. celle). Bemærk, at vi sammen med tabellen har mulighed for at angive en mindre verden gennem felterne xmax og ymax i recorden LifeVerden. 6

7 NV V SV N NØ Ø S SØ Figur 2: De otte verdenshjørner af en celle. hlifeverden constanter og typer 7i Const xverdenmax = 74; (* Absolutte graenser *) yverdenmax = 24; (* for stoerrelsen af verden *) Type CelleStatus = (I_live,Doed); LifeVerden = record matrix: array[1..xverdenmax,1..yverdenmax] of CelleStatus; xmax: 1..xVerdenMax; ymax: 1..yVerdenMax; end; Retning = (N,NO,O,SO,S,SV,V,NV); Macro referenced in scrap 4. Vi kan, i forbifarten, bemærke, at der naturligvis findes mange andre måder at repræsentere en verden i Life. Hvis verden er stor, og hvis der er få celler, vil det givetvis være mere oplagt at repræsentere verden som en liste af levende celler. I denne forbindelse er det beroligende for os, at vi programmerer en Life verden som en abstrakt datatype, hvor vi jo forholdsvis let kan udskifte repræsentationen. Ovenfor har vi endvidere vist typen Retning, som blev omtalt i afsnit 4 ovenfor. Man skal tænke på konstanterne i opremsningen Retning som verdenshjørner: N for Nord, NO for Nord Øst, etc. Se endvidere figur 2. 7

8 7 Operationerne i den abstrakte datatype. Vi kan nu gå igang med at programmere operationerne i den abstrakte datatype. Vi angriber disse i samme rækkefølge som vi introducerede dem ovenfor. Vi grupperer operationerne som basale, interessante og initialiserende. 7.1 De basale operationer Vi starter med NulstilVerden, som blot sætter alle celler til at være døde: hprocedure NulstilVerden(Var V: LifeVerden; x,y: Integer); 8i Procedure NulstilVerden(Var V: LifeVerden; x,y: Integer); var i,j: Integer; V.xmax := x; V.ymax := y; for j:= 1 to yverdenmax do for i := 1 to xverdenmax do V.Matrix[i,j] := Doed end; (* NulstilVerden *) Macro referenced in scrap 4. Så følger SaetStatus. Vi har nu behov for at beslutte, hvordan vi vil håndtere vores del af verden i forhold til hele universet. Med andre ord, skal vi besluttet hvordan vi håndterer de celler, som ligger uden for rektanglet (1..xmax, 1..ymax). Vores beslutning er meget væsentlig for hvordan vi håndterer celler på randen af verden lidt senere i programmet. Beslutningen er følgende: Alle celler uden for det rektangel, som vi repræsenterer eksplicit, opfattes som døde. Vi har ingen mulighed for at ændre celler udenfor rektanglet. Vi vil derimod kunne aflæse disse (og resultatet skal altid være, at disse er døde). Med disse beslutninger er SaetStatus enkelt at lave: 8

9 hprocedure SaetStatus(var V: LifeVerden; i,j: integer; s: CelleStatus); 9ai Procedure SaetStatus(var V: LifeVerden; i,j: integer; s: CelleStatus); (* Definer indholdet at celle (i,j) i verden V til status s *) if (i >= 1) and (i <= V.xmax) and (j >= 1) and (j <= V.ymax) then V.matrix[i,j] := s end; Macro referenced in scrap 4. Ligeledes kan vi umiddelbart programmere aflæsningsfunktionen Levende: hfunction Levende(var V: LifeVerden; i,j: Integer): Boolean; 9bi Function Levende(var V: LifeVerden; i,j: Integer): Boolean; (* Returner hvorvidt felt (i,j) i verden V er levende. (i,j) kan angive et felt uden for verden, i hvilket tilfaelde resultatet er falsk *) if (i < 1) or (i > V.xmax) or (j < 1) or (j > V.ymax) then Levende := false else Levende := V.matrix[i,j] = I_live end; (* Levende *) Macro referenced in scrap 4. Vi bemærker hvorledes vi returnerer false for alle celler uden for den repræsenterede verden. 7.2 De interessante operationer Nu kommer vi til en operation som er lidt træls. For at kunne implementere reglerne fra 2 har vi brug for at kunne spørge på status af nabocellerne af celle (i,j). Vi har besluttet at naboceller refereres ved brug af verdenshjørne angivelse, som omtalt i afsnit 6. Det er her vi betaler prisen for denne pæne måde at referere til nabocellerne. Med andre ord: Det er her vi implementerer hvad celle nord for celle (i,j) er for en celle, og så fremdeles. 9

10 hfunction NaboLevende(var VR: LifeVerden; i,j: Integer; r: Retning): Boolean; 10ai Function NaboLevende(var VR: LifeVerden; i,j: Integer; r: Retning): Boolean; (* Returner hvorvidt feltet i retning r i forhold til feltet (i,j) er levende. Et felt der falder uden for verden er altid doedt *) case r of N: NaboLevende := Levende(VR,i,j-1); NO: NaboLevende := Levende(VR,i+1,j-1); O: NaboLevende := Levende(VR,i+1,j); SO: NaboLevende := Levende(VR,i+1,j+1); S: NaboLevende := Levende(VR,i,j+1); SV: NaboLevende := Levende(VR,i-1,j+1); V: NaboLevende := Levende(VR,i-1,j); NV: NaboLevende := Levende(VR,i-1,j-1); end (* case *) end; (* NaboLevende *) Macro referenced in scrap 4. Når man nærlæser reglerne i spillet kan man se, at alle tre regler refererer til antallet af (levende) naboceller. Vi nærmer os kraftig implementationen af reglerne hvis vi kan programmere en funktion, som returnerer antallet af levende naboer. Og fordi vi har været lidt smarte i forbindelse med introduktionen af de otte verdenshjørner omkring en celle kan vi direkte gennemløbe naboerne til en celle i en for-løkke: hfunction AntalLevendeNaboer(var VR: LifeVerden; i,j: Integer): Integer; 10bi Function AntalLevendeNaboer(var VR: LifeVerden; i,j: Integer): Integer; var r: Retning; antal: integer; antal := 0; for r := N to NV do if NaboLevende(VR,i,j,r) then antal := antal + 1; AntalLevendeNaboer := antal end; (* AntalLevendeNaboer *) Macro referenced in scrap 4. Vi kommer nu til den absolutte kulmination af vores programmeringsarbejde, nemlig til operationen som simulerer et helt skridt fra en gammel verden til en ny verden. Man kunne umiddelbart være fristet til 10

11 at mutere en LifeVerden, ved at anvende reglerne iterativt ned over alle celler. Dette går dog galt, idet reglerne skal anvendes simultant på alle celler, inden vi kan foretage forandringer. Vi vælger derfor her den lette løsning, hvor vi genererer en helt ny verden på basis af den gamle: hprocedure NyGeneration(var Gammel, Ny: LifeVerden); 11i Procedure NyGeneration(var Gammel, Ny: LifeVerden); (* På basis af den gamle verden laves en ny verden *) var i,j: integer; NulstilVerden(Ny, Gammel.xmax, Gammel.ymax); for j:= 1 to Gammel.ymax do for i := 1 to Gammel.xmax do if Levende(Gammel,i,j) then if (AntalLevendeNaboer(Gammel,i,j) < 2) or (AntalLevendeNaboer(Gammel,i,j) > ) then SaetStatus(Ny,i,j,Doed) else SaetStatus(Ny,i,j,I_live) else (* (i,j) i Gammel er doed *) if AntalLevendeNaboer(Gammel,i,j) = then SaetStatus(Ny,i,j,I_live) else SaetStatus(Ny,i,j,Doed) end; (* NyGeneration *) Macro referenced in scrap 4. Vi starter med at nustille den nye verden, hvorefter vi en en dobbelt for-løkke gennemløber alle cellerne i den gamle verden (og ny verden) og samtidigt definerer cellerne passende i den nye verden. Bemærk venligst hvor naturligt vi kan formulere de tre Life regler i programmet. Årsagen er naturligvis at vi har udført et grundigt forarbejde i forbindelse med programmeringen af funktionenerne AntalLevendeNaboer og Levende. Vi kommer nu til proceduren, som udskriver en LifeVerden på skærmen: 11

12 hprocedure PrintVerden(Var V: LifeVerden); 12ai Procedure PrintVerden(Var V: LifeVerden); (* Udskriv verden V *) var i,j: integer; ClrScr; for j:= 1 to V.ymax do for i := 1 to V.xmax do if Levende(V,i,j) then write( X ) else write( ); writeln; end; end; (* PrintVerden *) Macro referenced in scrap 4. Vi ser, at en levende celle markeres med et kryds (et X ), og at en død celle markes med ingenting (et mellemrum). 7. De initialiserende operationer Nu viser vi en række operationer, som initialiserer en LifeVerden til at indeholde forskellige interessante mønstre. Bemærk at disse operationer naturligvis er i familie med operationen NulstilVerden fra 7.1 ovenfor. hlife Verden initialiseringsprocedurer 12bi (* PROCEDURURER SOM ALLE LAVER EN BESTEMT START PAA VERDEN *) hprocedure LavTilfaeldigVerden(Var V: LifeVerden; x,y: Integer); 1ai hprocedure LavTrafikLys(Var V: LifeVerden; x,y: Integer); 1bi hprocedure LavDiagonal1(Var V: LifeVerden; x,y: Integer); 14ai hprocedure LavKryds(Var V: LifeVerden; x,y: Integer); 14bi hprocedure LavGlider(Var V: LifeVerden; x,y: Integer); 14ci hprocedure LavBjaelke(Var V: LifeVerden; x,y: Integer); 15i Macro referenced in scrap 4. Først LavTilfaeldigVerden, der, som navnet antyder, drysser levende celler ud over verden på pseudotilfældig vis: 12

13 hprocedure LavTilfaeldigVerden(Var V: LifeVerden; x,y: Integer); 1ai Procedure LavTilfaeldigVerden(Var V: LifeVerden; x,y: Integer); (* Initialiser verden V tilfaeldigt. Saet stoerrelsen af verden til [1.. x, 1.. y] *) var i,j: integer; r: Word; Randomize; NulstilVerden(V,x,y); for j:= 1 to V.ymax do for i := 1 to V.xmax do r := Random(2); (* enten 0 eller 1 *) if r = 0 then SaetStatus(V,i,j,Doed) else if r = 1 then SaetStatus(V,i,j,I_live) else halt end; end; (* LavTilfaeldigVerden *) Macro referenced in scrap 12b. Alle øvrige initialiseringsprocedurer laver nøje udvalgte mønstre, som udvikler sig på en sjov måde. Dette er næsten umuligt at forklare. Det skal opleves! hprocedure LavTrafikLys(Var V: LifeVerden; x,y: Integer); 1bi Procedure LavTrafikLys(Var V: LifeVerden; x,y: Integer); var i: integer; NulstilVerden(V,x,y); for i := 1 to 5 do SaetStatus(V,10,11+i,I_live); end; Macro referenced in scrap 12b. 1

14 hprocedure LavDiagonal1(Var V: LifeVerden; x,y: Integer); 14ai Procedure LavDiagonal1(Var V: LifeVerden; x,y: Integer); var i: integer; NulstilVerden(V,x,y); for i := 1 to V.xmax do SaetStatus(V,i,i,I_live); end; Macro referenced in scrap 12b. hprocedure LavKryds(Var V: LifeVerden; x,y: Integer); 14bi Procedure LavKryds(Var V: LifeVerden; x,y: Integer); var i: integer; NulstilVerden(V,x,y); for i := 1 to V.xmax do SaetStatus(V,i,i,I_live); for i:= 1 to V.xmax do SaetStatus(V,V.xmax-i+1,i,I_live); end; Macro referenced in scrap 12b. hprocedure LavGlider(Var V: LifeVerden; x,y: Integer); 14ci Procedure LavGlider(Var V: LifeVerden; x,y: Integer); NulstilVerden(V,x,y); SaetStatus(V,12,12,I_live); SaetStatus(V,1,12,I_live); SaetStatus(V,14,12,I_live); SaetStatus(V,14,11,I_live); SaetStatus(V,1,10,I_live); end; Macro referenced in scrap 12b. 14

15 hprocedure LavBjaelke(Var V: LifeVerden; x,y: Integer); 15i Procedure LavBjaelke(Var V: LifeVerden; x,y: Integer); var i: integer; NulstilVerden(V,x,y); for i := 1 to 7 do SaetStatus(V,10,11+i,I_live); end; Macro referenced in scrap 12b. Hermed slutter vi arbejdet med den abstrakte datatype LifeVerden, og vi vender blikket mod hovedprogrammet, og hvad vi nu har brug for til dette. 8 Det rigtige hovedprogram Vi har tidligere (afsnit 5) programmeret et simpelt hovedprogram, som vi nu vil forfine til vores egentlige hovedprogram. Vi viser samtidig arkitekturen af det samlede program: 15

16 "life.pas" 16 Program life (input, output); uses CRT, Dos; var faerdig: Boolean; hlifeverden ADT 4i hprocedure LavStartSituation(var V: LifeVerden); 18i hprocedure KoerUendeligt(var V1: LifeVerden); 17i Var V1,V2: LifeVerden; c: Char; ClrScr; faerdig := false; LavStartSituation(V1); repeat PrintVerden(V1); c := ReadKey; if c = then NyGeneration(V1,V2); V1 := V2 end else if c = r then KoerUendeligt(V1) else clrscr; LavStartSituation(V1) end until faerdig end. Nogle få ord om hovedprogrammet: Vi ønsker at have tre muligheder i hovedprogrammet: 1. At kunne udvikle generationerne én for én, på en kontrolleret måde. Interaktionsmæssigt følger én generation efter en anden når vi trykker på mellemrumstasten på tastaturet. 2. At kunne udvikle generationerne lige så hurtigt som maskinen formår at beregne og udskrive dem. Dette er nyttigt hvis vi ønsker at undersøge, om verden konvergerer mod et eller andet stabilt eller semi-stabilt mønster. Dette løses af proceduren KørUendeligt. 16

17 . At kunne angive en ny, interessant startverden blandt dem vi har programmeret i afsnit 7.. Dette løses af proceduren LavStartSituation. Ud over disse kunne man være fristet til interaktivt at angive en ny start verden. Vi modstår dog fristelsen her. Proceduren KoerUendligt går ind i en uendelig løkke, som skal termineres via operativsystemet. I Turbo Pascal gøres dette med Control Break tastaturkombinationen. Dette er nok ikke så pænt et design, men detvarletatlave... hprocedure KoerUendeligt(var V1: LifeVerden); 17i procedure KoerUendeligt(var V1: LifeVerden); var V2: LifeVerden; repeat NyGeneration(V1,V2); V1 := V2; PrintVerden(V1) until false; end; (* KoerUendeligt *) Macro referenced in scrap 16. Her kommer så den lidt trælse og primitive dialog, hvor vi spørger brugeren om, hvordan startsituationen skal være. Bemærk hvordan vi i case 7 afslutter programudførelsen på normal vis. 17

18 hprocedure LavStartSituation(var V: LifeVerden); 18i procedure LavStartSituation(var V: LifeVerden); (* Spørg brugeren om starten paa verden *) var valg: Integer; writeln( Vælg mellem foelgende startsituationer: ); writeln( 1. Tilfalldig verden ); writeln( 2. Diagonal ); writeln(. Kryds ); writeln( 4. Trafiklys ); writeln( 5. Glider ); writeln( 6. Bjaelke ); writeln( 7. Slut ); readln(valg); case valg of 1: LavTilfaeldigVerden(V,xVerdenMax,yVerdenMax); 2: LavDiagonal1(V,YVerdenmax,YVerdenMax); : LavKryds(V,YVerdenmax,YVerdenMax); 4: LavTrafikLys(V,xVerdenMax,yVerdenMax); 5: LavGlider(V,xVerdenMax,yVerdenMax); 6: LavBjaelke(V,xVerdenMax,yVerdenMax); 7: faerdig := true; (* faerdig er en global variabel *) end; (* case *) end; (* LavStartSituation *) Macro referenced in scrap Register hfunction AntalLevendeNaboer(var VR: LifeVerden; i,j: Integer): Integer; 10bi Referenced in scrap 4. hfunction Levende(var V: LifeVerden; i,j: Integer): Boolean; 9bi Referenced in scrap 4. hfunction NaboLevende(var VR: LifeVerden; i,j: Integer; r: Retning): Boolean; 10ai Referenced in scrap 4. hlav en start situation i V1 6ai Referenced in scrap 5. hlife Verden initialiseringsprocedurer 12bi Referenced in scrap 4. hlifeverden ADT 4i Referenced in scraps 5, 16. hlifeverden constanter og typer 7i Referenced in scrap 4. hprocedure LavBjaelke(Var V: LifeVerden; x,y: Integer); 15i Referenced in scrap 12b. hprocedure LavDiagonal1(Var V: LifeVerden; x,y: Integer); 14ai Referenced in scrap 12b. hprocedure LavGlider(Var V: LifeVerden; x,y: Integer); 14ci Referenced in scrap 12b. hprocedure LavKryds(Var V: LifeVerden; x,y: Integer); 14bi Referenced in scrap 12b. hprocedure LavTilfaeldigVerden(Var V: LifeVerden; x,y: Integer); 1ai Referenced in scrap 12b. hprocedure LavTrafikLys(Var V: LifeVerden; x,y: Integer); 1bi Referenced in scrap 12b. hprocedure NulstilVerden(Var V: LifeVerden; x,y: Integer); 8i Referenced in scrap 4. 18

19 hprocedure NyGeneration(var Gammel, Ny: LifeVerden); 11i Referenced in scrap 4. hprocedure PrintVerden(Var V: LifeVerden); 12ai Referenced in scrap 4. hprocedure SaetStatus(var V: LifeVerden; i,j: integer; s: CelleStatus); 9ai Referenced in scrap 4. hfaerdig 6bi Referenced in scrap 5. hprocedure KoerUendeligt(var V1: LifeVerden); 17i Referenced in scrap 16. hprocedure LavStartSituation(var V: LifeVerden); 18i Referenced in scrap 16. AntalLevendeNaboer: 4, 10b, 11. c: 16. CelleStatus:4,7,9a. Doed:7, 8, 11, 1a. faerdig:5,16, 18. I_live:7, 9b, 11, 1ab, 14abc, 15. KoerUendeligt: 16, 17. LavBjaelke: 12b, 15, 18. LavDiagonal1: 12b, 14a, 18. LavGlider: 12b, 14c, 18. LavKryds: 12b, 14b, 18. LavStartSituation: 16, 18. LavTilfaeldigVerden: 6a, 12b, 1a, 18. LavTrafikLys: 12b, 1b, 18. Levende:4,9b, 10a, 11, 12a. LifeVerden:4,5,7, 8, 9ab, 10ab, 11, 12ab, 1ab, 14abc, 15, 16, 17, 18. matrix:4,7, 9ab. N: 7, 10ab. NaboLevende: 4, 10a, 10b. NO:7, 10a. NulstilVerden:4,8, 11, 1ab, 14abc, 15. NV:7, 10ab. NyGeneration:4,5,11, 16, 17. O: 7, 10a. PrintVerden:4,5,12a, 16, 17. Retning:4,7, 10ab. S: 7, 10a. SaetStatus:4,9a, 11, 1ab, 14abc, 15. SO:7, 10a. SV:7, 10a. V: 4,7, 8, 9ab, 10a, 12ab, 1ab, 14abc, 15, 16, 18. V1:5,6a,16, 17. V2:5,16, 17. xmax:7, 8, 9ab, 11, 12a, 1a, 14ab. xverdenmax: 6a, 7, 8, 18. ymax:7, 8, 9ab, 11, 12a, 1a. yverdenmax: 6a, 7, 8,

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

LESSON NOTES Extensive Reading in Danish for Intermediate Learners #8 How to Interview

LESSON NOTES Extensive Reading in Danish for Intermediate Learners #8 How to Interview LESSON NOTES Extensive Reading in Danish for Intermediate Learners #8 How to Interview CONTENTS 2 Danish 5 English # 8 COPYRIGHT 2019 INNOVATIVE LANGUAGE LEARNING. ALL RIGHTS RESERVED. DANISH 1. SÅDAN

Læs mere

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1 Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words

Læs mere

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Algoritmedesign med internetanvendelser ved Keld Helsgaun Algoritmedesign med internetanvendelser ved Keld Helsgaun 1 Analyse af algoritmer Input Algoritme Output En algoritme er en trinvis metode til løsning af et problem i endelig tid 2 Algoritmebegrebet D.

Læs mere

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION

Læs mere

Det er muligt at chekce følgende opg. i CodeJudge: og

Det er muligt at chekce følgende opg. i CodeJudge: og Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.

Læs mere

Trolling Master Bornholm 2016 Nyhedsbrev nr. 8

Trolling Master Bornholm 2016 Nyhedsbrev nr. 8 Trolling Master Bornholm 2016 Nyhedsbrev nr. 8 English version further down Der bliver landet fisk men ikke mange Her er det Johnny Nielsen, Søløven, fra Tejn, som i denne uge fangede 13,0 kg nord for

Læs mere

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes.

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes. Brug sømbrættet til at lave sjove figurer. Lav f: Et dannebrogsflag Et hus med tag, vinduer og dør En fugl En bil En blomst Få de andre til at gætte, hvad du har lavet. Use the nail board to make funn

Læs mere

extreme Programming Kunders og udvikleres menneskerettigheder

extreme Programming Kunders og udvikleres menneskerettigheder extreme Programming Software Engineering 13 1 Kunders og udvikleres menneskerettigheder Kunder: At sætte mål og få projektet til at følge dem At kende varighed og pris At bestemme softwarefunktionalitet

Læs mere

Black Jack --- Review. Spring 2012

Black Jack --- Review. Spring 2012 Black Jack --- Review Spring 2012 Simulation Simulation can solve real-world problems by modeling realworld processes to provide otherwise unobtainable information. Computer simulation is used to predict

Læs mere

Netværksalgoritmer 1

Netværksalgoritmer 1 Netværksalgoritmer 1 Netværksalgoritmer Netværksalgoritmer er algoritmer, der udføres på et netværk af computere Deres udførelse er distribueret Omfatter algoritmer for, hvorledes routere sender pakker

Læs mere

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende Changes for Rottedatabasen Web Service The coming version of Rottedatabasen Web Service will have several changes some of them breaking for the exposed methods. These changes and the business logic behind

Læs mere

! "# $$ &'()*"* +*, & &"*0* & "# % %- %

! # $$ &'()** +*, & &*0* & # % %- % !"! "# $$ & &'()*"* +*, &- & &"./+0 & &"*0* & & & 1 2 ()))))$$" "# - " # $!&!!" 34 3((5(4 6()))))5 3((5# 7())))) 4 3((58 43((58 3((5#9! 3((5#4 3((584 6 9 # '"!&()!" * " 49 9-3 :; & Private Sub Workbook_Open()

Læs mere

1 s01 - Jeg har generelt været tilfreds med praktikopholdet

1 s01 - Jeg har generelt været tilfreds med praktikopholdet Praktikevaluering Studerende (Internship evaluation Student) Husk at trykke "Send (Submit)" nederst (Remember to click "Send (Submit)" below - The questions are translated into English below each of the

Læs mere

1 What is the connection between Lee Harvey Oswald and Russia? Write down three facts from his file.

1 What is the connection between Lee Harvey Oswald and Russia? Write down three facts from his file. Lee Harvey Oswald 1 Lee Harvey Oswald s profile Read Oswald s profile. Answer the questions. 1 What is the connection between Lee Harvey Oswald and Russia? Write down three facts from his file. 2 Oswald

Læs mere

Trolling Master Bornholm 2016 Nyhedsbrev nr. 5

Trolling Master Bornholm 2016 Nyhedsbrev nr. 5 Trolling Master Bornholm 2016 Nyhedsbrev nr. 5 English version further down Kim Finne med 11 kg laks Laksen blev fanget i denne uge øst for Bornholm ud for Nexø. Et andet eksempel er her to laks taget

Læs mere

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

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

Læs mere

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index DET KONGELIGE Index Download driver... 2 Find the Windows 7 version.... 2 Download the Windows Vista driver.... 4 Extract driver... 5 Windows Vista installation of a printer.... 7 Side 1 af 12 DET KONGELIGE

Læs mere

Basic statistics for experimental medical researchers

Basic statistics for experimental medical researchers Basic statistics for experimental medical researchers Sample size calculations September 15th 2016 Christian Pipper Department of public health (IFSV) Faculty of Health and Medicinal Science (SUND) E-mail:

Læs mere

Trolling Master Bornholm 2014

Trolling Master Bornholm 2014 Trolling Master Bornholm 2014 (English version further down) Ny præmie Trolling Master Bornholm fylder 10 år næste gang. Det betyder, at vi har fundet på en ny og ganske anderledes præmie. Den fisker,

Læs mere

Trolling Master Bornholm 2012

Trolling Master Bornholm 2012 Trolling Master Bornholm 1 (English version further down) Tak for denne gang Det var en fornøjelse især jo også fordi vejret var med os. Så heldig har vi aldrig været før. Vi skal evaluere 1, og I må meget

Læs mere

Aarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00

Aarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00 Page 1/12 Aarhus Universitet, Science and Technology, Computer Science Exam Wednesday 27 June 2018, 9:00-11:00 Allowed aid: None The exam questions are answered on the problem statement that is handed

Læs mere

Linear Programming ١ C H A P T E R 2

Linear Programming ١ C H A P T E R 2 Linear Programming ١ C H A P T E R 2 Problem Formulation Problem formulation or modeling is the process of translating a verbal statement of a problem into a mathematical statement. The Guidelines of formulation

Læs mere

Vina Nguyen HSSP July 13, 2008

Vina Nguyen HSSP July 13, 2008 Vina Nguyen HSSP July 13, 2008 1 What does it mean if sets A, B, C are a partition of set D? 2 How do you calculate P(A B) using the formula for conditional probability? 3 What is the difference between

Læs mere

Hvor er mine runde hjørner?

Hvor er mine runde hjørner? Hvor er mine runde hjørner? Ofte møder vi fortvivlelse blandt kunder, når de ser deres nye flotte site i deres browser og indser, at det ser anderledes ud, i forhold til det design, de godkendte i starten

Læs mere

Skriftlig Eksamen Kombinatorik, Sandsynlighed og Randomiserede Algoritmer (DM528)

Skriftlig Eksamen Kombinatorik, Sandsynlighed og Randomiserede Algoritmer (DM528) Skriftlig Eksamen Kombinatorik, Sandsynlighed og Randomiserede Algoritmer (DM58) Institut for Matematik og Datalogi Syddansk Universitet, Odense Torsdag den 1. januar 01 kl. 9 13 Alle sædvanlige hjælpemidler

Læs mere

Trolling Master Bornholm 2014

Trolling Master Bornholm 2014 Trolling Master Bornholm 2014 (English version further down) Så er ballet åbnet, 16,64 kg: Det er Kim Christiansen, som i mange år også har deltaget i TMB, der tirsdag landede denne laks. Den måler 120

Læs mere

Exceptions i Delphi. Try except

Exceptions i Delphi. Try except Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,

Læs mere

DANMARKS TEKNISKE UNIVERSITET

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

Læs mere

Trolling Master Bornholm 2016 Nyhedsbrev nr. 6

Trolling Master Bornholm 2016 Nyhedsbrev nr. 6 Trolling Master Bornholm 2016 Nyhedsbrev nr. 6 English version further down Johnny Nielsen med 8,6 kg laks Laksen blev fanget seks sømil ud for Tejn. Det var faktisk dobbelthug, så et kig ned i køletasken

Læs mere

LUL s Flower Power Vest dansk version

LUL s Flower Power Vest dansk version LUL s Flower Power Vest dansk version Brug restgarn i bomuld, bomuld/acryl, uld etc. 170-220 m/50 g One size. Passer str S-M. Brug større hæklenål hvis der ønskes en større størrelse. Hæklenål 3½ mm. 12

Læs mere

Kunstig intelligens. Thomas Bolander, Lektor, DTU Compute. Siri-kommissionen, 17. august Thomas Bolander, Siri-kommissionen, 17/8-16 p.

Kunstig intelligens. Thomas Bolander, Lektor, DTU Compute. Siri-kommissionen, 17. august Thomas Bolander, Siri-kommissionen, 17/8-16 p. Kunstig intelligens Thomas Bolander, Lektor, DTU Compute Siri-kommissionen, 17. august 2016 Thomas Bolander, Siri-kommissionen, 17/8-16 p. 1/10 Lidt om mig selv Thomas Bolander Lektor i logik og kunstig

Læs mere

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov.

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov. På dansk/in Danish: Aarhus d. 10. januar 2013/ the 10 th of January 2013 Kære alle Chefer i MUS-regi! Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov. Og

Læs mere

International matematikkonkurrence

International matematikkonkurrence 60 minutter Navn og klasse 3 point pr. opgave Hjælpemidler: papir og blyant 1 Et rektangel er delvist skjult bag et gardin. Hvillken form har den skjulte del? A En trekant B Et kvadrat C En sekskant D

Læs mere

Trolling Master Bornholm 2015

Trolling Master Bornholm 2015 Trolling Master Bornholm 2015 (English version further down) Panorama billede fra starten den første dag i 2014 Michael Koldtoft fra Trolling Centrum har brugt lidt tid på at arbejde med billederne fra

Læs mere

Noter til kursusgang 8, IMAT og IMATØ

Noter til kursusgang 8, IMAT og IMATØ Noter til kursusgang 8, IMAT og IMATØ matematik og matematik-økonomi studierne 1. basissemester Esben Høg 25. oktober 2013 Institut for Matematiske Fag Aalborg Universitet Esben Høg Noter til kursusgang

Læs mere

DONG-område Resten af landet

DONG-område Resten af landet TDC A/S regulering@tdc.dk Fremsendes alene via mail Tillægsafgørelse vedrørende fastsættelse af priser for BSA leveret via TDC s fibernet 1 Indledning traf fredag den 15. april 2011 LRAIC-prisafgørelse

Læs mere

Skriftlig Eksamen Beregnelighed (DM517)

Skriftlig Eksamen Beregnelighed (DM517) Skriftlig Eksamen Beregnelighed (DM517) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 31 Oktober 2011, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug af lommeregner

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

CHAPTER 8: USING OBJECTS

CHAPTER 8: USING OBJECTS Ruby: Philosophy & Implementation CHAPTER 8: USING OBJECTS Introduction to Computer Science Using Ruby Ruby is the latest in the family of Object Oriented Programming Languages As such, its designer studied

Læs mere

To the reader: Information regarding this document

To the reader: Information regarding this document To the reader: Information regarding this document All text to be shown to respondents in this study is going to be in Danish. The Danish version of the text (the one, respondents are going to see) appears

Læs mere

Trolling Master Bornholm 2016 Nyhedsbrev nr. 3

Trolling Master Bornholm 2016 Nyhedsbrev nr. 3 Trolling Master Bornholm 2016 Nyhedsbrev nr. 3 English version further down Den første dag i Bornholmerlaks konkurrencen Formanden for Bornholms Trollingklub, Anders Schou Jensen (og meddomer i TMB) fik

Læs mere

Programmering i C. Lektion september 2009

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

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Typer og Mønstergenkendelse Martin Elsman Datalogisk Institut Københavns Universitet DIKU 23. Oktober, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017

Læs mere

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang

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

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

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

Læs mere

3 Algebraisk Specifikation af Abstrakte Datatyper.

3 Algebraisk Specifikation af Abstrakte Datatyper. 3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.

Læs mere

Engineering of Chemical Register Machines

Engineering of Chemical Register Machines Prague International Workshop on Membrane Computing 2008 R. Fassler, T. Hinze, T. Lenser and P. Dittrich {raf,hinze,thlenser,dittrich}@minet.uni-jena.de 2. June 2008 Outline 1 Motivation Goal Realization

Læs mere

Part 5 Leisure Time and Transport

Part 5 Leisure Time and Transport Part 5 Leisure Time and Transport Lesson 3 Situation and Listen & Practice Situation Line and Louise are colleagues. They meet at a café before work. Line is late because h bike had a puncture on the way.

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

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

Noter til C# Programmering Iteration

Noter til C# Programmering Iteration Noter til C# Programmering Iteration Programflow Programmer udfører det meste af deres arbejde vha. forgrening og løkker. Løkker Mange programmeringsproblemer kan løses ved at gentage en handling på de

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

Engelsk A. Højere teknisk eksamen. 1. delprøve - uden hjælpemidler. Fredag den 20. august kl

Engelsk A. Højere teknisk eksamen. 1. delprøve - uden hjælpemidler. Fredag den 20. august kl Engelsk A Højere teknisk eksamen 1. delprøve - uden hjælpemidler kl. 9.00-10.00 htx102-eng/a-20082010 Fredag den 20. august 2010 kl. 9.00-14.00 htx102-eng/a-20082010 Side 1 af 7 sider Nedenstående rubrikker

Læs mere

Titel: Barry s Bespoke Bakery

Titel: Barry s Bespoke Bakery Titel: Tema: Kærlighed, kager, relationer Fag: Engelsk Målgruppe: 8.-10.kl. Data om læremidlet: Tv-udsendelse: SVT2, 03-08-2014, 10 min. Denne pædagogiske vejledning indeholder ideer til arbejdet med tema

Læs mere

www.cfufilmogtv.dk Tema: Pets Fag: Engelsk Målgruppe: 4. klasse Titel: Me and my pet Vejledning Lærer

www.cfufilmogtv.dk Tema: Pets Fag: Engelsk Målgruppe: 4. klasse Titel: Me and my pet Vejledning Lærer Me and my pet My dogs SVTV2, 2011, 5 min. Tekstet på engelsk Me and my pet er en svenskproduceret undervisningsserie til engelsk for børn i 4. klasse, som foregår på engelsk, i engelsktalende lande og

Læs mere

Lær Python dag 1 - modul 1

Lær Python dag 1 - modul 1 Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen

Læs mere

Barnets navn: Børnehave: Kommune: Barnets modersmål (kan være mere end et)

Barnets navn: Børnehave: Kommune: Barnets modersmål (kan være mere end et) Forældreskema Barnets navn: Børnehave: Kommune: Barnets modersmål (kan være mere end et) Barnets alder: år og måneder Barnet begyndte at lære dansk da det var år Søg at besvare disse spørgsmål så godt

Læs mere

3. Om skalamønstrene og den indfoldede orden

3. Om skalamønstrene og den indfoldede orden Dette er den tredje af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 3. Om skalamønstrene og den indfoldede orden Lad os begynde

Læs mere

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX IT -Eksamen Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX [Vælg en dato] Indhold Indledning... 2 Teori... 3 Hvorfor dette design... 4 Produktet... 4 Test og afprøvning... 9 Konklusion... 10 Indledning

Læs mere

Engelsk. Niveau D. De Merkantile Erhvervsuddannelser September Casebaseret eksamen. og

Engelsk. Niveau D. De Merkantile Erhvervsuddannelser September Casebaseret eksamen.  og 052431_EngelskD 08/09/05 13:29 Side 1 De Merkantile Erhvervsuddannelser September 2005 Side 1 af 4 sider Casebaseret eksamen Engelsk Niveau D www.jysk.dk og www.jysk.com Indhold: Opgave 1 Presentation

Læs mere

Measuring Evolution of Populations

Measuring Evolution of Populations Measuring Evolution of Populations 2007-2008 5 Agents of evolutionary change Mutation Gene Flow Non-random mating Genetic Drift Selection Populations & gene pools Concepts a population is a localized group

Læs mere

Trolling Master Bornholm 2016 Nyhedsbrev nr. 7

Trolling Master Bornholm 2016 Nyhedsbrev nr. 7 Trolling Master Bornholm 2016 Nyhedsbrev nr. 7 English version further down Så var det omsider fiskevejr En af dem, der kom på vandet i en af hullerne, mellem den hårde vestenvind var Lejf K. Pedersen,

Læs mere

Danish Language Course for International University Students Copenhagen, 12 July 1 August Application form

Danish Language Course for International University Students Copenhagen, 12 July 1 August Application form Danish Language Course for International University Students Copenhagen, 12 July 1 August 2017 Application form Must be completed on the computer in Danish or English All fields are mandatory PERSONLIGE

Læs mere

ArbejsskadeAnmeldelse

ArbejsskadeAnmeldelse ArbejsskadeAnmeldelse OpretAnmeldelse 001 All Klassifikations: KlassifikationKode is an unknown value in the current Klassifikation 002 All Klassifikations: KlassifikationKode does not correspond to KlassifikationTekst

Læs mere

HOW MANY? FORMÅL MATERIALER OPDELING AF ELEVER

HOW MANY? FORMÅL MATERIALER OPDELING AF ELEVER P HOW MANY? FORMÅL MATERIALER OPDELING AF ELEVER Samtale, træning af faste udtryk, spørgsmål og svar. Endvidere en lejlighed til at træne tallene. - Spørgsmålskort - Lærerark til hjælp ved oplæsning og

Læs mere

Blomsten er rød (af Harry Chapin, oversat af Niels Hausgaard)

Blomsten er rød (af Harry Chapin, oversat af Niels Hausgaard) Blomsten er rød (af Harry Chapin, oversat af Niels Hausgaard) På den allerførste skoledag fik de farver og papir. Den lille dreng farved arket fuldt. Han ku bare ik la vær. Og lærerinden sagde: Hvad er

Læs mere

On the complexity of drawing trees nicely: corrigendum

On the complexity of drawing trees nicely: corrigendum Acta Informatica 40, 603 607 (2004) Digital Object Identifier (DOI) 10.1007/s00236-004-0138-y On the complexity of drawing trees nicely: corrigendum Thorsten Akkerman, Christoph Buchheim, Michael Jünger,

Læs mere

how to save excel as pdf

how to save excel as pdf 1 how to save excel as pdf This guide will show you how to save your Excel workbook as PDF files. Before you do so, you may want to copy several sheets from several documents into one document. To do so,

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

ECE 551: Digital System * Design & Synthesis Lecture Set 5

ECE 551: Digital System * Design & Synthesis Lecture Set 5 ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 ECE

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

Selvstudium 1, Diskret matematik

Selvstudium 1, Diskret matematik Selvstudium 1, Diskret matematik Matematik på første studieår for de tekniske og naturvidenskabelige uddannelser Aalborg Universitet I dette selfstudium interesserer vi os alene for tidskompleksitet. Kompleksitet

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Trolling Master Bornholm 2014

Trolling Master Bornholm 2014 Trolling Master Bornholm 2014 (English version further down) Populært med tidlig færgebooking Booking af færgebilletter til TMB 2014 er populært. Vi har fået en stribe mails fra teams, som har booket,

Læs mere

E K S T R A O R D I N Æ R G E N E R A F O R S A M L I N G E X T R A O R D I N A R Y G E N E R A L M E E T I N G. Azanta A/S. J.nr.

E K S T R A O R D I N Æ R G E N E R A F O R S A M L I N G E X T R A O R D I N A R Y G E N E R A L M E E T I N G. Azanta A/S. J.nr. J.nr. 210150001 E K S T R A O R D I N Æ R G E N E R A F O R S A M L I N G E X T R A O R D I N A R Y G E N E R A L M E E T I N G Azanta A/S Brinkmann Kronborg Henriksen Advokatpartnerselskab /// Amaliegade

Læs mere

Engelsk. Niveau C. De Merkantile Erhvervsuddannelser September 2005. Casebaseret eksamen. www.jysk.dk og www.jysk.com.

Engelsk. Niveau C. De Merkantile Erhvervsuddannelser September 2005. Casebaseret eksamen. www.jysk.dk og www.jysk.com. 052430_EngelskC 08/09/05 13:29 Side 1 De Merkantile Erhvervsuddannelser September 2005 Side 1 af 4 sider Casebaseret eksamen Engelsk Niveau C www.jysk.dk og www.jysk.com Indhold: Opgave 1 Presentation

Læs mere

Skriftlig Eksamen Automatteori og Beregnelighed (DM17)

Skriftlig Eksamen Automatteori og Beregnelighed (DM17) Skriftlig Eksamen Automatteori og Beregnelighed (DM17) Institut for Matematik & Datalogi Syddansk Universitet Odense Campus Lørdag, den 15. Januar 2005 Alle sædvanlige hjælpemidler (lærebøger, notater

Læs mere

The River Underground, Additional Work

The River Underground, Additional Work 39 (104) The River Underground, Additional Work The River Underground Crosswords Across 1 Another word for "hard to cope with", "unendurable", "insufferable" (10) 5 Another word for "think", "believe",

Læs mere

Internt interrupt - Arduino

Internt interrupt - Arduino Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt

Læs mere

Business Rules Fejlbesked Kommentar

Business Rules Fejlbesked Kommentar Fejlbeskeder i SMDB Validate Business Request- ValidateRequestRegi stration ( :1) Business Fejlbesked Kommentar the municipality must have no more than one Kontaktforløb at a time Fejl 1: Anmodning En

Læs mere

Fejlbeskeder i Stofmisbrugsdatabasen (SMDB)

Fejlbeskeder i Stofmisbrugsdatabasen (SMDB) Fejlbeskeder i Stofmisbrugsdatabasen (SMDB) Oversigt over fejlbeskeder (efter fejlnummer) ved indberetning til SMDB via webløsning og via webservices (hvor der dog kan være yderligere typer fejlbeskeder).

Læs mere

Bilag. Resume. Side 1 af 12

Bilag. Resume. Side 1 af 12 Bilag Resume I denne opgave, lægges der fokus på unge og ensomhed gennem sociale medier. Vi har i denne opgave valgt at benytte Facebook som det sociale medie vi ligger fokus på, da det er det største

Læs mere

Side 1 af 9. SEPA Direct Debit Betalingsaftaler Vejledning

Side 1 af 9. SEPA Direct Debit Betalingsaftaler Vejledning Side 1 af 9 SEPA Direct Debit Betalingsaftaler Vejledning 23.11.2015 1. Indledning Denne guide kan anvendes af kreditorer, som ønsker at gøre brug af SEPA Direct Debit til opkrævninger i euro. Guiden kan

Læs mere

Programmering i C. Lektion september 2009

Programmering i C. Lektion september 2009 Programmering i C Lektion 2 14. september 2009 Kontrolstrukturer Udvælgelse Gentagelse Eksempler Kommentarer Format - scanf og printf 2 / 27 Fra sidst 1 Kontrolstrukturer 2 Udvælgelse 3 Gentagelse 4 Eksempler

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

Programmering i C. Lektion november 2008

Programmering i C. Lektion november 2008 Programmering i C Lektion 3 18. november 2008 Kontrolstrukturer Udvælgelse Gentagelse Eksempler Fra sidst 1 Kontrolstrukturer 2 Udvælgelse 3 Gentagelse 4 Eksempler Kontrolstrukturer Udvælgelse Gentagelse

Læs mere

OXFORD. Botley Road. Key Details: Oxford has an extensive primary catchment of 494,000 people

OXFORD. Botley Road. Key Details: Oxford has an extensive primary catchment of 494,000 people OXFORD Key Details: Oxford has an extensive primary catchment of 494,000 people Prominent, modern scheme situated in prime retail area Let to PC World & Carpetright and close to Dreams, Currys, Land of

Læs mere

Danish Language Course for Foreign University Students Copenhagen, 13 July 2 August 2016 Advanced, medium and beginner s level.

Danish Language Course for Foreign University Students Copenhagen, 13 July 2 August 2016 Advanced, medium and beginner s level. Danish Language Course for Foreign University Students Copenhagen, 13 July 2 August 2016 Advanced, medium and beginner s level Application form Must be completed on the computer in Danish or English All

Læs mere

Sproget Rascal (v. 2)

Sproget Rascal (v. 2) Sproget Rascal (v. 2) Til brug i K1 på kurset Oversættere Opdateret 29/11 2004 Abstract Rascal er et simpelt Pascal-lignende imperativt sprog. Dette dokument beskriver uformelt Rascals syntaks og semantik

Læs mere

Praktikevaluering Studerende (Internship evaluation Student)

Praktikevaluering Studerende (Internship evaluation Student) Praktikevaluering Studerende (Internship evaluation Student) Husk at trykke "Send (Submit)" nederst (Remember to click "Send (Submit)" below - The questions are translated into English below each of the

Læs mere

Subject to terms and conditions. WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR

Subject to terms and conditions. WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR ITSO SERVICE OFFICE Weeks for Sale 31/05/2015 m: +34 636 277 307 w: clublasanta-timeshare.com e: roger@clublasanta.com See colour key sheet news: rogercls.blogspot.com Subject to terms and conditions THURSDAY

Læs mere

University of Copenhagen Faculty of Science Written Exam - 3. April Algebra 3

University of Copenhagen Faculty of Science Written Exam - 3. April Algebra 3 University of Copenhagen Faculty of Science Written Exam - 3. April 2009 Algebra 3 This exam contains 5 exercises which are to be solved in 3 hours. The exercises are posed in an English and in a Danish

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

TM4 Central Station. User Manual / brugervejledning K2070-EU. Tel Fax

TM4 Central Station. User Manual / brugervejledning K2070-EU. Tel Fax TM4 Central Station User Manual / brugervejledning K2070-EU STT Condigi A/S Niels Bohrs Vej 42, Stilling 8660 Skanderborg Denmark Tel. +45 87 93 50 00 Fax. +45 87 93 50 10 info@sttcondigi.com www.sttcondigi.com

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

GUIDE TIL BREVSKRIVNING

GUIDE TIL BREVSKRIVNING GUIDE TIL BREVSKRIVNING APPELBREVE Formålet med at skrive et appelbrev er at få modtageren til at overholde menneskerettighederne. Det er en god idé at lægge vægt på modtagerens forpligtelser over for

Læs mere

Martin Lohse. Passing. Three mobile for accordion. Composed

Martin Lohse. Passing. Three mobile for accordion. Composed Martin Lohse Passing Three mobile for accordion Composed 2011-12 Passing Three mobile for accordion The score is in exact pitch, and the proposed registers can be changed according to room and instrument

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