Programmering og Problemløsning, 2017
|
|
- Johanne Eskildsen
- 6 år siden
- Visninger:
Transkript
1 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 Problemløsning, 2017 October 3, / 16
2 Outline 1 Programmering med Lister (continued) Definition af Lister List modulet Beregninger på lister 2 Programmering med Arrays 1D Arrays 2D Arrays Martin Elsman (DIKU) Programmering og Problemløsning, 2017 October 3, / 16
3 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 October 3, / 16
4 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 October 3, / 16
5 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 October 3, / 16
6 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 maxint = System.Int32.MaxValue // = let min_elem = List.fold min maxint [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 October 3, / 16
7 Beregninger på lister Eksempel: Det mindste element i en liste med List.foldBack let min x y = if x < y then x else y let maxint = System.Int32.MaxValue // = let min_elem = List.foldBack min maxint [3;6;2;5] // = min 3 (min 6 (min 2 (min ))) // min 3 (min 6 (min 2 5)) // min 3 (min 6 2) // min 3 2 // 2 Funktionen min er associativ og maxint er det neutrale element: 1 For alle x, y, z: min x (min y z) = min (min x y) z 2 For alle x: min x = min x = x Martin Elsman (DIKU) Programmering og Problemløsning, 2017 October 3, / 16
8 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 October 3, / 16
9 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 October 3, / 16
10 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 October 3, / 16
11 Beregninger på lister For-in løkker et alternativ til List.fold Et alternativ til List.fold er at benytte den specielle for-in-do syntax til liste-gennemløb: let lst = List.init (fun x -> x) let mutable sum = 0 for x in lst do sum <- sum + x do printf "%d\n" sum Fordele: 1 Ingen overhead ved liste-indicering eller kald til lst.length. 2 Simplere form for imperativ programmering; dog er sum stadig mutable... Martin Elsman (DIKU) Programmering og Problemløsning, 2017 October 3, / 16
12 Programmering med Arrays 1D Arrays 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. Typen for integer arrays: int[] Typen for arrays indeholdende int-float par: (int*float)[] Martin Elsman (DIKU) Programmering og Problemløsning, 2017 October 3, / 16
13 Programmering med Arrays 1D Arrays Gennemløb af arrays Arrays kan gennemløbes tilsvarende som lister: let arr = Array.init (fun x -> x) let mutable sum = 0 for x in arr do sum <- sum + x do printf "%d\n" sum Arrays kan muteres: let arr = [ 1;2;3;4 ] for i in [0..arr.Length-1] do arr.[i] <- arr.[i]*arr.[i] do printf "%A\n" arr Kørsel: bash-3.2$ fsharpc --nologo arr_square.fs && mono arr_square.exe [ 1; 4; 9; 16 ] Martin Elsman (DIKU) Programmering og Problemløsning, 2017 October 3, / 16
14 Programmering med Arrays 1D Arrays Array aliasing To forskellige variabler kan referere til det samme array: let arr = [ 1;2;3;4 ] let b = arr do b[1] <- 100 do printf "%A\n" arr Lagerrepræsentation: Bemærk: 1 Aliasing kan observeres fordi arrays er mutable! 2 Aliasing (og deling) kan ikke observeres (på samme måde) med lister, da disse er immutable. Martin Elsman (DIKU) Programmering og Problemløsning, 2017 October 3, / 16
15 Programmering med Arrays 1D Arrays Modulet Array // array creation val init : int -> (int -> a) -> a [] val length : a [] -> int // length a = a.length val tolist : a [] -> a list val oflist : a list -> a [] // array transformers val map : ( a -> b) -> a [] -> b [] val map2 : ( a-> b-> c) -> a [] -> b [] -> c [] val filter : ( a -> bool) -> a [] -> a [] // array traversing val fold : ( s -> a -> s) -> s -> a [] -> s val foldback : ( a -> s -> s) -> a [] -> s -> s val find : ( a -> bool) -> a [] -> a option... Martin Elsman (DIKU) Programmering og Problemløsning, 2017 October 3, / 16
16 Programmering med Arrays 2D Arrays To-dimensionelle arrays To-dimensionelle regulære arrays, dvs. 2d-arrays hvor alle rækker indeholder det samme antal elementer, kan udtrykkes ved brug af modulet Array2D. Modulet Array2D kan benyttes til f.eks. at konstruere en multiplikationstabel: let a = Array2D.init 5 5 (fun r c -> (r+1) * (c+1)) let pra (a : int[,]) = for r in [0..Array2D.length1 a - 1] do // for c in [0..Array2D.length2 a - 1] do // printf "%2d " (a.[r,c]) // printf "\n" // do pra a // Bemærk: 1 Typen på et to-dimensionelt int-array skrives: int[,]. 2 Vidden på de udskrevne heltal kontrolleres med format-specifieren "%2d ". Martin Elsman (DIKU) Programmering og Problemløsning, 2017 October 3, / 16
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 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 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 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 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 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 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 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 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 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 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 mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave
Læs 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 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 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 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 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 mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:
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 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 mereP (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.
P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. Bevis ved stærk induktion. Basisskridt: P (2) er sand og P (3) er sand. Induktionsskridt: Lad k 2 og antag P
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 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 mereJeg 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 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 meredcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)
dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal
Læs mere22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.
22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327
Læs 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 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 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 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 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 mereMålet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål
Læs mereBRP Sortering og søgning. Hægtede lister
BRP 18.10.2006 Sortering og søgning. Hægtede lister 1. Opgaver 2. Selection sort (udvælgelsessortering) 3. Kompleksitetsanalyse 4. Merge sort (flettesortering) 5. Binær søgning 6. Hægtede lister 7. Øvelser:
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 mereProgrammering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale
Programmering i C Lektion 1 16. september 2008 Målgruppe Indhold Form Materiale Kursusintroduktion 1 Målgruppe 2 Indhold 3 Form 4 Materiale 2 / 21 Målgruppe Indhold Form Materiale Folk der har styr på
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 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 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 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 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 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 mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 0205. Varighed: 4 timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.
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 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 mereDefinition (Pseudo-graf): En pseudo-graf G = (V, E) består af V, en ikke-tom mængde hvis elementer kaldes punkter, en mængde E samt en funktion f : E
Grafteori Definition (Simpel graf): En simpel graf G = (V, E) består af V, en mængde hvis elementer kaldes punkter, og E, en mængde af uordnede par af forskellige elementer fra V. Et element fra E kaldes
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 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 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 mereSelvstudium 1, Diskret matematik
Selvstudium 1, Diskret matematik Matematik på første studieår for de tekniske og naturvidenskabelige uddannelser Aalborg Universitet I dette selfstudium interesserer vi os alene for tidskompleksitet. Kompleksitet
Læs mereLRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
Læs 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 mereOpskriv 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 mere4 Basal Objekt-orienteret Programmering I.
4 Basal Objekt-orienteret Programmering I. Klasser i forhold til abstrakte datatyper og record-typer. Variable og operationer. Klasse-interfaces. Klasser og typer. Klasse-instantiering og initialisering.
Læs 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 mereDanmarks Tekniske Universitet
ksamen 036, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 036. Varighed: timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.
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 mereI denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.
Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien
Læs mereIntroduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Læs mereAlgoritmer og invarianter
Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.
Læs mere.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}
Procedure Dijkstra(G = (V, E): vægtet sh. graf,. a, z: punkter) { Det antages at w(e) > 0 for alle e E} For alle v V : L(v) := L(a) := 0, S := while z / S begin. u := punkt ikke i S, så L(u) er mindst
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 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 mereAutomatisering 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 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 mereÅ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 mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
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 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 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 til C programmering
Introduktion til C programmering Rasmus Erik Voel Jensen Uge 17 voel@math.ku.dk Dagens forelæsning Formalia Indledende programmering, main, include, printf, variable, scanf, if-else, statements, eksempler
Læs mereMartin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox
Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
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 mereGrådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for
Læs mereDATALOGI 0 GA. Skriftlig eksamen tirsdag den 18. januar 2005 af to timers varighed. Opgavesæt med vejledende løsninger
Københavns Universitet bacheloruddannelsen i datalogi side 1 af 6 DATALOGI 0 GA Skriftlig eksamen tirsdag den 18. januar 2005 af to timers varighed Opgavesæt med vejledende løsninger Dette opgavesæt består
Læs mereMålet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer
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 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 mereSkriftlig 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 mereKlasser og nedarvning
Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere
Læs mereDatastrukturer. Datastruktur = data + operationer herpå
Prioritetskøer Prioritetskøer? Datastrukturer Datastruktur = data + operationer herpå Datastrukturer Data: Datastruktur = data + operationer herpå Ofte en ID + associeret data. ID kaldes også en nøgle
Læs mereDanmarks Tekniske Universitet
ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer
Læs 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 mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n
Eksamen. kvarter 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Ja Nej n er O(n )? n er O(n )? n er O(n + 0 n)? n + n er O(n )? n log n er Ω(n )? Opgave (%) Opskriv følgende funktioner
Læs mereProgrammering 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 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 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 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 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 mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n
Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n er O(n 7 )? (logn) er O( n)? n(logn) er O(n)? n er O( n )? n er Ω(n )? Opgave (%) Opskriv følgende funktioner efter stigende orden med
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 mere! #!! $ % $! & " &'"! & *+ "! " $ $ ""!,-! $!.! $! " # 1!! &' "
""# "" # $ % $ & " &'" & " "()" *+ " " $ $ *+" $ %"&'" "( "",- $. + /"&'"-0 $ " # 1 &' " +"% $ %'('" 2 ' ) )030 )030) * )033 " )033 // " " 1 1 41 ")035)036 5- " " " *+773,8 *+ % " " )035& " )036& " 1 %"
Læs mereForelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999
sammenligninger, hvor Programmering 1999 Forelæsning 17, tirsdag 2 november 1999 Søgning efter en given værdi i en tabel Lineær søgning og binær søgning Effektivitet: maskinuafhængig vurdering af køretid
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 mereGrundlæggende køretidsanalyse af algoritmer
Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers
Læs 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 mereDatalogi 1F rapportopgave K2 Anonym datakommunikation
Datalogi 1F rapportopgave K2 Anonym datakommunikation 23. april 2004 1 Administrativ information Rapportopgave K2 stilles fredag den 23. april 2004 og skal afleveres senest fredag den 14. maj kl. 11:00
Læs mere