Programmering og Problemløsning, 2017

Størrelse: px
Starte visningen fra side:

Download "Programmering og Problemløsning, 2017"

Transkript

1 Programmering og Problemløsning, 2017 Parsing med Højere-Ordens Funktioner Martin Elsman Datalogisk Institut Københavns Universitet DIKU 1. December, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

2 Motivation Outline 1 Motivation 2 Lexing En simpel tokenizer 3 Parsing Definition af simple parsere Egentlige parserkombinatorer Et samplet interface 4 Eksempler Udtryksparsing Skildpaddegrafik Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

3 Motivation Outline Parsing med højere-ordens funktioner Emner for i dag: 1 Lexing og Parsing: 2 Lexing. 3 Parsing. 4 Eksempler Omformning af tekstrenge til interne data-strukturer. Der er tekst-baseret data overalt tekstbaserede data-formater. Omformning af tekststrenge til tokens såsom heltal, ord og symboler. Definition af en simpel tokenizer. Parsing med parserkombinatorer. Eks: Parsing af aritmetiske udtryk, f.eks som input til differentieringskode fra tidligere forelæsning. Eks: Parsing af kommandoer til Logo-fortolker fra tidligere forelæsning. Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

4 Lexing Lexing Lexing hentyder til en omformning af strømme af karakterer til strømme af tokens. Med tokens henvises der til værdier såsom keywords, konstanter, som heltal, floating-point værdier og streng-værdier, samt variabler og symboler. Ofte vil en lexer også håndtere (og evt fjerne) kommentarer i input data. Til simple formål kan passende definere en funktion der omformer en streng s til en liste af tokens ved at vi specificerer en række karakterer til opdeling af strengen s: val tokenize : string -> string -> string list Eksempel brug af funktionen: > tokenize "+-*() " "34+(a-sin x)*pi";; val it : string list = ["34"; "+"; "("; "a"; "-"; "sin"; " "; "x"; ")"; "*"; "pi"] Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

5 Lexing En simpel tokenizer Funktionen tokenize Her følger en definition af funktionen pcomb.fs: let tokenize (cs:string) (s:string) : string list = let extract i n ts = if n > 0 then s.substring (i,n) :: ts else ts let rec loop i n ts = if i+n >= String.length s then List.rev(extract i n ts) else if String.exists (fun c -> c = s.[i+n]) cs then loop (i+n+1) 0 (extract (i+n) 1 (extract i n ts)) else loop i (n+1) ts in loop 0 0 [] Bemærk: Funktionen loop akkumulerer en liste af allerede fundne tokens. Funktionen gør brug af metoden Substring til at udtrække en delstreng af en streng. Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

6 Parsing Parsing med Parserkombinatorer Ultimativt er vi interesserede i at omdanne tekstrenge (eller tokens) til interne datastrukturer: type exp = Int of int X // Expressions of one variable Plus of exp * exp Minus of exp * exp Sin of exp Utilities Vi benytter os a data-typen a res: type a res = Ok of a No of string Generel definition af parser: type token = string type a p = token list -> ( a * token list) res Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

7 Parsing Definition af simple parsere Definition af nogle simple parsere Her følger en parser der kan parse en konkret token: let parse_token (x:string) : string p = function s::ts -> if s = x then Ok(s,ts) else No x [] -> No x Her er en parser der kan parse heltal: let parse_int : int p = function i::ts -> (try Ok(int(i),ts) with _ -> No "integer") [] -> No "integer" Følgende parser accepterer den tomme strøm (end-of-stream): let eos : unit p = function [] -> Ok((),[]) _ -> No "tokens" Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

8 Parsing Egentlige parserkombinatorer Kombinatorer Parsere kan sammensættes deraf navnet parserkombinator. Her følger en kombinator der sammensætter parsere sekventielt: let (>*>) (p1: a p) (p2: b p) : ( a* b) p = fun ts -> match p1 ts with No s -> No s Ok (v1,ts) -> match p2 ts with No s -> No s Ok (v2,ts) -> Ok ((v1,v2),ts) Følgende funktion kan bruges til at transformere en parser: let (>>@) (p: a p) (f: a -> b) : b p = fun ts -> match p ts with No s -> No s Ok (v,ts) -> Ok (f v,ts) Eksempel (parse_int >*> parse_int) >>@ (fun (x,y) -> x+y) Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

9 Parsing Egentlige parserkombinatorer Nogle afledte kombinatorer let (->>) (p1: a p) (p2: b p) : b p = (p1 >*> p2) >>@ (fun (_,y) -> y) let (>>-) (p1: a p) (p2: b p) : a p = (p1 >*> p2) >>@ (fun (x,_) -> x) Bemærk: Disse kombinatorer eliminerer parserresultatet på hhv ventre side (->>) og højre side (>>-). En kombinator for enten-eller let ( ) (p1: a p) (p2: a p) : a p = fun ts -> match p1 ts with Ok(v,ts) -> Ok(v,ts) No s1 -> match p2 ts with Ok(v,ts) -> Ok(v,ts) No s2 -> No (s1 + " or " + s2) Bemærk: I tilfælde af fejl sammensættes fejl-beskederne. Eksempel: (parse_token "Up" parse_token "Down") accepterer både strengen Up og strengen Down. Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

10 Parsing Egentlige parserkombinatorer En kombinator for optional parsing let (>>?) (p1: a p) (p2: b p) : ( a-> b-> a) -> a p = fun f ts -> match p1 ts with No s1 -> No s1 Ok(v1,ts) -> match p2 ts with Ok(v2,ts) -> Ok(f v1 v2,ts) No s2 -> Ok(v1,ts) Parserrepetition Følgende kombinator omformer en parser til en liste-parser: let rec parse_seq (p: a p) : a list p = fun x -> (((p >>@ (fun e -> [e])) >>? parse_seq p) (fun x y -> x@y)) x Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

11 Parsing Et samplet interface Et samlet interface pcomb.fsi module PComb type a res = Ok of a No of string type token = string type a p = token list -> ( a * token list) res val (>*>) : a p -> b p -> ( a* b) p val (>>@) : a p -> ( a -> b) -> b p val (->>) : a p -> b p -> b p val (>>-) : a p -> b p -> a p val ( ) : a p -> a p -> a p val (>>?) : a p -> b p -> ( a-> b-> a) -> a p val eos : unit p val tokenize : string -> string -> token list val elimws : token list -> token list val parse_int : int p val parse_token : token -> token p val parse_seq : a p -> a list p val run : a p -> token list -> a res // main Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

12 Eksempler Udtryksparsing Eksempel: Udtryksparsing Givet følgende data-struktur: type exp = Int of int X Plus of exp * exp Minus of exp * exp Sin of exp Her følger en parser defineret med parserkombinatorer pcomb_ex_exp.fs: let parse_par (p: a p) : a p = parse_token "(" ->> p >>- parse_token ")" let rec parse_exp : exp p = fun x -> ((parse_int >>@ Int) (parse_token "x" >>@ (fun _ -> X)) ((parse_par (parse_bin "+" Plus))) ((parse_par (parse_bin "-" Minus))) ((parse_token "sin" ->> parse_exp) >>@ Sin) ((parse_par parse_exp))) x and parse_bin op f = (parse_exp >>- parse_token op >*> parse_exp) >>@ f Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

13 Eksempler Udtryksparsing Eksempel: Udtryksparsing forsat Hovedfunktionen: let exp_parser s : exp res = let tokens = tokenize "() \n+-" s let tokens = elimws tokens run (parse_exp >>- eos) tokens // eliminate white space Kørsel: > let s = "(2-sin(3+x))" > do printfn "e=%a" (exp_parser s) e=ok (Minus (Int 2,Sin (Plus (Int 3,X)))) Udvidelser: Parsing med precedens-regler... Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

14 Eksempler Skildpaddegrafik Eksempel: Skildpaddegrafik Kommandoparser pcomb_ex_logo.fs: type cmd = SetColor of string Turn of int Move of int PenUp PenDown let parse_col : string p = parse_token "r" parse_token "g" parse_token "b" let parse_color_cmd : cmd p = (parse_token "c" ->> parse_token "(" ->> parse_col >>- parse_token ")") >>@ SetColor let parse_cmd : cmd p = ((parse_token "m" ->> parse_int) >>@ Move) ((parse_token "t" ->> parse_int) >>@ Turn) (parse_token "u" >>@ (fun _ -> PenUp)) (parse_token "d" >>@ (fun _ -> PenDown)) parse_color_cmd Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

15 Eksempler Skildpaddegrafik Eksempel: Skildpaddegrafik forsat Hovedprogrammet: let logo_parser (s:string) : cmd list res = let tokens = tokenize "mtudc#() \n" s let tokens = elimws tokens run (parse_seq parse_cmd >>- eos) tokens Kørsel: > let logo = "t70um12c(g)dm65" > do printfn "%A" (logo_parser logo) Ok [Turn 70; PenUp; Move 12; SetColor "g"; PenDown; Move 65] Flere muligheder: Tillad gentagelser: "[m50t144]5" Udvid parser-kombinatorer med bedre fejlbeskeder Martin Elsman (DIKU) Programmering og Problemløsning, December, / 15

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

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Rekursion Towers of Hanoi og Liniegrafik Martin Elsman Datalogisk Institut Københavns Universitet DIKU 13. Oktober, 2017 Martin Elsman (DIKU) Programmering og Problemløsning,

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Træstrukturer Part III Martin Elsman Datalogisk Institut Københavns Universitet DIKU 3. November, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 3.

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Programmering med Lister og Arrays Martin Elsman Department of Computer Science University of Copenhagen DIKU October 3, 2017 Martin Elsman (DIKU) Programmering og

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Input og Output Martin Elsman Datalogisk Institut Københavns Universitet DIKU 27. November, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 27. November,

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Højere-ordens Funktioner Part I Martin Elsman Datalogisk Institut Københavns Universitet DIKU 20. November, 2017 Martin Elsman (DIKU) Programmering og Problemløsning,

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Martin Elsman Datalogisk Institut Københavns Universitet DIKU 10. Oktober, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 10. Oktober, 2017 1 / 15

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Martin Elsman Department of Computer Science University of Copenhagen DIKU September 27, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September

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

Løsningsforslag Skriftlig eksamen 3. januar 2013

Løsningsforslag Skriftlig eksamen 3. januar 2013 Løsningsforslag Skriftlig eksamen 3. januar 2013 Version 1, 2013-01-03 Spørgsmål 1 Spørgsmål 1.1 L1: od2 := FALSE L2: SLEEP 100 IF (cd2 < 14) GOTO L2 od2 := TRUE Ovenstående løser opgaven fordi digital

Læs mere

Forelæsning Uge 2 Mandag

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

Læs mere

Forelæsning Uge 2 Torsdag

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

Læs mere

Moduler i Standard ML

Moduler i Standard ML Moduler i Standard ML Hans Hüttel December 2001 I løbet af datalogikurset har vi haft glæde af en hel række forskellige standardmoduler som f.eks. Math, Int, Real og String. Disse moduler kan, har vi set,

Læs mere

#AlleKanKode. Lektion 2 - Konstanter og Variabler

#AlleKanKode. Lektion 2 - Konstanter og Variabler #AlleKanKode Lektion 2 - Konstanter og Variabler Disclaimer / Ansvarsfraskrivelse Alt du deler og siger mm bliver optaget. Lad være med at dele privat oplysninger, adgangskoder, kreditkort oplysninger

Læs mere

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik Datalogi C, RUC Forelæsning 22. november 2004 Henning Christiansen Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik Dagens program Hvad

Læs mere

! #!! $ % $! & " &'"! & *+ "! " $ $ ""!,-! $!.! $! " # 1!! &' "

! #!! $ % $! &  &'! & *+ !  $ $ !,-! $!.! $!  # 1!! &' ""# "" # $ % $ & " &'" & " "()" *+ " " $ $ *+" $ %"&'" "( "",- $. + /"&'"-0 $ " # 1 &' " +"% $ %'('" 2 ' ) )030 )030) * )033 " )033 // " " 1 1 41 ")035)036 5- " " " *+773,8 *+ % " " )035& " )036& " 1 %"

Læs mere

Forelæsning Uge 2 Mandag

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

Læs mere

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

Programmering I Java/C#

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

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet Side af 1 sider Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Dette eksamenssæt består af en kombination af små skriftlige opgaver og multiplechoice-opgaver. Opgaverne

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere

Løsningsforslag Skriftlig eksamen 9. januar 2012

Løsningsforslag Skriftlig eksamen 9. januar 2012 Løsningsforslag Skriftlig eksamen 9. januar 2012 Version 1, 2012-01-09 Spørgsmål 1 Spørgsmål 1.1 Først laver vi indlysende korrekt NFAer for hver af de to dele (ddd ddd) og (_ddd)* af det givne regulære

Læs mere

Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner

Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner Forelæsning 4.1 Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner finden findalle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Afleveringsopgave

Læs mere

Recollections about the Development of Pascal. Niklaus Wirth ACM, 1993

Recollections about the Development of Pascal. Niklaus Wirth ACM, 1993 Recollections about the Development of Pascal Niklaus Wirth ACM, 1993 1 Niklaus Wirth, 73 Født i Schweiz, 1934 Ph.D., University of California, Berkeley, 1963 Assistant Professor of CS, Stanford University,

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

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

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning. Indhold Beregn rødder... 2 Beskrivelse af kærneproblemet... 2 Plan for brugerfladen for programmet... 3 Operationer på inddata... 4 Output - Beskrivelse af uddata... 4 Flowchart - programmets logiske opbygning/struktur...

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tolv) Eksamensdag: Fredag den 7. august 009, kl.

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

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =

Læs mere

Fra Computer til Virkelighed. TPE-kursus Elektroniske Systemer P1

Fra Computer til Virkelighed. TPE-kursus Elektroniske Systemer P1 Fra Computer til Virkelighed TPE-kursus Elektroniske Systemer P1 Fra Computer til Virkelighed En kort introduktion til kurset Systems Engineering Projektfaser Opsamling og opgave Om kurset Mål: at I lærer

Læs mere

Python programmering. Per Tøfting. MacFest

Python programmering. Per Tøfting. MacFest Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer

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

! "# $$ &'()*"* +*, & &"*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

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Datalogisk Institut Aarhus Universitet Fredag den 28. maj 2004, kl. 9.00 13.00 Opgave 1 (20%) En (r, k) kryds-graf er en orienteret graf

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2. Eksamen august Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n + n er O(n )? n / er O(n / )? n er O(n log n)? n er O((log n) )? n er Ω(n )? Ja Nej Opgave (%) Opskriv følgende funktioner

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

CANSAT & ARDUINO step by step

CANSAT & ARDUINO step by step CANSAT & ARDUINO step by step Jens Dalsgaard Nielsen SATLAB Aalborg Universitet Danmark jdn@space.aau.dk 1/51 Arduino CANSAT - MÅL At måle ved hjælp af sensor temperatur, tryk, acceleration, CO2, lys,...

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

Regulære udtryk og endelige automater

Regulære udtryk og endelige automater Regulære udtryk og endelige automater Regulære udtryk: deklarative dvs. ofte velegnede til at specificere regulære sprog Endelige automater: operationelle dvs. bedre egnet til at afgøre om en given streng

Læs mere

Automatisering af dataarbejde 2.2

Automatisering af dataarbejde 2.2 - Ofte kan man ikke bruge data direkte som det ligger i input, fx statistikbank tabeller det skal transformeres - Transformation af data er fx nødvendigt hvis data - Er disaggregeret - Har manglende observationer

Læs mere

Regulære udtryk og endelige automater. Ugens emner

Regulære udtryk og endelige automater. Ugens emner Ugens emner Endelige automater [Martin, kap. 3.2-3.5] endelige automater og deres sprog skelnelighed produktkonstruktionen Java: dregaut.fa klassen automater til modellering og verifikation Regulære udtryk

Læs mere

program fibomain(input,output); var i, j,result : integer; var x, y: integer;

program fibomain(input,output); var i, j,result : integer; var x, y: integer; program fibomain(input,output); var i, j,result : integer; procedure fib(n : integer); var x, y: integer; begin if (n=0) or (n=1) then result := 1 else begin fib(n-1); x:= result; fib(n-2); y:= result;

Læs mere

Dokumentation af programmering i Python 2.75

Dokumentation af programmering i Python 2.75 Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt

Læs mere

Forelæsning Uge 1 Torsdag

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

Læs mere

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det

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

Forelæsning Uge 2 Mandag

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

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

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:

Læs mere

"# $%$ " # $ % $ $ " & ( ) *+!,! Sum_Cost >= 5000SirName = Beltov Continue = %!- + ( ( - True) Continue *! If Antal <= 20 Then EnhedsOmk = 1.

# $%$  # $ % $ $  & ( ) *+!,! Sum_Cost >= 5000SirName = Beltov Continue = %!- + ( ( - True) Continue *! If Antal <= 20 Then EnhedsOmk = 1. "# $$ " # $ && & ' $ $ " & ) *+, Sum_Cost >= 5000SirName = Beltov Continue = True) Continue *, + If Antal

Læs mere

Løsningsforslag Skriftlig eksamen 5. januar 2011

Løsningsforslag Skriftlig eksamen 5. januar 2011 Løsningsforslag Skriftlig eksamen 5. januar 2011 Version 3, 2011-01-28 Spørgsmål 1 Spørgsmål 1.1 b c d 1 2 b c d Spørgsmål 1.2 Det regulære udtryk kunne være: (b c d)((b c d)(b c d)) Spørgsmål 1.3 Her

Læs mere

Enigma. Et programmeringssprog. Forfatter: Niels Serup X. Y Vejleder: A B C. Fag: Programmering Uddannelsessted: N M

Enigma. Et programmeringssprog. Forfatter: Niels Serup X. Y Vejleder: A B C. Fag: Programmering Uddannelsessted: N M Enigma Et programmeringssprog Forfatter: Niels Serup X. Y Vejleder: A B C Fag: Programmering Uddannelsessted: N M 25. maj 2010 Indholdsfortegnelse Indledning 3 Sproget 3 Syntax.............................................

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

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

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

Udviklingstab, og hvordan man sætter instilling i dansk office 2007 som jeg bruger herhjemme.

Udviklingstab, og hvordan man sætter instilling i dansk office 2007 som jeg bruger herhjemme. Skrevet julen 2017 Kom igang med makroer I 2011 lavede jeg et makrokursus til en kollega i Tyskland. Kurset var baseret på den programmeringsstil som jeg brugte/bruger når jeg laver makroer. Det er muligt

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Torsdag den 26. marts 2009, kl.

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tretten) Eksamensdag: Tirsdag den 8. april 2008,

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

Poly. - Javapakke til behandling af polynomier

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

Læs mere

Et udtryk er (som bekendt?) lineært hvis den differentierede er en konstant funktion, dvs. at den ikke afhænger af x. Betragt f lgende værdiprocedurer

Et udtryk er (som bekendt?) lineært hvis den differentierede er en konstant funktion, dvs. at den ikke afhænger af x. Betragt f lgende værdiprocedurer Opgave 1 (25%) Simple udtryk med +, - og * over heltal og en enkelt variabel x kan repræsenteres som værdier af f lgende type: Type Expression = Sum(const: Int, x: Unit, plus, minus, times: Arguments)

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

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Objekters tilstand og opførsel BlueJ og Greenfoot Java Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Forskellige slags variabler Afleveringsopgave:

Læs mere

Programmering i C. Lektion september 2009

Programmering i C. Lektion september 2009 Programmering i C Lektion 4 18. september 2009 Pointers Referenceparametre 2 / 19 Pointers 1 Pointers 2 Referenceparametre Pointers Referenceparametre 3 / 19 Husk: En variabel er en navngiven plads i computerens

Læs mere

Introduktion til ActionScript

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

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Tirsdag den 20. marts 2012, kl.

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

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

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

Læs mere

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign 28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par

Læs mere

Noter til DM517 Beregnelighed

Noter til DM517 Beregnelighed Noter til DM517 Beregnelighed Jonas Nyrup 23. oktober 2011 Indhold 1 Et par noter 2 2 Regulære sprog 2 2.1 DFA................................. 2 2.1.1 Eksempler.......................... 3 2.2 NFA.................................

Læs mere

Forelæsning Uge 1 Torsdag

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

Læs mere

Programmering for begyndere Lektion 2. Opsamling mm

Programmering for begyndere Lektion 2. Opsamling mm Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger

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

Programmering i C Intro og grundlæggende C 5. marts 2007

Programmering i C Intro og grundlæggende C 5. marts 2007 Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner

Læs mere

Forelæsning Uge 2 Mandag

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

Læs mere

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

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

Læs mere

#AlleKanKode. Lektion 3 - Operatorer

#AlleKanKode. Lektion 3 - Operatorer #AlleKanKode Lektion 3 - Operatorer Disclaimer / Ansvarsfraskrivelse Alt du deler og siger mm bliver optaget. Lad være med at dele privat oplysninger, adgangskoder, kreditkort oplysninger osv. Andre vil

Læs mere

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

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

Læs mere

Indhold. Senest opdateret:03. september 2013. Side 1 af 8

Indhold. Senest opdateret:03. september 2013. Side 1 af 8 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 API Modeller... 2 Webshop2 API Model v1... 3

Læs mere

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

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

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 13. august 2010, kl.

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

Sammenlign og byt. Et eksempel på dokumentering af et program

Sammenlign og byt. Et eksempel på dokumentering af et program Sammenlign og byt Et eksempel på dokumentering af et program Sammenlign og byt Jeg har valgt, som et eksempel, at dokumentere et meget enkelt program som indlæser to tal, sammenligner dem og udskriver

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 16. august 2013,

Læs mere

JavaScript. nedarvning.

JavaScript. nedarvning. JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man

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

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

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n Side af 0 sider Opgave (%) Ja Nej n er O(0n logn)? n er O(n )? n +n er O(n )? n logn er O(n )? n logn er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n

Læs mere

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i)

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) 1: KLASSE METODE KONSTRUKTØR EKS. PÅ TYPE (VARIABLE) PUBLIC/PRIVATE OBJECT UD FRA KLASSE KALD METODE TILFØR PARAMETER TIL METODE RETURNERE VARIBEL.

Læs mere

User Guide AK-SM 720 Boolean logic

User Guide AK-SM 720 Boolean logic User Guide AK-SM 720 Boolean logic ADAP-KOOL Refrigeration control systems Anvendelse Funktionen er indeholdt i Systemmanager type AK-SM 720, og kan anvendes til brugerdefinerede funktioner. Funktionerne

Læs mere

Der er fejl i programmer. Ikke-trivielle programmer er næsten altid fejlbehæftede.

Der er fejl i programmer. Ikke-trivielle programmer er næsten altid fejlbehæftede. Udvidet Programmering 1999 Forelæsning 22, tirsdag 23. november 1999 Indkøring versus afprøvning af programmer Intern afprøvning Ekstern afprøvning Programkommentarer og dokumentation Programmering 1999

Læs mere

Aritmetiske Forelæsning Pr ogrammering operatorer tir 1999 sda præcedens september 1999 Logiske Sammenligningsoperatorer operatorer præcedens

Aritmetiske Forelæsning Pr ogrammering operatorer tir 1999 sda præcedens september 1999 Logiske Sammenligningsoperatorer operatorer præcedens Programmering 1999 Forelæsning 3, tirsdag 7. september 1999 Aritmetiske og logiske operatorer, præcedens Den indbyggede klasse String: tegnstrenge Metoder i klasser Metoder: returtype eller void Metoder:

Læs mere

Python 3 kursus lektion 1:

Python 3 kursus lektion 1: Python 3 kursus lektion 1: Her laves et nyt program Her køre programmet! Her skrives koden: Gem (CTRL-s) Tryk F5 (for at køre) www.madsmatik.dk d.14-01-2016 1/5 At skrive til skærmen: Hello World Man kan

Læs mere

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

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

Læs mere

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

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