Løsningsforslag Skriftlig eksamen 3. januar 2013
|
|
- Vilhelm Kvist
- 7 år siden
- Visninger:
Transkript
1 Løsningsforslag Skriftlig eksamen 3. januar 2013 Version 1, 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 udgang 2 (klokken) sættes til false (slukket) og forbliver uændret indtil cd2, som tæller antal gange digital indgang 2 er skiftet fra false til true, får en værdi der er større end eller lig med 14, hvor den så sættes til true, og SIMPLC-programmet standser (men digital udgang 2 forbliver true og klokken bliver ved med at ringe). En anden mulig løsning er denne, som sparer en label, men lidt overflødigt sætter digital udgang 2 til false igen og igen: L1: od2 := FALSE SLEEP 100 IF (cd2 < 14) GOTO L1 od2 := TRUE Spørgsmål 1.2 Her er en komplet regel til lexerspecifikationen, der bruger regulære udtryk til kun at genkende de tilladte navne på ind- og udgange: rule Token = parse [ \t \r ] { Token lexbuf } \n { lexbuf.endpos <- lexbuf.endpos.nextline Token lexbuf } [ 0-9 ]+ { CSTINT (System.Int32.Parse (lexemeasstring lexbuf)) } "ia"[ 1-2 ] { INANA (lexemeasstring lexbuf > parsethirdint) } "id"[ 1-5 ] { INDIGI (lexemeasstring lexbuf > parsethirdint) } "cd"[ 1-2 ] { INCOUNT (lexemeasstring lexbuf > parsethirdint) } "oa"[ 1-2 ] { OUTANA (lexemeasstring lexbuf > parsethirdint) } "od"[ 1-8 ] { OUTDIGI (lexemeasstring lexbuf > parsethirdint) } [ a - z A - Z ][ a - z A - Z 0-9 ]* { keyword (lexemeasstring lexbuf) } : { COLON } { SEMICOLON } ":=" { COLONEQUAL } + { PLUS } - { MINUS } = { EQ } < { LT } ( { LPAR } ) { RPAR } "<>" { NE } eof { EOF } _ { failwith "Lexer error: illegal symbol" } Ovenstående har den konsekvens at od8 ikke vil være et tilladt labelnavn (fordi det er navnet på en digital udgang), mens od9 er et tilladt labelnavn (fordi det ikke er navnet på en digital udgang). Om dette er et godt design er en smagssag, men det svarer til at while ikke kan bruges som label i C# hvorimod during kan. Her er de hjælpefunktioner som benyttes ovenfor: 1
2 let keyword s = match s with "AND" -> AND "FALSE" -> FALSE "GOTO" -> GOTO "IF" -> IF "NOT" -> NOT "OR" -> OR "TRUE" -> TRUE "SLEEP" -> SLEEP _ -> NAME s let parsethirdint (s : string) = System.Int32.Parse(s.Substring(2)) Spørgsmål 2 Spørgsmål 2.1 Traditionelt (og i C, C++, Java, C#) binder eller svagere end og, som binder svagere end not, som binder svagere end = og <>, som binder svagere end <, som binder svagere end + og - : %left OR /* lowest precedence */ %left AND %nonassoc NOT %left EQ NE %nonassoc LT %left PLUS MINUS /* highest precedence */ Spørgsmål 2.2 og 2.3 Her er parserspecifikationen inklusive semantiske aktioner, i to afdelinger. For det første består et SIMPLC-program af en sekvens (Blocks) af blokke hver block (Block) er en label efterfulgt af en sekvens (Commands) af kommandoer efterfulgt af semikolon hver kommando (Command) har en af de fire angivne former og en udgang (Output) har en af de to former (analog, digital): Main: Blocks EOF { $1 } Blocks: /* empty */ { [] } Block Blocks { $1 :: $2 } Block: NAME COLON Commands { ($1, $3) } Commands: /* empty */ { [] } Command SEMICOLON Commands { $1 :: $3 } Command: Output COLONEQUAL Expr { Set($1, $3) } IF Expr GOTO NAME { If($2, $4) } GOTO NAME { Goto($2) } SLEEP CSTINT { Sleep($2) } Output: OUTANA { Oa($1) } OUTDIGI { Od($1) } 2
3 For det andet har et udtryk (Expr) en af de angivne 13 former, hvor en indgang (Input) kan antage en af de 3 former (analog, digital, tæller): Expr: CSTINT { CstI $1 } FALSE { False } TRUE { True } Input { $1 } Expr PLUS Expr { Prim2("+", $1, $3) } Expr MINUS Expr { Prim2("-", $1, $3) } Expr EQ Expr { Prim2("=", $1, $3) } Expr NE Expr { Prim2("<>", $1, $3) } Expr LT Expr { Prim2("<", $1, $3) } Expr AND Expr { Prim2("and", $1, $3) } Expr OR Expr { Prim2("or", $1, $3) } NOT Expr { Prim1("not", $2) } LPAR Expr RPAR { $2 } Input: INANA { Ia($1) } INDIGI { Id($1) } INCOUNT { Cd($1) } 3
4 Spørgsmål 3 Spørgsmål 3.1 Der skal være fire regler for hver af +, -, =, <> og < for at dække alle fire kombinationer af operandtyperne BYTE og WORD. Til gengæld er reglerne for - de samme som for +, og tilsvarende for <> og <. Man kan faktisk nøjes med én regel per operator hvis man indfører en hjælperegel der siger at ethvert udtryk af type BYTE også kan opfattes som et udtryk af type WORD: e : BYTE - e : WORD 4
5 Spørgsmål 3.2 Her er typetjekkeren (skrevet i F#) for udtryk: let rec exprtype (e : expr) : typ = match e with Ia _ -> BYTE Id _ -> BOOL Cd _ -> WORD False -> BOOL True -> BOOL CstI n -> if 0 <= n && n < 255 then BYTE else WORD Prim1(op, e1) -> match (op, exprtype e1) with ("not", BOOL) -> BOOL ("not", _) -> failwith "type error in not" _ -> failwithf "unknown operator: %s" op Prim2(op, e1, e2) -> match (op, exprtype e1, exprtype e2) with ("and", BOOL, BOOL) -> BOOL ("or", BOOL, BOOL) -> BOOL ("+", BYTE, BYTE) -> WORD ("+", BYTE, WORD) -> WORD ("+", WORD, BYTE) -> WORD ("+", WORD, WORD) -> WORD ("+", _, _) -> failwith "type error in +" ("-", BYTE, BYTE) -> WORD ("-", BYTE, WORD) -> WORD ("-", WORD, BYTE) -> WORD ("-", WORD, WORD) -> WORD ("-", _, _) -> failwith "type error in -" ("<", BYTE, BYTE) -> BOOL ("<", BYTE, WORD) -> BOOL ("<", WORD, BYTE) -> BOOL ("<", WORD, WORD) -> BOOL ("<", _, _) -> failwith "type error in <" ("=", BYTE, BYTE) -> BOOL ("=", BYTE, WORD) -> BOOL ("=", WORD, BYTE) -> BOOL ("=", WORD, WORD) -> BOOL ("=", _, _) -> failwith "type error in =" ("<>", BYTE, BYTE) -> BOOL ("<>", BYTE, WORD) -> BOOL ("<>", WORD, BYTE) -> BOOL ("<>", WORD, WORD) -> BOOL ("<>", _, _) -> failwith "type error in <>" _ -> failwithf "unknown operator: %s" op Det er svært træls med de mange regler for plus, minus, mindre end, lig med og forskellig fra. Som i 3.1 kan man i stedet skrive fx at reglerne for minus er lige som for plus og reglerne for ligmed og forskellig fra er lige som for mindre end og dermed spare 15 linjer. Alle gentagelserne kunne også undgås ved at bruge F# s or -patterns, som i match (op, exprtype e1, exprtype e2) with ("+", (BYTE WORD), (BYTE WORD)) -> WORD ("+", _, _) -> failwith "type error in +" ("-", (BYTE WORD), (BYTE WORD)) -> WORD ("-", _, _) -> failwith "type error in -" eller endda dette, der håndterer alle plus- og minus-regler i én linje (og stadig giver en rimelig fejlmeddelelse): 5
6 match (op, exprtype e1, exprtype e2) with (("+" "-"), (BYTE WORD), (BYTE WORD)) -> WORD ("+", _, _) -> failwith "type error in +" ("-", _, _) -> failwith "type error in -" og tilsvarende for sammenligningsoperatorerne, så 25 linjer reduceres til 7. Denne F#-feature var ikke en del af pensum men det er naturligvis tilladt at bruge den. Spørgsmål 3.3 Typetjek af en kommando er meget nemmere (men bruger selvfølgelig exprtype som subrutine). For eksempel er en Sleep-kommando automatisk typekorrekt, fordi lexer og parser garanterer at argumentet er en heltalskonstant. let cmdtype (c : cmd) : bool = match c with Set(out, e) -> match (out, exprtype e) with (Oa _, BYTE) -> true (Oa _, WORD) -> true (Od _, BOOL) -> true _ -> failwith "type error in assignment" Goto _ -> true If(e, _) -> if exprtype e = BOOL then true else failwith "type error in IF" Sleep _ -> true Spørgsmål 3.4 Funktionen labelcheck tager et argument blocks (som har type program, dvs. det er en liste af blokke), producerer en liste af alle definerede labels fra blocks, definerer en hjælpefunktion labelexists(lab) der afgør om lab er i listen, definerer en hjælpefunktion checkcmd(c) der afgør om de labels der bruges i kommando c er definerede, og kalder så den på alle kommandoer i alle blokke i blocks: let labelcheck blocks = let labels = List.map (function (lab, _) -> lab) blocks let labelexists lab = List.exists (fun x -> x=lab) labels let checkcmd (c : cmd) = match c with Goto lab -> labelexists lab If(_, lab) -> labelexists lab _ -> true let checkblock (_, cmds) = List.forall checkcmd cmds List.forall checkblock blocks 6
7 Spørgsmål 4 Spørgsmål 4.1 Scala-erklæringerne for SIMPLC abstrakt syntaks er nærmest en linje-for-linje oversættelse af F#-erklæringerne vist i opgave 2.3. Men alle detaljer er anderledes for eksempel skal felter have navne (fx index) i Scala mens de er navnløse i F#: sealed abstract class Expr case class Ia(index: Int) extends Expr // 1-2 case class Id(index: Int) extends Expr // 1-5 case class Cd(index: Int) extends Expr // 1-2 case class CFalse() extends Expr case class CTrue() extends Expr case class Prim1(op: String, e1: Expr) extends Expr case class Prim2(op: String, e1: Expr, e2: Expr) extends Expr sealed abstract class Output case class Oa(index: Int) extends Output // 1-2 case class Od(index: Int) extends Output // 1-8 type Lab = String sealed abstract class Cmd case class Set(lhs: Output, rhs: Expr) extends Cmd case class Goto(lab: Lab) extends Cmd case class If(cond: Expr, lab: Lab) extends Cmd case class Sleep(ms: Int) extends Cmd type Program = List[(Lab, List[Cmd])] Spørgsmål 4.2 Her er en rimelig omfattende forenklingsfunktion til logiske udtryk fra SIMPLC. Som i opgaveformuleringen tager den kun digitale indgange, konstanter og logiske operatorer (altså ikke iaj, cdj, +, -, =, <>, <) i betragtning: def simplify(e: Expr) : Expr = e match { case Prim2("and", CFalse(), e2) => CFalse() case Prim2("and", CTrue(), e2) => simplify(e2) case Prim2("and", e1, CFalse()) => CFalse() case Prim2("and", e1, CTrue()) => simplify(e1) case Prim2("and", e1, e2) => Prim2("and", simplify(e1), simplify(e2)) case Prim2("or", CFalse(), e2) => simplify(e2) case Prim2("or", CTrue(), e2) => CTrue() case Prim2("or", e1, CFalse()) => simplify(e1) case Prim2("or", e2, CTrue()) => CTrue() case Prim2("or", e1, e2) => Prim2("or", simplify(e1), simplify(e2)) case Prim1("not", Prim1("not", e)) => simplify(e) case Prim1("not", CFalse()) => CTrue() case Prim1("not", CTrue()) => CFalse() case Prim1("not", Prim2("and", e1, e2)) => simplify(prim2("or", simplify(prim1("not", e1)), simplify(prim1("not", e2)))) case Prim1("not", Prim2("or", e1, e2)) => simplify(prim2("and", simplify(prim1("not", e1)), simplify(prim1("not", e2)))) case Prim1("not", e) => Prim1("not", simplify(e)) case _ => e } 7
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 mereSkriftlig eksamen, Programmer som Data Onsdag 6. januar Spørgsmål 1 (20 %): Regulære udtryk og automater
Skriftlig eksamen, Programmer som Data Onsdag 6. januar 2010 Dette eksamenssæt har 5 sider. Tjek med det samme at du har alle siderne. Eksamens varighed er 4 timer. Der er fire spørgmål. For at få fuldt
Læs mereLø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 mereSproget 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 mereSkriftlig eksamen, Programmer som Data Mandag 9. januar 2012
Skriftlig eksamen, Programmer som Data Mandag 9. januar 2012 Dette eksamenssæt har 6 sider. Tjek med det samme at du har alle siderne. Eksamens varighed er 4 timer. Der er fire opgaver. For at få fuldt
Læs mereSkriftlig 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 mereSproget 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 mereProgrammering og Problemløsning, 2017
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,
Læs mereBaggrundsnote 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 mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereBoolsk algebra For IT studerende
Boolsk algebra For IT studerende Henrik Kressner Indholdsfortegnelse 1 Indledning...2 2 Logiske kredsløb...3 Eksempel:...3 Operatorer...4 NOT operatoren...4 AND operatoren...5 OR operatoren...6 XOR operatoren...7
Læs mereKapitel 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 mereForelæ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 mereresult = val[0][0], val[1][1], val[0][0], val[2], val[4]))
# # intp # class Intp::Parser prechigh nonassoc UMINUS left '*' '/' left '+' '-' nonassoc EQ preclow rule program : stmt_list result = RootNode.new( val[0] ) stmt_list : result = [] stmt_list stmt EOL
Læs mereSkriftlig eksamen, Programmer som Data Onsdag 5. januar 2011
Skriftlig eksamen, Programmer som Data Onsdag 5. januar 2011 Version 1.1 af 2011-01-28 Dette eksamenssæt har 7 sider. Tjek med det samme at du har alle siderne. Eksamens varighed er 4 timer. Der er fire
Læs mereSproget 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 mereBoolsk algebra For IT studerende
Boolsk algebra For IT studerende Henrik Kressner Indholdsfortegnelse Indledning...3 Logiske kredsløb...4 Eksempel:...4 Operatorer...4 NOT operatoren...5 AND operatoren...5 OR operatoren...6 XOR operatoren...7
Læs mereOversæ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 mereKursus 02199: Programmering. Kontrol af programudførelsen. afsnit 3.1-3.5. if (indkomst > 267000) topskat = (indkomst-267000) * 0.
Kursus 02199: Programmering afsnit 3.1-3.5 Anne Haxthausen IMM, DTU 1. Kontrol af programudførn (afsnit 3.1) 2. Valg-sætninger (if og switch) (afsnit 3.2 og 3.3) 3. Bloksætninger (afsnit 3.2) 4. Logiske
Læs mereProgrammering 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 mereEksamen dcomnet 2012Q4. Årskortsnummer Navn
Eksamen dcomnet 2012Q4 Årskortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive årskort og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt svar per
Læs mereForelæ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 mereProgrammering 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 mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereYderligere udvidelser af oversætter for Minimal
Yderligere udvidelser af oversætter for Minimal Karakteropgave på kurset Oversættere Vinter 2005 1 Introduktion Dette er den anden del af rapportopgaven på Oversættere, vinter 2005. Opgaven skal løses
Læs mereProgrammering 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 mereModuler 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 mereArduino kursus lektion 3:
Arduino kursus lektion 3: I denne lektion skal vi lave få en diode til at fade op og ned! Herefter skal denne diode bruges sammen med en lysføler til at lave en smart lysfølsom diode som selv justere lyset
Læs mereEksamen dcomnet Q2/2012. Studiekortsnummer Navn
Eksamen dcomnet Q2/2012 Studiekortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt
Læs mereProgrammering 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 mereEt 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 mereStudiepraktik. 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 mereDANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Læs mereModbus data modellen er opbygget af fire primære data typer. I nedenstående skema er en kort oversigt over disse.
Modbus RTU protokol Indledning Modbus er en application layer messaging protocol, placeret på 7. lag i OSI modellen, der sørger for client/server kommunikation mellem enheder koblet på forskellige typer
Læs mereKapitel 3 Betinget logik i C#
Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret
Læs merePrograms as data 1 Overview, F# programming, abstract syntax
Programs as data 1 Overview, F# programming, abstract syntax Peter Sestoft Monday 2012-08-27** www.itu.dk 1 Plan for today Course contents, goals and motivation F# crash course (repeats some of F2012)
Læs mereUgeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Læs mere1 Opsumering fra tidligere. 2 Dagsorden 3 BIMS. 4 Programtilstande. Statements/kommandoer (Stm) i bims. 3.1 Abstrakt syntaks for bims
1 Opsumering fra tidligere Hvis A er kontekstfrit, S er der et p > 0 s Alle s A hvor s p kan splittes op som s = uvxyz så argument 1-3 holder A er ikke kontekstfrit, hvis for ethvert bud på p kan findes
Læs mereIt og informationssøgning Forelæsning december 2006 Jakob Grue Simonsen. Diverse emner af almen interesse
It og informationssøgning Forelæsning 12 6. december 2006 Jakob Grue Simonsen Diverse emner af almen interesse 1 Gemme objekter til filer I python skal en fil på disken åbnes, før man kan læse eller skrive
Læs mereInteger.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else
Programmering 1999 Forelæsning 2, fredag 3. september 1999 Betingede ordrer: if-, if Indlejrede betingede ordrer Løkker med begrænset iteration: for Løkker med ubegrænset iteration: while Betingede ordrer,
Læs mereAdressering af ind- og ud gange på BCxxxx IEC1131 PLC uden TC system manager
APP-NOTE 600004 Beckhoff Application Note Date: 8/28/2006 Document Status: First Draft Beckhoff Automation Aps Naverland 2, DK-2600 Glostrup Phone +45 43 46 76 20 Fax +45 43 46 63 35 Adressering af ind-
Læs mereStart 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 mereKursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Læs mereKontrol-strukturer i PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende
Læs mereBOSK F2011, 1. del: Udsagnslogik
( p q) p q February 1, 2011 Sandhedsværdier og udsagnsvariable I dag handler det om logiske udsagn. Mere præcist om de logiske udsagn vi kan bygge ud fra sandhedsværdier, udsagnsvariable og logiske konnektiver.
Læs mereForelæ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 mereHjælp! Der er brok med mit ML-program
Hjælp! Der er brok med mit ML-program Hans Hüttel December 2001 Indhold 1 Formålet med denne note 1 2 Der er ere slags fejl 2 2.1 Brugerfejl............................. 2 2.2 Syntaksfejl.............................
Læs mereComputerarkitektur Eksamen 2014Q2. Niels Olof Bouvin A. Studienummer Navn
Computerarkitektur Eksamen 2014Q2 Niels Olof Bouvin A Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.
Læs mereSpar tid med struktureret programmering! Om PLC programmering
Spar tid med struktureret programmering! Om PLC programmering 1 MITSUBISHI PLC programmerings software Ved systemtekniker Helge Gulstad Tlf. Direkte: 46 74 01 61 Mob: 21 19 25 64 Mail: hgd@beijer.dk 2
Læs mereMircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)
Mircobit Kursus Lektion 4 http://microbit.org/ (Du skal her vælge Lets Code Og herefter Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. I skulle lave et stop ur man kunne
Læs mereUser 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 mereLØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4
LØKKER METODER C S HISTORIE Grundlæggende programmering Lektion 4 1 LEKTIER UML struktur diagrammer om biler 2 OPERATORER Syntaks til at udføre forskellige beregninger og handlinger Booleans og hvorfor
Læs mereKursusarbejde 2 Grundlæggende Programmering
Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................
Læs mereNoter 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 mereIntroduktion Indtastning Funktioner Scripts Optimering. Matlab
- robert@math.aau.dk http://www.math.aau.dk/ robert/teaching/2010/matlab 9. august 2010 1/39 Disposition 1. Lidt om. 2. Basiskursus. 3. Opgaver. 4. Mere til basiskursus. 5. Opgaver. 2/39 MATLAB = MATrix
Læs mereSyntaks 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 merePython 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 mereUniversity 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 mere5. Kontrolstrukturer - Motivation og Oversigt
5. Kontrolstrukturer - Motivation og Oversigt I dette og de følgende afsnit vil vi - vigtigst af alt - møde forgreninger og løkker. Sådanne kaldes kontrolstrukturer, fordi vi med disse kan kontrollere
Læs mereDATALOGI 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 mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereProgrammering i C. Lektion oktober 2008
Programmering i C Lektion 2 20 oktober 2008 Historie Processen At kompilere 2 / 23 Fra sidst 1 Historie 2 Processen 3 At kompilere Historie Processen At kompilere 3 / 23 ALGOL 60 1963 CPL 1966 BCPL 1969
Læs mereForelæ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 mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form
Læs mereF# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank
F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank 03-10-2018 Rune Ibsen Softwareudvikling Seniorkonsulent Mentoring 10 konsulenter F# Programmeringssprog som oversættes til.net Functional-first,
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
Læs mereMircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)
Mircobit Kursus Lektion 3 http://microbit.org/ (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. Man skulle lave et tabel
Læs mereBemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.
Check dine svar på: https://dtu.codejudge.net/02101-e18/ Exercise 1: Installer Eclipse og Java. Dette kan f.eks. gøres ved at følge instuktionerne i dokumentet eclipse intro.pdf som ligger under Fildeling
Læs mereEksamen 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 mereOversæ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 mereForelæ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 mereOversæ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 mere16. december. Resume sidste gang
16. december Resume sidste gang Abstrakt problem, konkret instans, afgørlighedsproblem Effektiv kodning (pol. relateret til binær kodning) Sprog L : mængden af instanser for et afgørlighedsproblem hvor
Læs mereOnline kursus: Programming with ANSI C
Online kursus 365 dage DKK 1.999 Nr. 90198 P ekskl. moms Denne kursuspakke giver dig et bredt kendskab til sproget C, hvis standarder er specificeret af American National Standards Institute (ANSI). Kurserne
Læs mereLæ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#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 mereSkriftlig eksamen i Datalogi
Skriftlig eksamen i Datalogi Modul 1 Sommer 1998 Opgavesættet består af 4 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 24% Opgave 2 35% Opgave 3 15% Opgave 4 26% Alle sædvanlige hjælpemidler
Læs mereVirkefeltsregler i Java
Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten
Læs mereTredjepart webservices
Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output
Læs mereProgrammering 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 mereIndholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...
Modul 2 Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen... 6 Opgave... 6 POST/GET og formular... 6 Opgaver...
Læs mereProgrammering 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 mereDatalogi 0 GA Forelæsning september 2003 Nils Andersen. Tegn og tekster. Listefunktionalen map. Naïv sortering
Datalogi 0 GA Forelæsning 11 12 18. september 2003 Nils Andersen Tegn og tekster. Listefunktionalen map. Naïv sortering Typen char af tegn Typen string af tekster Eksempler Højereordensfunktionen map Sortering
Læs mereeskattekortsanmodninger fra og med 2011
eskattekortsanmodninger fra og med 2011 Fra og med skatteåret 2011 skal anmodning om elektroniske skattekort ske via et nyt format som defineres i det følgende. Udgangspunktet er det danske skattevæsens
Læs mereBRP Tal. Om computer-repræsentation og -manipulation. Logaritmer
BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave
Læs mereComputerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn
Computerarkitektur Eksamen 2014Q3 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereEn 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 mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereFlowchart 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 mereAarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00
Page 1/12 Aarhus Universitet, Science and Technology, Computer Science Exam Wednesday 27 June 2018, 9:00-11:00 Allowed aid: None The exam questions are answered on the problem statement that is handed
Læs mereDet kunne godt se ud til at ikke-rygere er ældre. Spredningen ser ud til at være nogenlunde ens i de to grupper.
1. Indlæs data. * HUSK at angive din egen placering af filen; data framing; infile '/home/sro00/mph2016/framing.txt' firstobs=2; input id sex age frw sbp sbp10 dbp chol cig chd yrschd death yrsdth cause;
Læs mereInduktive og rekursive definitioner
Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal
Læs mereDATALOGI 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"# $%$ " # $ % $ $ " & ( ) *+!,! Sum_Cost >= 5000SirName = Beltov Continue = %!- + ( ( - True) Continue *! If Antal <= 20 Then EnhedsOmk = 1.
"# $$ " # $ && & ' $ $ " & ) *+, Sum_Cost >= 5000SirName = Beltov Continue = True) Continue *, + If Antal
Læs mereArduino kursus lektion 4:
Arduino kursus lektion 4: I denne lektion skal vi bruge et digitalt termometer til at aflæse temperaturen! Herefter skal vi tænde 3 dioder som hver indikerer forskellige temperaturer! Opgave 1: Temperatursensor
Læs mere26 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 mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereAlgoritmeskabeloner: 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 mereEksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn
Eksamen Computerarkitektur 2013Q4 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.
Læs mere