Programmering og Problemløsning, 2017
|
|
- Anita Bonde
- 4 år siden
- Visninger:
Transkript
1 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 27, / 18
2 Outline 1 F# Collections Definition af Lister List modulet Transformation af Lister Beregninger på Lister Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
3 F# Collections F# Collections Vi har ofte behov for at håndtere data vi ikke kender størrelsen af på forhånd. F# tilbyder en række collection moduler til håndtering af data: Eksempler: Strenge af karakterer (String modulet) Lister af tal (List modulet) Mængder af navne (Set modulet) Afbildninger af navne til telefonnumre (Map modulet) Muterbare arrays af floats (Array modulet)... Bemærk: Til forskel fra de strukturer vi har set ind til nu (såsom tupler) kan F# collections bestå af et ikke på forhånd defineret antal elementer. Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
4 Definition af Lister Lister En liste er en sekvens af elementer af samme type, men hvor antallet af elementer ikke nødvendigvis er kendt på forhånd. Tilsvarende som for antallet af tegn i en streng. I modsætning til antallet af elementer i et tuple. Eksempler: Udtryk : Type [3; 4; 5] : int list [ h ; e ; l ; l ; o ] : char list [true] : bool list [] : a list Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
5 Definition af Lister Indicering i og bygning af lister Vi kan bruge dot-notation til at tilgå dele af lister (ligesom for strenge): [ a ; e ; i ; o ; u ; y ].[2] = i [ a ; e ; i ; o ; u ; y ].[2..4] = [ i ; o ; u ] [ a ; e ; i ; o ; u ; y ].[2..14] = error message List append (@) [ a ; e [ i ; o ] = [ a ; e ; i ; o ] [] = [] List cons (::) 1 :: [2; 3] = [1; 2; 3] false :: [] = [false] 1.2 :: 2.3 :: [] = [1.2; 2.3] [] :: [] = [[]] Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
6 Definition af Lister Repræsentationen af lister Syntax: let lst = [1;2;3;4] let lst2 = 5 :: List.tail (List.tail lst) Lagerrepræsentation: Det er nemt at hægte et ekstra element på starten af en liste (::). Det er IKKE nemt (læs: hurtigt) at tilgå det sidste element i en liste. Lister er immutable, dvs elementer kan ikke opdateres. Hvorfor kan immutabilitet være godt? Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
7 Definition af Lister Repræsentationen af arrays Syntax: let arr = [ 1;2;3;4 ] Lagerrepræsentation: Det er IKKE nemt at tilføje ekstra elementer. Det er nemt (hurtigt) at læse ethvert element i et array. Arrays er mutable, dvs det er muligt (hurtigt) at opdatere ethvert element. Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
8 Definition af Lister Basale listeoperationer // Immediate lists let nums = [1;2;3;4] // 1 :: 2 :: 3 :: 4 :: [] let caps = [("London",8.8); // pairs of city name and ("Berlin",3.5); // population (mill) ("Copenhagen",0.7)] Listekonstruktører og append (@) val [] : a list // empty list val :: : a -> a list -> a list // add element : a list -> a list -> a list // append lists Eksempler let allcaps = ("New York",8.5) :: ("Rome",2.9) :: caps let nums2 = [100;200] Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
9 List modulet Modulet List Modulet List indeholder en lang række operationer på lister. // list creation val init : int -> (int -> a) -> a list val length : a list -> int // length l = l.length // list transformers val map : ( a -> b) -> a list -> b list val map2 : ( a-> b-> c) -> a list -> b list -> c list val filter : ( a -> bool) -> a list -> a list // list traversing val fold : ( s -> a -> s) -> s -> a list -> s val foldback : ( a -> s -> s) -> a list -> s -> s val find : ( a -> bool) -> a list -> a option... Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
10 List modulet Dynamisk konstruktion af lister Funktionen List.init gør det muligt at opbygge en liste dynamisk fra bunden: Eksempel let sz = let lst = List.init sz (fun x -> x * 2 + 1) // = [0*2+1; 1*2+1; 2*2+1; 3*2+1; 4*2+1] // [1; 3; 5; 7; 9] Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
11 Transformation af Lister Transformation af lister map og map2 val map : ( a -> b) -> a list -> b list map f [v 0 ; v 1 ; v 2 ;...; v n] = [f v 0 ; f v 1 ; f v 2 ;...; f v n] val map2 : ( a-> b-> c) -> a list -> b list -> c list map2 f [a 0 ; a 1 ; a 2 ;...; a n] [b 0 ; b 1 ; b 2 ;...; b m] = [f a 0 b 0 ; f a 1 b 1 ; f a 2 b 2 ;...; f a n b n] // if n=m = error // if n<>m Eksempler let vs = List.map (fun x -> x+1) [10; 20; 30] // = [10+1; 20+1; 30+1] [11; 21; 31] let us = List.map2 (+) [10; 20; 30] [1; 2; 3] // = [10+1; 20+2; 30+3] [11; 22; 33] Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
12 Transformation af Lister Transformation af lister List.filter val filter : ( a -> bool) -> a list -> a list Udtrykket (List.filter p xs) resulterer i en liste indeholdende de elementer i xs der opfylder prædikatet p. Eksempel let allcaps = [("London",8.8); ("Berlin",3.5); ("Copenhagen",0.7); ("New York",8.5); ("Rome",2.9)] let bigcaps = List.filter (fun (name,sz) -> sz > 5.0) allcaps // [("London",8.8);("New York",8.5)] Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
13 Beregninger på Lister Beregninger på lister Her er noget kode for en uheldig implementation af listesummation: let lst = List.init (fun x -> x) let mutable i = 0 let mutable sum = 0 while (i < lst.length) do sum <- sum + lst.[i] i <- i + 1 printf "%d\n" sum // BAD // BAD // BAD // BAD // BAD // BAD // BAD Tre problemer: Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
14 Beregninger på Lister Listefoldninger fold og foldback Listefoldninger er generiske funktioner der gør det muligt at gennemløbe en liste for samtidig at foretage beregninger på elementerne, f.eks. for at opbygge en ny datastruktur. val fold : ( s -> a -> s) -> s -> a list -> s fold f s [x 0 ;x 1 ;x 2 ;...;x n] = f... (f (f (f s x 0 ) x 1 ) x 2 )... x n val foldback : ( a -> s -> s) -> a list -> s -> s foldback f [x 0 ;x 1 ;x 2 ;...;x n] s = f x 0 (f x 1 (f x 2...(f x n s)...)) Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
15 Beregninger på Lister Eksempel: summation af elementerne i en liste let sum = List.fold (+) 0 [3;6;2;5] // = (((0 + 3) + 6) + 2) + 5 // ((3 + 6) + 2) + 5 // (9 + 2) Eksempel: Find det mindste element i en liste let min x y = if x < y then x else y let min_elem = List.fold min 1000 [3;6;2;5] // = min (min (min (min ) 6) 2) 5 // min (min (min 3 6) 2) 5 // min (min 3 2) 5 min Spørgsmål: 1 Kunne man også have benyttet List.foldBack? 2 Hvorfor tager List.fold og List.foldBack et initielt element? Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
16 Beregninger på Lister Eksempel: Reverser en liste let f s x = x :: s let rev xs = List.fold f [] xs let ex = rev [1;2;3] // = f (f (f [] 1) 2) 3 // f (f (1 :: []) 2) 3 f (2 :: 1 :: []) 3 // 3 :: 2 :: 1 :: [] Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
17 Beregninger på Lister Eksempel: dot-produktet og vectorlængde let vec_mul (xs:float list) ys = List.map2 (*) xs ys let dot xs ys = List.fold (+) 0.0 (vec_mul xs ys) let vec_len xs = sqrt (dot xs xs) let ex = vec_len [3.0; 4.0] // = sqrt (List.fold (+) 0.0 (vec_mul [3.0; 4.0] [3.0; 4.0])) // sqrt (List.fold (+) 0.0 [9.0; 16.0]) // sqrt 25.0 // 5.0 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
18 Beregninger på Lister Funktionen List.find val find : ( a -> bool) -> a list -> a option Udtrykket (find p xs) returnerer (Some x) hvis x er det første element i xs for hvilket (p x) evaluerer til true. Udtrykket returnerer None hvis der ikke findes et sådan element. Implementation af List.find ved brug af List.fold let find p xs = List.fold (fun s x -> if s = None && p x then Some x else s) None xs // find (fun x -> x > 4) [3;2;5;6;45] // 5 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September 27, / 18
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 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 mereProgrammering 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 mereProgrammering 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 mereProgrammering 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 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 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 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 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 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 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 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 mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.
Læs 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 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 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 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 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 mereLø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 merePHP 3 UGERS FORLØB PHP, MYSQL & SQL
PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at
Læs mereForelæsning Uge 3 Torsdag
Forelæsning Uge 3 Torsdag Billedredigering (bl.a. brug af for-løkker) Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt)
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 mereEnigma. 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 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 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 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 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 mereAarhus Universitet, Science and Technology, Computer Science. Mock Exam. Wednesday 27 June 2018, 9:00-11:00
Page 1/15 Aarhus Universitet, Science and Technology, Computer Science Mock 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 mereIntroduktion. Philip Bille
Introduktion Philip Bille Plan Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Algoritmer og datastrukturer Hvad er det? Algoritmisk problem: præcist defineret relation mellem
Læs mereDatabaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Læs mereZapier-integration mellem MailChimp og webcrm hos Azalea IT
Case: Zapier-integration mellem MailChimp og webcrm hos Azalea IT Zapier er en integrationsplatform, hvor man kan forbinde over 1500 apps uden at skrive en eneste bid kode. Du kan se, hvilke apps du kan
Læs mereSkriftlig 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 mereProgrammeringscamp. Implementer funktionerne én for én og test hele tiden.
Programmeringscamp De to opgaver træner begge i at lave moduler som tilbyder services der kan bruges af andre, samt i at implementere services efter en abstrakt forskrift. Opgave 1 beder jer om at implementere
Læs mereHent filoplysninger fra billeder og filer
Hent filoplysninger fra billeder og filer I denne vejledning bliver det gennemgået, hvordan man via Power Forespørgsel kan hente filoplysninger fra en mappe ind i Excel. Der skal opbygges følgende elementer:
Læs mereProgrammering. 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 mereForén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.
Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening
Læs mereProgrammering i C Videre med C (2 af 4) 19. marts 2007
Programmering i C Videre med C (2 af 4) 19. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan i dag Brush-up fra sidst Videre med C Kontrolløkker (while, for, ) Conditional Execution (if, if/else) Funktioner
Læs mereBits DM534. Rolf Fagerberg, 2012
Bits DM534 Rolf Fagerberg, 2012 Resume af sidst Overblik over kursus Introduktion. Tre pointer: Datalogi er menneskeskabt og dynamisk. Tidslinie over fremskridt mht. ideer og hardware. Algoritme er et
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 mere2) Det er let at være produktiv med Python, da Python som regel kun har mellem 67 og 80% færre linier end tilsvarende C eller Java kode.
Denne guide er oprindeligt udgivet på Eksperten.dk I gang med Python I denne artikel vil jeg forsøge at give et kort og hurtigt indblik i programmeringssproget Python, der desværre er alt for overset.
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 mere16 Træer. Noter. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype.
16 Træer. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype. Gennemløb af binære træer. Træer i Eiffel. 229 Definition af et træ.
Læs mereForén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.
Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening
Læs mereDanmarks 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 mereHTML, PHP, SQL, webserver, hvad er hvad??
Dagens menu HTML og PHP: Baglæs fra output til input PHP: Variable, strenge og arrays Funktioner, oprettelse og kald (og variable på tværs af funktioner) echo vs return? if-else konstruktioner MySQL: Hvad
Læs mereIntroduktion til datastrukturer. Philip Bille
Introduktion til datastrukturer Philip Bille Plan Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Datastrukturer Datastrukturer Datastruktur: Metode til at organise data så det kan søges
Læs mereFagets IT Introduktion til MATLAB
Fagets IT Introduktion til MATLAB Mads G. Christensen mgc@kom.auc.dk Afdeling for Kommunikationsteknologi, Aalborg Universitet. MATLAB 2002 p.1/28 Kursusoversigt 1. Introduktion, matrix-indeksering, -operationer
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 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 mereKorteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.
Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste
Læs mereSystemkald DM14. 1. Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111
DM14 1. Obligatoriske opgave Systemkald Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111 Side 1 af 5 Intro: Formålet med opgaven at et lave en system kald
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 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 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 mereKorteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.
Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste
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 mereLær Python - Dag 4, modul 1 Objektorienteret programmering
Lær Python - Dag 4, modul 1 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Objektorienteret programmering Hvad er objektorienteret programmering? Vi
Læs mereIntroduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer
Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt
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 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 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 mereIntroduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer
Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt
Læs mereSpil 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 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 mereKursusarbejde 1 Grundlæggende Programmering. Arne Jørgensen, 300473-2919 klasse dm032-1a
Kursusarbejde 1 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 3. oktober 2003 Kode //File Name: kaalhovede.cc //Author: Arne Jørgensen //Email Address: arne@arnested.dk, arnjor@niels.brock.dk
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Opfølgning på Skildpadde
Læs mere$ %' ) * %' +,! - Myarray %' /0 /0 122 +3 /0 /0
!"#!"# "# %&') * #" % && %' Dim MyArray2) As Integer ) * %' +,! - Myarray MyArray0). %' /0 /0 122 + /0 /0 +4 / 0) Dim MyArray1 to 2) As Integer 5MyarrayMyArray1)" +6 Option Base 1 Option Explicit %' 76
Læs merePUT og INPUT funktionerne
PUT og INPUT funktionerne Af: Peter Kellberg Danmarks Statistik Sejrøgade 11 DK-2100 København Ø pke@dst.dk PUT og INPUT-funktionerne Denne artikel er foranlediget af en henvendelse til vores interne SAS
Læs mereIntroduktion til datastrukturer
Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Philip Bille Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller
Læs mereBoost Concept Check Library
Boost Concept Check Library Kasper Egdø and Konstantin Barkaia Department of Computer Science University of Copenhagen Boost Concept Check Library p.1/19 Eksempel #include #include int
Læs mere15 Arrays og Lister samt Stakke og Køer.
15 Arrays og Lister samt Stakke og Køer. Introduktion til arrays. Algebraisk specifikation af arrays. Arrays i Eiffel. Introduktion til lister og kædede lister. Fælles egenskaber ved stakke og køer. Algebraisk
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning
Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:
Læs mereModern Concurrency Abstractions for C#
Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation
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 mereBinære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo
Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af
Læs merePHP Snippets. De små korte. Skrevet af Daniel Pedersen
PHP Snippets De små korte Skrevet af Daniel Pedersen Indhold PHP Snippets De små korte er en samling af små og praktiske kode eksempler med kort forklaring, som med formål at kunne benyttes til opsalgsværk
Læs mereIntroduktion til programmering. Uge 38.1 Python 2 Learning Python, kap 8-12.
Introduktion til programmering Uge 38.1 Python 2 Learning Python, kap 8-12. Opsummering Store dele af Python kan forstås gennem følgende simple model: En repræsentation/udtryk står for et objekt/en værdi
Læs mereNoter til C# Programmering Iteration
Noter til C# Programmering Iteration Programflow Programmer udfører det meste af deres arbejde vha. forgrening og løkker. Løkker Mange programmeringsproblemer kan løses ved at gentage en handling på de
Læs mereBemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.
Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i
Læs mereDanmarks 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 meredintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4
dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser
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 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 mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:
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 mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder
Læs mereForelæsning Uge 3 Torsdag
Forelæsning Uge 3 Torsdag Billedredigering Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt) antal elementer Afleveringsopgave:
Læs mereDanmarks Tekniske Universitet
side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.
Læs mereDesign by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design
Læs mereOpskriv 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 mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Onsdag den. august 200, kl. 9.00.00 Opgave (25%) Lad A = A[] A[n] være et array af heltal. Længden af det længste
Læs mereDDD Runde 2, 2015 Facitliste
DDD Runde 2, 2015 Facitliste Søren Dahlgaard og Mathias Bæk Tejs Knudsen Opgaver og løsninger til 2. runde af DDD 2015. 1 4. 19. februar, 2015 linetest DK v1.0 Line Test Sigurd er begyndt i gymnasiet og
Læs mereIntroduktion 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 mereRekursion C#-version
Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet
Læs mereLø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 mereLær Python - Dag 4, modul 2 Objektorienteret programmering
Lær Python - Dag 4, modul 2 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Metoder Metoder Indtil videre har vi kun brugt objekter til at gemme værdier.
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Varighed: timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.
Læs mereUdvikling af DOTNET applikationer til MicroStation i C#
Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mere