DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 28. maj min min min min.

Størrelse: px
Starte visningen fra side:

Download "DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 28. maj 2001. 1 60 min. 2 60 min. 3 60 min. 4 60 min."

Transkript

1 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen mandag den 28. maj 2001 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som en helhed. Tidsangivelser til de enkelte spørgsmål er vejledende og svarer ikke til vægtningen af spørgsmålene indenfor en opgave. Opgave Tid 1 60 min min min min. Alle de sædvanlige hjælpemidler må benyttes, herunder også lydløse elektroniske lommeregnere. Ingen kommunikationsmidler, som f.eks. mobiltelefoner, trådløse modem eller røgsignaler er tilladt.

2 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 1 af 17 Opgave 1: Regulære og kontekstfri sprog (60 min.) Spørgsmål 1.1 (35 min.) Man har ofte brug for at beskrive en (muligvis tom) følge af symboler adskilt af et bestemt skilletegn. Et eksempel er følger af heltal adskilt med skråstreger, hvilket kan beskrives ved følgende regulære udtryk: ([0 9] + /) [0 9] + ε a) Lav en NFA for dette regulære udtryk ved at bruge metoden beskrevet i afsnit 2.4 af Basics of Compiler Design ε ε 0 ε ε 9 ε ε ε / ε ε ε ε ε ε. Som det ses skal det regulære udtryk for heltal skrives to gange, hvilket medfører at det tilsvarende NFA-fragment også forekommer to gange i NFA en. For at undgå dette, definerer vi en ny konstruktion for regulære udtryk: s a, hvor s er et regulært udtryk og a er et alfabetsymbol. s a defineres til at være ækvivalent med (sa) s ε. b) Udvid metoden beskrevet i afsnit 2.4 af Basics of Compiler Design så NFA-fragmentet for s a bliver konstrueret direkte fra NFA-fragmentet for s, uden at dette kopieres.

3 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 2 af 17 s ε a ε ε ε ε c) Lav med den udvidede metode en NFA for udtrykket ([0 9] + ) / ε ε ε ε ε / ε ε ε ε

4 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 3 af 17 Spørgsmål 1.2 (25 min.) Vi definerer en ny variant af binære tal, som adskiller sig fra de normale på to måder: De mindst betydende bit er mod venstre, dvs. at cifferfølgen c 0 c 1...c n har værdien c c n c n. Cifrene er henholdsvis 2 og -3 ( -3 betragtes som et tegn). Ligesom for almindelige binære tal definerer vi den tomme tegnfølge til at have værdien 0. Her er nogle eksempler på tegnfølger og værdier i det nye talsystem: tegnfølge værdi ε Vi definerer nu et sprog indeholdende tegnfølger af formen v = w, hvor v er en følge af cifrene 2 og -3 og hvor w er en følge af cifrene 0 og 1. Desuden kræves det at v = w (dvs. at antallet af cifre i v og w er ens) og at værdien af v (læst som tal i det herover definerede talsystem) er den samme som værdien af w (læst som et almindeligt binært tal, hvor den tomme tegnfølge har værdien 0). a) Lav en grammatik for dette sprog. Vink: Lav produktioner, der tager et ciffer fra hver ende og kalder en anden (eller samme) nonterminal med resten. Der er brug for nonterminaler der beskriver talpar, hvor venstresiden afviger fra højresiden med en konstant. Udnyt endvidere at ethvert lige tal i det nye talsystem starter med 2 og ethvert ulige tal med -3. Dermed bestemmer det bit man tager fra højresiden entydigt det ciffer man tager fra venstresiden.

5 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 4 af 17 E = E 2L 1 0 E 3G 2 1 G 1 3G 2 0 G 1 2E1 L 1 3G 1 0 L 1 2L 1 1 G 2 2E0 G 2 3G 3 1 G 3 3G 3 0 G 3 2G 1 1 I G I er venstresiden i større end højresiden og i L 1 er venstresiden 1 mindre end højresiden. b) Vis en afledning af E =0000. E 2L G G E =0000

6 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 5 af 17 Opgave 2: Arkitektur (60 min.) Spørgsmål 2.1 (20 min.) Under udvikling af en arkitektur opstår et ønske om en enhed til multiplikation af to binære tal A = (a 1 a 0 ) og B = (b 1 b 0 ). Lad P = A B = (p 3 p 2 p 1 p 0 ) være resultatet af multiplikationen. a) Opstil optimerede logiske udtryk for p 3, p 2, p 1 og p 0. b) Angiv en PLA (Programmerbar Logisk Array), der implementerer enheden. I denne løsning benyttes Karnaugh-kort til optimering af de boolske funktioner for p 3, p 2, p 1 og p 0. Dette letter optimeringen, men er på ingen måde et krav for korrekt besvarelse. Decimalt kan karnaughkortet opskrives med rækkeindgang A og søjleindgang B som: P Opskrives bitmønstrene for tallene i ovenstående kort ses let at karnaughkortene for p 3, p 2, p 1 og p 0 bliver: p p

7 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 6 af 17 p p Heraf fås de optimerede udtryk : p 0 = a 0 b 0 p 1 = a 1 a 0 b 1 + a 1 a 0 b 0 + a 1 b 1 b 0 + a 0 b 1 b 0 p 2 = a 1 a 0 b 1 + a 1 b 1 b 0 p 3 = a 1 a 0 b 1 b 0 En PLA, der implementerer ovennævnte udtryk (bemærk at der ingen fælles minitermer er i de 4 boolske udtryk) er skitseret i nedenstående figur: Spørgsmål 2.2 (10 min.) En given maskine kan fortolke et 16-bits tal som: Et heltal uden fortegn. Et to-komplement heltal med fortegn. Et flydende tal med eksplicit fortegnbit (bit nr. 15), en eksponent på 4 bit (bit 14-11) i base 2 og bias 7, samt an mantisse på 11 bit (bit nr. 10-0).

8 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 7 af 17 I alle tilfælde bruges big-endian bitrækkefølge indenfor en gruppe af bit, dvs. at det mest betydende bit har højest nummer. Angiv decimalværdien ved de tre fortolkninger af bitmønsteret: bit nr værdi Som heltal uden fortegn angiver tallet decimalt: = 512 ( ) = = Som 2-komplement heltal med fortegn angiver tallet: 1 [( ) 2 ] = [ ] = 512 ( ) = = Som flydende tal (som specificeret) angiver tallet: ( 1) 1 ( ) 29 7 = ( 7 4 ) 22 = Spørgsmål 2.3 (30 min.) Et system er konfigureret med en CPU der i gennemsnit afvikler 800 millioner instruktioner pr. sec. og en backplane bus med en maksimal vedvarende overførselshastighed på 133 MB/sec. På bussen sidder 4 disk-controllere. Hver af disse kan overføre 20 MB/sec. og kontrollerer hver 8 diske. Hver disk roterer med 7500 omdrejninger i minuttet, har en gennemsnitlig søgetid på 10 ms, en overførselshastighed på 8 MB/sec., og organiserer data i sektorer a 512 byte. Hver i/o-operation kræver et kontroller overhead på 2 ms. Antag i det følgende at hver i/o-operation vil involvere læsning/skrivning af en blok på 32 KB organiseret sekventielt i sektorer på en disk. a) Hvor mange i/o-operationer pr. sec. kan hver disk understøtte? Systemet afvikler et operativsystem, der kræver instruktioner pr. i/ooperation. Brugerprogrammer vil maksimalt kræve instruktioner pr. i/ooperation. b) Vil bussen kunne udgøre en flaskehals ved afvikling af programmer, der intensivt foretager i/o-operationer? Begrund svaret.

9 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 8 af 17 Et konkret program udfører i gennemsnit 2000 i/o-operationer pr. sec. Disse vil tilgå data, der er ligeligt fordelt på diskene i systemet. c) Angiv og begrund hvorvidt (og i givet fald hvor) der vil kunne opstå flaskehalse ved afvikling af programmet. Da data antages sekventielt organiseret kan tiden for access til de 32 KB data beregnes ved summen af latenstid, contoller overhead, gennemsnitstiden for for flytning af diskhovede samt 64 gange tiden for overførsel af data for en sektor. Dette bliver: T ID = 10ms + 2ms ms rot rot B 8MB/sec 32KB 512B = 10ms. + 2ms. + 4ms. + 4ms. = 20ms. På 1000 ms. kan en disk altså afvikle = 50 i/o-operationer. Det maksimale antal i/o-operationer pr. sec. er givet ved: inst./sec. ( ) 10 3 inst./io = 4000 i/o operationer sec. Da hver i/o-operation involverer overførsel af 32 KB er den maksimale busbelastning lig: 32KB/io 4000io/sec = 128MB/sec. Da 128 MB/sec. er mindre end buskapaciteten på 133 MB/sec. vil bussen ikke udgøre nogen flaskehals io/sec svarer til en overførselshastighed på 2000*32MB/sec = 64 MB/sec. < 133MB/sec. Bussen udgør derfor ingen flaskehals. Da de tilgåede data er fordelt ligeligt på de 4 controllere vil hver kontroller i gennemsnit skulle levere 64/4 MB/sec = 16 MB/sec. hvilket er mindre end deres maksimale kapacitet på 20 MB/sec. Disse udgør derfor ingen flaskehals. Da der er 8 diske pr. controller skal hver disk kunne levere data med en hastighed på gennemsnitlig 16/8 MB/sec = 2 MB/sec. Jvf. spørgsmål a) kan hver disk kun levere 50 i/o a 32 KB data pr. sec. svarende til 1.6 MB/sec. Derfor vil der kunne opstå en flaskehals fordi diskene ikke kan læse/skrive data i den hastighed hvormed de bliver tilgået.

10 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 9 af 17 Opgave 3: Oversættere (60 min.) Spørgsmål 3.1 (22 min.) Teleselskabet L.M. Ericsson lavede engang i 70 erne deres eget sprog PLEX, som de brugte til at programmere telefoncentralsystemer, som også var baseret på deres egen hardware, APZ. Man havde altså en PLEX til APZ oversætter, som blev brugt til at skrive den nødvendige software. Nu er Ericsson ved at flytte deres systemer over på en ny platform baseret på Alpha-processorer, og de er ved at fase PLEX ud til fordel for et andet sprog Erlang (også designet hos Ericsson). Når en kunde vil opgradere deres central, vil APZ maskinen blive erstattet med en Alpha maskine, og al software vil blive flyttet til den nye maskine. Den oprindelige plan var at genoversætte PLEX programmerne til den nye arkitektur ved at bruge en PLEX til Alpha oversætter. Men det viste sig, at diverse konsulenter og programmører havde rettet i den oversatte APZ kode i stedet for at rette i kildeteksten og genoversætte denne. Derfor kan man ikke bruge de oprindelige kildetekster, men må flytte APZ koden over til det nye system. Der er foreslået forskellige måder at gøre dette: 1. Man skriver i Erlang en fortolker for APZ kode og oversætter denne til Alpha med en Erlang oversætter for Alpha maskiner. 2. Man laver i Erlang en oversætter fra APZ kode til Alpha kode. 3. Man laver i Erlang en oversætter fra APZ kode til PLEX, som så kan oversættes til Alpha med en PLEX oversætter for Alpha maskiner. 4. Man laver i Erlang en oversætter fra APZ kode til Erlang, som så kan oversættes til Alpha med en Erlang oversætter for Alpha maskiner. Overvej fordele og ulemper ved de forskellige forslag. Du kan bruge følgende fakta i dine overvejelser: PLEX er et lavniveausprog, som er oversat direkte til assemblerkode på de forskellige maskiner uden komplicerede optimeringer eller transformationer. Erlang er et højniveau funktionsprogrammeringssprog, og ligner ikke PLEX ret meget.

11 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 10 af 17 Løsning 1 vil være ret enkel, men fortolkningen vil gøre kørslen langsom. En yderligere fordel er, at APZ programmerne kan flyttes uændret til den nye platform. Løsning 2 vil give hurtigere end løsning 1, men APZ programmerne skal oversættes før de kan køre. Endvidere kan Alphakoden være svær at læse, så rettelser vil sandsynligvis ske i APZ koden. Løsning 3 gør vedligeholdelse lettere, da rettelser kan ske i den genererede PLEX kode. Man vil til gengæld tabe lidt fart ved ikke at oversætte direkte, men tabet er lille da PLEX er tæt ved maskinkode. Da PLEX er ved at blive faset ud, er denne løsning dog ikke helt fremtidssikret. Løsning 4 vil være mest fremtidssikret, men da Erlang er ret fjern fra maskinkode vil man tabe en del fart ved ikke at oversætte direkte. De programmer, der opnås ved at oversætte APZ kode til Erlang vil endvidere næppe ligne typiske Erlangprogrammer, og derfor vil de ikke være så lette at forstå for en typisk Erlangprogrammør. Spørgsmål 3.2 (25 min.) Nogle processorer bruger en meget simpel statisk hopforudsigelse (evt. i kombination med en dynamisk hopforudsiger): Hvis et betinget hop går baglæns i koden, antages det tage, og hvis det går forlæns i koden antages det ikke taget. Begrundelsen er, at gentagelse i en repeat-until løkke sker ved et baglæns betinget hop, og gentagelse ses som det mest sandsynlige udfald. Ved en while løkke sker gentagelse ved et ubetinget baglæns hop, mens løkken forlades med et betinget forlæns hop. Da gentagelse også her ses som mest sandsynligt, antages det at det forlæns betingede hop ikke tages. Men betingede forlæns hop bruges også i if-then-else sætninger, hvor der ikke a priori er nogen grund til at tro at et udfald er mere sandsynligt end det andet. Figur 6.5 i Basics of Compiler Design viser kodegenerering for (bl.a.) if-then-else sætninger. Den relevante del er vist herunder.

12 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 11 af 17 Trans Stat (Stat,vtable, ftable) = case Stat of if Cond label 1 = newlabel() then Stat 1 label 2 = newlabel() else Stat 2 label 3 = newlabel() code 1 = Trans Cond (Cond,label 1,label 2,vtable, ftable) code 2 = Trans Stat (Stat 1,vtable, ftable) code 3 = Trans Stat (Stat 2,vtable, ftable) code 1 ++[LABEL label 1 ]++code 2 ++[GOTO label 3, LABEL label 2 ] ++code 3 ++[LABEL label 3 ] Vi antager at vi bruger den i afsnit 7.2 og figur 7.1 i Basics of Compiler Design beskrevne optimering, hvor et tovejs hop bliver optimeret til et etvejs hop i de tilfælde, hvor den ene destination ligger lige efter hoppet. Vi antager endvidere at betingelsen er en simpel sammenligning af to variabler. a) Vil det etvejshop, som optimeringen efterlader hoppe når betingelsen i if-then-else sætningen er sand eller når den er falsk? Begrund svaret. Da labelen for det sande udfald ligger lige efter hopordren, vil den nævnte optimering gøre hoppet til et etvejshop til den anden label, og dermed hoppe på den negerede betingelse. b) Vil den genererede kode give bedst hopforudsigelse hvis betingelsen i if-then-else sætningen oftest er sand eller hvis den oftest er falsk? Begrund svaret. Da hoppet er forlæns antager hopforudsigeren at det ikke bliver taget, og da hoppet tages når betingelsen er falsk, gætter forudsigeren altså rigtigt når betingelsen er sand. c) Lav en modifikation af kodegenereringen for if-then-else sætninger, så den er optimeret til det modsatte tilfælde. Grenene skal byttes om, så else-grenen ligger lige efter betingelsen:

13 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 12 af 17 Trans Stat (Stat,vtable, ftable) = case Stat of if Cond label 1 = newlabel() then Stat 1 label 2 = newlabel() else Stat 2 label 3 = newlabel() code 1 = Trans Cond (Cond,label 1,label 2,vtable, ftable) code 2 = Trans Stat (Stat 1,vtable, ftable) code 3 = Trans Stat (Stat 2,vtable, ftable) code 1 ++[LABEL label 2 ]++code 3 ++[GOTO label 3, LABEL label 1 ] ++code 2 ++[LABEL label 3 ] Spørgsmål 3.3 (13 min.) Lav en 3-farvning af nedenstående graf ved hjælp af algoritme 8.3 fra Basics of Compiler Design. Vis skridtene i algoritmen på samme måde som i figur 8.6 og 8.9 i Basics of Compiler Design. a b e c d f Knude Naboer Farve f 1 d f 2 c d, f 3 e c, f 2 b d, f 3 a b, c, e 1

14 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 13 af 17 Opgave 4: Maskinsprog og ydelse (60 min.) Et assemblerprogram i MIPS udføres på en pipelinet maskine, hvor der kun forekommer blokeringer i forbindelse med datalagertilgang. CPI for datalagertilgang er 2.5, mens hop har en gennemsnitligt CPI på 1.7. Maskinen benytter ingen hopforudsiger. Ordrefordelingen er følgende: 40% R-type ordrer, 45% datalagertilgang (hent og gem) og 15% hop-ordrer. Ialt udføres 100 millioner ordrer. Spørgsmål 4.1 (20 min.) a) Hvad er CPI for ovennævnte program? CPI for R-type ordrerne er 1, idet der ikke forekommer blokeringer i forbindelse med udførelse af disse. CPI = = 1.78 b) Programmets køretid er sekunder. Hvad er maskinens klokfrekvens i MHz? Vi benytter dvs. Tid = #Ordrer CPI Klokfrekvens Klokfrekvens = #Ordrer CPI Tid = /0.178 = 1000 MHz c) På en identisk maskine, men med en hop-forudsiger, er den målte køretid for samme program sekunder. Under antagelse af at CPI for datalagertilgang er den samme, hvad er CPI for hop på denne maskine?

15 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 14 af 17 Vi udregner først den nye CPI for hele programmet. CPI n = Tid Klokfrekvens #Ordrer = / = 1.72 Idet CPI værdierne for de andre ordretyper samt ordrefordelingen er den samme, bliver den nye CPI for hop Spørgsmål 4.2 (25 min.) CPI h = (1.72 ( ))/0.15 = 1.3 Vi ønsker at indsætte elementer i en sorteret liste. Listen indeholder positive heltal og er sorteret i ikke-voksende rækkefølge, dvs. det største element er forrest i listen. En liste bliver implementeret ved anvendelse af et array, der indeholder tallet 0 som sidste element. (Vi antager at arrays bliver allokeret store nok til at kunne håndtere det antal indsættelser som der er behov for.) Følgende C-procedure indsætter et element i et sorteret array: 1 void insert(int* v, int k) 2 { 3 int i, s, t; 4 i = 0; 5 while (v[i] >= k) i++; 6 s = v[i]; 7 v[i] = k; 8 while (s!= 0) { i++; t = v[i]; v[i] = s; s = t; } 9 v[i+1] = 0; 10 } En oversættelse har resulteret i følgende (mangelfulde) assemblerprocedure, hvor tre linier er forsvundet: 1 insert: add $t0, $a0, $zero 2 find: lw $t1, 0($t0) 3 slt $t8, $t1, $a1 4 bne $t8, $zero, ins 5??? 6 j find 7 ins: sw $a1, 0($t0)

16 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 15 af 17 8 shift: beq $t1, $zero, quit 9??? 10 lw $t2, 0($t0) 11 sw $t1, 0($t0) 12 add $t1, $t2, $zero 13 j shift 14 quit:??? 15 jr $ra a) Beskriv kort hvad C-programmet laver. Den første while-løkke finder det sted i arrayet hvor det nye element skal indsættes. Herefter indsættes elementet og de efterfølgende elementer rykkes een plads frem i arrayet. b) Indsæt de manglende linier i assemblerproceduren og kommenter proceduren linie for linie med henvisning til C-proceduren. Register $a0 (1. argument) peger på det første element i arrayet v. Register $a1 indeholder det tal k som skal indsættes. Variablen i er blevet erstattet med en pegepind pi = &(v[i]). 1 insert: add $t0, $a0, $zero # $t0 = pi = &(v[0]) 2 find: lw $t1, 0($t0) # $t1 = *pi = v[i] 3 slt $t8, $t1, $a1 # er v[i] < k? 4 bne $t8, $zero, ins # hvis ja, saa hop til label ins 5 addi $t0, $t0, 4 # inkrementer pi 6 j find # undersoeg naeste element i v 7 ins: sw $a1, 0($t0) # saet v[i] = k 8 shift: beq $t1, $zero, quit # hvis s (=v[i]) er 0, saa afslut 9 addi $t0, $t0, 4 # inkrementer pi 10 lw $t2, 0($t0) # t = v[i] = *pi 11 sw $t1, 0($t0) # v[i] = s 12 add $t1, $t2, $zero # s = t 13 j shift # til naeste element 14 quit: sw $zero, 4($t0) # v[i+1] = 0 15 jr $ra # afslut procedure

17 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 16 af 17 Spørgsmål 4.3 (15 min.) Denne opgave omhandler implementation af betingede hop på den pipelinede datavej, som er beskrevet i Patterson & Hennessy kap. 6. a) Antag at hopbeslutninger bliver foretaget i MEM-fasen (se f.eks. fig. 6.30), samt at datavejen antager, at hoppet ikke bliver taget. Forklar kort men præcist hvad der sker på datavejen, når et hop ikke bliver taget og når et hop bliver taget. Hoppet bliver ikke taget: I dette tilfælde udføres ordrerne sekventielt og pipelinen kører med fuld hastighed. Hoppet bliver taget: Idet beslutningen om at hoppe foretages i MEM-fasen, er pipelinen begyndt at udføre de sekventielt efterfølgende ordrer. Disse tre ordrer må elimineres fra pipelinen, og herefter vil ordren på hop-adressen blive indlæst i den efterfølgende klokcyklus. b) Der indsættes nu en hop-forudsiger i datavejens ID-fase. Hop-forudsigeren eliminerer ikke den ordre, der samtidig indlæses i IF-fasen. Hvor mange klokcykler tager det nu at udføre et betinget hop i følgende fire situationer: Hoppet skal ikke tages og forudsigelsen var korrekt Hoppet skal ikke tages, men forudsigelsen var forkert Hoppet skal tages og forudsigelsen var korrekt Hoppet skal tages, men forudsigelsen var forkert Pipelinen kører med fuld hastighed og ingen ordrer bliver elimineret: 1 klokcyklus. Fejlen opdages ikke før ordren er kommet til MEM-fasen og alle efterfølgende ordrer i pipelinen undtagen ordren lige efter hopordren må elimineres, dvs. hoppet tager 3 klokcykler. Hop-forudsigelsen medfører, at ordren lige efter hoppet må elimineres (hviklet skyldes at hop-forudsigelsen foretages i ID-fasen): 2 klokcykler. Fejlen opdages ikke før ordren er kommet til MEM-fasen og alle efterfølgende ordrer i pipelinen må elimineres, dvs. hoppet tager 4 klokcykler.

18 Vejledende løsning til skriftlig eksamen maj 2001 i Datalogi 1E side 17 af 17

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

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

Læs mere

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som en helhed.

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

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag d. 16. januar 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved

Læs mere

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves

Læs mere

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Vejledende løsninger til

Læs mere

Oversættere Skriftlig eksamen onsdag d. 19. april 2006

Oversættere Skriftlig eksamen onsdag d. 19. april 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 19. april 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved

Læs mere

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 25. januar 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

DATALOGI MASKINARKITEKTUR

DATALOGI MASKINARKITEKTUR Københavns Universitet Natrvidenskabelig Embedseksamen DATALOGI ASKINARKITEKTUR Skriftlig eksamen fredag den 29. oktober 24 kl. -2 Frederiksholms kanal 4B Der er fem opgaver i alt og disse giver følgende

Læs mere

Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet

Læs mere

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens

Læs mere

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B Martin Zachariasen 10. september 2004 1 Introduktion Dette er den karaktergivende rapportopgave på kurset Maskinarkitektur 1B, efterår

Læs mere

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget

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

Oversættere / Datalogi 1E

Oversættere / Datalogi 1E Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere / Datalogi 1E Skriftlig eksamen onsdag d. 26. januar 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave.

Læs mere

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer Maskinsprog Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, kap. 3 Programmer og ordrer Ordretyper Operander og deres placering Ordreformat Procedurekald Andre arkitekturer 1 Stored-program

Læs mere

MIPS, registerallokering og MARS

MIPS, registerallokering og MARS MIPS, registerallokering og MARS Torben Mogensen 2011 Resumé Vi beskriver modulerne Mips.sml og RegAlloc.sml, samt hvordan de bruges sammen med MIPS-emulatoren MARS. 1 MIPS modulet Modulet Mips.sml indeholder

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

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

Læs mere

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag d. 16. januar 2004

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag d. 16. januar 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen fredag d. 16. januar 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver

Læs mere

Sproget Limba. Til brug i G1 og K1. Dat1E 2003

Sproget Limba. Til brug i G1 og K1. Dat1E 2003 Sproget Limba Til brug i G1 og K1 Dat1E 2003 Abstract Limba er et simpelt imperativt sprog med hoballokerede tupler. Dette dokument beskriver uformelt Limbas syntaks og semantik samt en fortolker for Limba,

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

Skriftlig Eksamen Beregnelighed (DM517)

Skriftlig Eksamen Beregnelighed (DM517) Skriftlig Eksamen Beregnelighed (DM517) Institut for Matematik & Datalogi Syddansk Universitet Torsdag den 1 November 212, kl. 1 14 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug af computer

Læs mere

MIPS modulet og registerallokatoren

MIPS modulet og registerallokatoren MIPS modulet og registerallokatoren Værktøjer til oversætterdelen af K1 Dat1E 2001 MIPS modulet Den vigtigste del af modulet MipsData.sml er datatypen mips, som beskriver MIPS ordrer, se figur 1. Alle

Læs mere

CPUer og maskinkode DM534. Rolf Fagerberg

CPUer og maskinkode DM534. Rolf Fagerberg CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM526 Rolf Fagerberg, 2009 Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, kommatal) Bogstaver Computerinstruktion (program)

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, decimaltal (kommatal)) Bogstaver Computerinstruktion

Læs mere

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 1. april 200, kl..00-11.00

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2

Læs mere

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Computerarkitektur. - en introduktion til computerarkitektur med LINDA Computerarkitektur - en introduktion til computerarkitektur med LINDA faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig

Læs mere

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 25. januar 2006

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 25. januar 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 25. januar 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet

Læs mere

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

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

Læs mere

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538) Skriftlig Eksamen Algoritmer og sandsynlighed (DM538) Institut for Matematik & Datalogi Syddansk Universitet Fredag den 9 Januar 2015, kl. 10 14 Alle sædvanlige hjælpemidler(lærebøger, notater etc.) samt

Læs mere

Processoren: Enkelt-cyklus implementation

Processoren: Enkelt-cyklus implementation Processoren: Enkelt-cyklus implementation Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, afsnit 5.1 5.3 Historisk tilbageblik MIPS-arkitekturen/delmængde Klokning og byggeklodser Opbygning

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n Eksamen. kvarter 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Ja Nej n er O(n )? n er O(n )? n er O(n + 0 n)? n + n er O(n )? n log n er Ω(n )? Opgave (%) Opskriv følgende funktioner

Læs mere

Processoren: Fler-cyklus implementation

Processoren: Fler-cyklus implementation Processoren: Fler-cykls implementation artin Zachariasen, DIKU Litteratr: Patterson & Hennessy, afsnit 5.4 5. Ulemper ved enkelt-cykls maskinen Ændring til fler-cykls maskine Styresignaler Implementering

Læs mere

DM13-1. Obligatoriske Opgave - Kredsløbs design

DM13-1. Obligatoriske Opgave - Kredsløbs design DM13-1. Obligatoriske Opgave - Kredsløbs design Jacob Christiansen moffe42@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense 1. Opgaven Opgaven består i at designe et kredsløb,

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet 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: timer Vægtning

Læs mere

Dat1E K1-1 - En pipelinet mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen

Dat1E K1-1 - En pipelinet mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen Dat1E K1-1 - En pipelinet mikroarkitektur Espen Højsgaard Rune Højsgaard Christian Iversen 1 Indhold Indhold 2 1 Sammenfatning 5 1.1 Ambitioner................................... 5 1.2 Resultat.....................................

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

Rolf Fagerberg. Forår 2012

Rolf Fagerberg. Forår 2012 Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

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 & Datalogi Syddansk Universitet Torsdag den 7 Januar 010, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger,

Læs mere

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Lærevejledning - en introduktion til maskinarkitektur faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig Basisuddannelse

Læs mere

BILAG. til. Kommissionens delegerede forordning

BILAG. til. Kommissionens delegerede forordning EUROPA- KOMMISSIONEN Bruxelles, den 12.10.2015 C(2015) 6823 final ANNEX 1 PART 6/11 BILAG til Kommissionens delegerede forordning om ændring af Rådets forordning (EF) nr. 428/2009 om en fællesskabsordning

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

DATALOGI 1F. Skriftlig eksamen tirsdag den 27. januar 2004

DATALOGI 1F. Skriftlig eksamen tirsdag den 27. januar 2004 Københavns Universitet Naturvidenskabelig Bachelorseksamen DATALOGI 1F Skriftlig eksamen tirsdag den 27. januar 2004 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som

Læs mere

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

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

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4 Eksamen. kvarter 00 Side 1 af sider Opgave 1 ( %) Ja Nej n log n er O(n / )? n 1/ er O(log n)? n + n er O(n )? n( n + log n) er O(n / )? n er Ω(n )? Opgave ( %) Opskriv følgende funktioner efter stigende

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit. Kapitel 20: Talsystemer 20 Resumé af talsystemer... 344 Indtastning og omregning af talsystemer... 345 Udførelse af matematiske beregninger med hexadecimale og binære tal... 346 Sammenligning eller manipulation

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

Noter til C# Programmering Selektion

Noter til C# Programmering Selektion Noter til C# Programmering Selektion Sætninger Alle sætninger i C# slutter med et semikolon. En sætning kontrollerer sekvensen i programafviklingen, evaluerer et udtryk eller gør ingenting Blanktegn Mellemrum,

Læs mere

Sommeren 2001, opgave 1

Sommeren 2001, opgave 1 Sommeren 2001, opgave 1 Vi antager at k 3, da det ellers er uklart hvordan trekanterne kan sættes sammen i en kreds. Vi ser nu at for hver trekant er der en knude i kredsen, og en spids. Derfor er n =

Læs mere

DM507 Algoritmer og datastrukturer

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

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

Opgave 1 Regning med rest

Opgave 1 Regning med rest Den digitale signatur - anvendt talteori og kryptologi Opgave 1 Regning med rest Den positive rest, man får, når et helt tal a divideres med et naturligt tal n, betegnes rest(a,n ) Hvis r = rest(a,n) kan

Læs mere

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal Philip Bille Algoritmer og datastrukturer Algoritmisk problem. Præcist defineret relation mellem input og output. Algoritme. Metode til at løse et algoritmisk problem. Beskrevet i diskrete og entydige

Læs mere

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer: Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

Læs mere

3. Computerens opbygning.

3. Computerens opbygning. 3. Computerens opbygning. Computere er konstrueret med henblik på at skulle kunne behandle og opbevare data og det er de som nævnt i noterne om Bits og Bytes vældig gode til. Som overordnet model for computere

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 0205, Forår 205 side af 5 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 205. Kursusnavn: Algoritmer og datastrukturer Kursusnummer: 0205 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Algorithms & Architectures II

Algorithms & Architectures II Algorithms & Architectures II Algorithms & Architectures II Jens Myrup Pedersen Hans Peter Schwefel Kursusholdere Dagens lektion Overordnet mål: At etablere en forståelse for hvordan hardware og hardwarearkitekturer

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

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

Rolf Fagerberg. Forår 2014

Rolf Fagerberg. Forår 2014 Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig

Læs mere

Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9)

Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9) Operativsystemer of C Efterår Virtuel hukommelse (kap. 9) 8// Planen for idag q Virtuel hukommelse. q Demand paging / page faults. q Sideudskiftningsalgoritmer. q Rammeallokering til processer. Ø Øvelser:

Læs mere

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

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

Læs mere

GESA, et GEnerelt System til Analyse af naturlige sprog, udformet som et oversætter-fortolker system med virtuel mellemkode

GESA, et GEnerelt System til Analyse af naturlige sprog, udformet som et oversætter-fortolker system med virtuel mellemkode Jens Erlandsen laml Njalsgade 96 DK 2300 kbh. S. GESA, et GEnerelt System til Analyse af naturlige sprog, udformet som et oversætter-fortolker system med virtuel mellemkode. Parsingsystemer til automatisk

Læs mere

Niveauer af abstrakte maskiner

Niveauer af abstrakte maskiner Mikroarkitektur Niveauer af abstrakte maskiner Spørgsmål... Hvordan realiseres IJVM maskinen (lev. 2), eller hvordan ser en IJVM-CPU ud? Opbygning (mikroarkitekturen Mic-1) Anvendelse (mikroprogrammet

Læs mere

NATURVIDENSKABELIG KANDIDATEKSAMEN VED KØBENHAVNS UNIVERSITET INVESTERINGS- OG FINANSIERINGSTEORI

NATURVIDENSKABELIG KANDIDATEKSAMEN VED KØBENHAVNS UNIVERSITET INVESTERINGS- OG FINANSIERINGSTEORI NATURVIDENSKABELIG KANDIDATEKSAMEN VED KØBENHAVNS UNIVERSITET INVESTERINGS- OG FINANSIERINGSTEORI 4 timers skriftlig eksamen, 10-14, tirsdag 1/6 2004. Ingen hjælpemidler (blyant & lommeregner dog tilladt).

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Fang Prikkerne. Introduktion. Scratch

Fang Prikkerne. Introduktion. Scratch Scratch 2 Fang Prikkerne All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion

Læs mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA

Læs mere

Computerens Anatomi. Af Martin Arnetoft

Computerens Anatomi. Af Martin Arnetoft Computerens Anatomi Af Martin Arnetoft Moores lov Moores lov siger, at antallet af transistorer på et stykke hardware over 18 eller 24 måneder fordobles. Denne lov bruges til at beskrive udviklingen indenfor

Læs mere

i tredje sum overslag rationale tal tiendedele primtal kvotient

i tredje sum overslag rationale tal tiendedele primtal kvotient ægte 1 i tredje 3 i anden rumfang år 12 måle kalender hældnings a hældningskoefficient lineær funktion lagt n resultat streg adskille led adskilt udtrk minus (-) overslag afrunde præcis skøn formel andengradsligning

Læs mere

Planen for idag. Datalogi 1F Forår 2003. Hvad er en proces? Livscyklus for en proces. Hvad består en proces af?

Planen for idag. Datalogi 1F Forår 2003. Hvad er en proces? Livscyklus for en proces. Hvad består en proces af? Datalogi 1F Forår 2003 OS[2]: Processor, tråde og skedulering Jørgen Sværke Hansen Planen for idag Processer: Procesbegrebet Processkift Processers familieliv Kommunikerende processer Tråde En lettere

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 5 (fem) Eksamensdag: Fredag den 10. august 007, kl.

Læs mere

Programmering i C. Lektion 4. 5. december 2008

Programmering i C. Lektion 4. 5. december 2008 Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )

Læs mere

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0 BAndengradspolynomier Et polynomium er en funktion på formen f ( ) = an + an + a+ a, hvor ai R kaldes polynomiets koefficienter. Graden af et polynomium er lig med den højeste potens af, for hvilket den

Læs mere

Skriftlig Eksamen Diskret Matematik (DM528)

Skriftlig Eksamen Diskret Matematik (DM528) Skriftlig Eksamen Diskret Matematik (DM528) Institut for Matematik & Datalogi Syddansk Universitet Tirsdag den 20 Januar 2009, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug

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

Lidt om Bits & Bytes. Talsystemer

Lidt om Bits & Bytes. Talsystemer Lidt om Bits & Bytes En hurtig genopfriskning af: Bits, bytes, kilobytes Megahertz, bps, Bps... Tegnsæt, f.eks. Unicode Hvad er det og hvor bruges det? Moderne og gammelt IT udstyr snakker sammen via 0

Læs mere

Eksamen dcomnet Q2/2010. Navn

Eksamen dcomnet Q2/2010. Navn 2582 Eksamen dcomnet Q2/2010 ID Navn Example I A32-prg1 Betragt følgende program skrevet i IA-32 symbolsk maskinsprog:.section.data x:.long 2 r:.long 27.section.text.globl _start _start: pushl x movl $0,%ebx

Læs mere

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer 1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO

Læs mere

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. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner Virtuel PC Fordele/ulemper Fordele: Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner Ulemper: Reserverer RAM (Windows 7) Problemer med at ureglementeret lukke ned Mister

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard Mandags Chancen En optimal spilstrategi Erik Vestergaard Spilleregler denne note skal vi studere en optimal spilstrategi i det spil, som i fjernsynet går under navnet Mandags Chancen. Spillets regler er

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

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger

Læs mere

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

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

Læs mere