Bouwstenen voor PSE. Datatypes en Datastructuren

Vergelijkbare documenten
1 Rekenen in eindige precisie

1 Datatypes en Datastructuren. 1.1 Inleiding

slides12.pdf December 14,

Opdrachten numerieke methoden, week 1

DEC SDR DSP project 2017 (2)

Tentamen Computersystemen

COMMUNICATIE- EN COMPUTERVAARDIGHEDEN IN DE CHEMIE

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief

Talstelsels, getalnotaties en Ascii code

Talstelsels en getalnotaties (oplmodel)

Wetenschappelijk Rekenen

Blog-Het gebruik van variabelen in Excel VBA

Interne voorstelling. types en conversies. Binaire en andere talstelsels. Voorstelling van gegevens: bits en bytes

Stacks and queues. Hoofdstuk 6

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

SQL datadefinitietaal

Datastructuren: stapels, rijen en binaire bomen

Datastructuren en algoritmen voor CKI

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Programmeermethoden NA. Week 6: Lijsten

COMPUTERVAARDIGHEDEN EN PROGRAMMEREN

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Datastructuren Uitwerking jan

Een gelinkte lijst in C#

Programmeermethoden NA

Hoofdstuk 9. Hashing

Datastructuren en algoritmen voor CKI

Vector-en matrixvergelijkingen. Figuur: Vectoren, optellen

Hoofdstuk 1. Illustratie 2

Datastructuren Werkcollege Intro

Hoofdstuk 8: Algoritmen en Complexiteit

Vakgroep CW KAHO Sint-Lieven

QR-code op aanvoerbrief 2.xx.0: Specificaties

Matrixoperaties. Definitie. Voorbeelden. Een matrix is een rechthoekig array van getallen, die kentallen of elementen heten.

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

Numerieke Methoden voor Differentiaalvergelijkingen

Datastructuren en algoritmen voor CKI

WI1808TH1/CiTG - Lineaire algebra deel 1

Lineaire data structuren. Doorlopen van een lijst

Inhoud college 5 Basiswiskunde Taylorpolynomen

Normering en schaallengte

Algoritmiek. 8 uur college, zelfwerkzaamheid. Doel. Hoe te realiseren

Les A-03 Binaire en hexadecimale getallen

Deeltoets Digitale technieken

Examen Datastructuren en Algoritmen II

Utrecht, 25 november Numerieke Wiskunde. Gerard Sleijpen Department of Mathematics.

Wetenschappelijk Rekenen

IN1805 I Operating System Concepten

Modelleren en Programmeren

Examen Datastructuren en Algoritmen II

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

Rekenen met computergetallen

Datastructuren: stapels, rijen en binaire bomen

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

scc = b) CD AB

5,7. Samenvatting door een scholier 903 woorden 28 september keer beoordeeld. Informatica. Samenvatting Informatica Hoofdstuk 2

Programmeren met Arduino-software

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46

Wouter Geraedts Processen & Processoren

[8] De ene 1 is de andere niet

Modelleren en Programmeren

Zelftest Inleiding Programmeren

DATASTRUCTUREN LIJSTEN. Dr. D.P. Huijsmans 2e college Leiden 11 sept 2013 Universiteit Leiden, LIACS

Computerarchitectuur en netwerken. Memory management Assembler programmering

Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep.

Grenzen aan je voorkennis Op zoek naar obstakels in het leren van rationale getallen

Bijzondere getallen. Oneindig (als getal) TomVerhoeff. Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica

Amorized Analysis en Union-Find Algoritmiek

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014

V.2 Limieten van functies

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Antwoorden zijn afgedrukt!!!!!!!

Inleiding Digitale Techniek

Lessen Java: Reeks pag. 1

Niet-numerieke data-types

Inleiding Programmeren 2

Tweede Toets Datastructuren 29 juni 2016, , Educ-Γ.

Studentnummer:... Opleiding:...

4EE11 Project Programmeren voor W. College 3, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

N3 LINEAIRE INTERPOLATIE

Binair Binair = tweewaardig Beperkt aantal mogelijke waarden (discreet aantal in amplitude) Wij zijn gewoon aan decimaal (tiendelig)

Opgaven Analyse van Algoritmen 10 mei 2019, Datastructuren, Werkgroep.

1.1 Rekenen met letters [1]

DATASTRUCTUREN LIJSTEN. Dr. D.P. Huijsmans 12 sept 2012 Universiteit Leiden, LIACS

4,7. Praktische-opdracht door een scholier 1959 woorden 1 juni keer beoordeeld

Inhoud college 4 Basiswiskunde. 2.6 Hogere afgeleiden 2.8 Middelwaardestelling 2.9 Impliciet differentiëren 4.9 Linearisatie

PYTHON REEKS 1: BASICS. Mathias Polfliet

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

Oefeningen Interpretatie I Reeks 6 : Registermachines

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Demo document template available on the Rapptorlab website

Numerieke Analyse. Prof. Dr. Guido Vanden Berghe

Getalformaten, timers en tellers

Wiskunde Module! Basisprogramma Psychologische Methodenleer! Alexander Ly (en Raoul Grasman)!

2. WEERGAVE VAN GEGEVENS

scc =!F3.!F2 b) CD AB

Transcriptie:

Bouwstenen voor PSE Datatypes en Datastructuren

Definitie Datatype Klasse van dataobjecten tesamen met operaties om ze te construeren, te manipuleren en te verwijderen. Een datatype omvat een specificatie en een implementatie. Specificatie attributen, waarden range, operaties. Implementatie representatie en operatie.

Datatypes Datatype Enumeratie Benadering Integers Characters Lijsten RR Enige voorbeelden

Datatypes Getallen stelsels binair, octaal, headecimaal,.. (Mathematica: BaseForm) Characters/Lijsten ASCII, EBCDIC, willekeurige samenhangende types R Intrinsiek niet representeerbare grootheid. HTML Tekst, images, geluid, video,.

Integers Gehele getallen: N bits [- N-, N- -] Let op het interval is niet symmetrisch Associatieve en distributieve relaties hoeven niet te gelden: (grootste_positieve_getal + ) = ongedefinieerd (grootste_positieve_getal - ) + = gedefinieerd Attributen: +, -, *, /,

Integers (cont) C short, int, long Ecel convert on display Mathematica one type fits all C Geen fout, maar wel een grens aan het grootste getal, daarboven vreemde effecten (bv: 3 bits ^3 mogelijkheden) Mathematica schijnbaar niet beperkt in grootte representatie. Ecel Convert voor display naar type

Characters/Strings ASCII character set (7 of 8 bits code, maakt verschil) C weinig support behalve macro s vage notie van characters (<ctype.h> ToLower, IsAscii, ) Ecel Enige support voor strings Mathematica ToCharacterCode[ ] StringLength, String.

Rationele Getallen (scaled integers/fied point) C Geen support Mathematica Intrinsiek Voordeel Geen afrondingsfouten Nadeel Schaling is probleem van gebruiker.

Floating Point Getallen Floating point getallen Altijd een benadering van de echte waarde! Notatie = m r e Er is een maimale nauwkeurigheid (machine nauwkeurigheid, hardware) m = mantisse, r = radi, e = eponent Normalisatie: /r <= m < Er is een grootste getal en een kleinste getal.

FP formaten (hardware) S Ep Mantisse 8 3 S Ep Mantisse Mantisse 0 3 Nauwkeurigheid: op ^-3 resp op ^-5.90989550785`*^-7.0446049503308`*^-6

Standaardisatie Floating Point IEEE 754 Standaard Formaat Data Lengte Implementatie Single precision 3-bits Verplicht Single etended > 4 bits Aanbevolen Double precisie 64 bits Aanbevolen Double etended > 78 bits Aanbevolen

FP karakteristieken Floating Point Values Single Double E ma +7 +03 E min -6-0 Eponent bias Eponent size Size (bits) Ma pos. value Min pos. value +7 8 3 3.4 0 38.4 0-45 +03 64.8 0 308 4.9 0-34

Afrondingsfout Begrensd in gevallen van: optellen (behalve bij getallen met tegengesteld teken), vermenigvuldigen, delen,. Onbegrensd in geval van: aftrekken! (cancellation error) N r m m m = + = Error m ε

Afleiding ) ( ˆ ε + = ) ( ˆ ε + = ) ( ) ( ˆ ˆ ˆ ε ε + + = = Δ ) ( )( η + = = ε ε η ) ( ) ( + = ε ε ε η + ε

Dus: Afronding er bestaat een b zodanig dat geldt: a + b = a maar: dit is een procentuele fout! Cancellation altijd als je het niet kunt gebruiken!

Voorbeeld: afgeleide Uitgangspunt: Mathematische fout (Taylor reeks) e t = hf' '( ) f '( ) f ( + h) lim h = h 0 ( e + e ) = 0 t r h Totale fout f ( ) e r = h e f ef Afrondings fout (numeriek) f ( ) h Minimum ( f / f '')

Voorbeeld: afgeleide (cont) e totaal / f ' e (( ff '')/ f ' ) f e f Er bestaat een optimale waarde voor h Voor single precision maar 3 (!) decimalen nauwkeurig. Hogere nauwkeurigheid: betere benadering en/of meer significante digits.

Voorbeeld: afgeleide (3) f f 3 h ( + h) = f ( ) + hf'( ) + h f ''( ) + 6 f '''( ) + ho.. 3 h ( h) = f ( ) hf'( ) + h f ''( ) 6 f '''( ) + ho.. 3 h f + h) f ( h) = hf'( ) + f '''( ) + ho.. ( 3 Conclusie: je wint in mathematische nauwkeurigheid als je meer functiewaarden meeneemt (maar je moet ook meer rekenen)

Voorbeeld: afgeleide (4) 0-0 -4 Total error (relative) 0-6 0-8 0-0 0-0 -0 0-8 0-6 0-4 0 - h (relative) Appro. O(h ) O(h) Grafische representatie van nauwkeurigheid

Structuren

Data Structuren Moeten vertaling van probleem naar algoritme mogelijk maken. Kunnen voorkennis van een specifiek probleem veld gebruiken Er zijn een aantal universele structuren in PSE s.

Vector/Array (Gelinkte lijst) Lijst Stack Boom

Vector/Array Vertaling van mathematische begrip, Samenhangend gebied met uniforme -elementen, Basis bouwsteen voor lineaire algebra (routines), Speciale klasse voor Arrays met veel nul-elementen (sparse).

Enige implementaties C/Fortran Alleen numeriek met linearisatie van elementen. Probleem is scheiding van data en specificatie. Mathematica Zowel numerieke als symbolische representaties. Ook operaties zijn eveneens numeriek als symbolisch. Ecel Zeer beperkte implementatie van het begrip matri als rechthoek van cellen. Alleen numerieke operaties en de grootte moet van te voren bekend zijn.

Lijst inhoud cell Inhoud cell inhoud cell start Grafische voorbeeld van een enkelvoudig gelinkte lijst. einde Cellen hoeven niet homogeen te zijn, Geheugen allocatie hoeft niet homogeen te zijn, Aantal operaties op lijsten zijn heel efficiënt, Lijsten zijn een niet-statische structuur,

Mathematica (intern) en lijsten Alles is een lijst, bv. Head[] = Integer Head[{,, 4}] = List Head[++a] = Plus[3,a] FullForm[Epressie] Operatie[elt, elt,., elt n ] = elt operatie elt operatie FullForm[+p(q+r)] Complee epressies geven geneste lijsten Plus[Times[p,Plus[q,r]],]

Stack push pop LIFO: Last In First Out Omkering van de volgorde

Stack Gebruik Opslaan van tussentijdse resultaten

Queue push pop FIFO: First In First Out Behoud van de volgorde

Boom (binair) 4 6 3 5 7