Einführung in die Informationsverarbeitung Teil Thaller Stunde II: Datenstrukturen Köln 13. November 2008.

Slides:



Advertisements
Ähnliche Präsentationen
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Advertisements

Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Sortieren I - Bubblesort -

LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Kapitel 5. Stacks und Queues
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Übung 6.6Schranken 1.Angenommen, Ihr Algorithmus habe einen Aufwand von g(n) = 5n 3 + n für alle n a)Geben sie eine obere Schranke O(g(n)) an. b)Beweisen.
der Universität Oldenburg
Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde I: Bildverarbeitung I Köln 19. November 2009.
Manfred Thaller, Universität zu Köln Köln 22. Januar 2009
Einführung in die Informationsverarbeitung Teil Thaller Stunde VI: Wege und warum man sie geht Graphen. Manfred Thaller, Universität zu Köln Köln.
Einführung in die Informationsverarbeitung Stunde II: Datenstrukturen Manfred Thaller, Universität Köln Köln 22. Oktober 2007.
Was ist und zu welchem Ende treiben wir Historische Fachinformatik?
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
= = = = 47 = 47 = 48 = =
Gliederung Motivation / Grundlagen Sortierverfahren
Java: Dynamische Datentypen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Basisinformationstechnologie WS 2003/04 T.Schaßan
Robotik mit LEGO Mindstorms
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Christian Schindelhauer
Prof. Dr. Bernhard Wasmayr
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
Kapitel 2: Datenstrukturen
boolean Datentyp und Operator
Stacks Referat im Fach Basisinformationstechnologien von Venelina Koleva.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
20:00.
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
für Weihnachten oder als Tischdekoration für das ganze Jahr
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
Wir üben die Malsätzchen
Polynome und schnelle Fourier-Transformation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
1.6 Die Datenstruktur Stapel Ein Stapel (Stack) ist ein Sonderfall einer Liste. Die Elemente werden nach dem Prinzip LIFO (Last In First Out) angefügt.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Symmetrische Blockchiffren DES – der Data Encryption Standard
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Datentypen: integer, char, string, boolean
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Programmieren in C Grundlagen C 2
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Programmiervorkurs WS 2014 Referenzdatentypen
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Monatsbericht Ausgleichsenergiemarkt Gas – November
(Syntax, Strings/Zahlen, Variablen, Arrays)
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Einführung in die Informationsverarbeitung Teil Thaller Stunde II: Datenstrukturen Köln 25. Oktober 2012.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Einführung in die Informationsverarbeitung Teil Thaller Stunde II: Datenstrukturen Köln 27. Oktober 2011.
Schlange und Stapel.
Datentypen: integer, char, string, boolean
Datentypen: integer, char, string, boolean
 Präsentation transkript:

Einführung in die Informationsverarbeitung Teil Thaller Stunde II: Datenstrukturen Köln 13. November 2008

I. Grundbegriffe

dada ist in zürich geboren. zieht man straßburg von zürich ab so bleibt Hans Arp, Strassburgkonfiguration, in: ich bin in der Natur geboren. Ausgewählte Gedichte. Hrsg. V. H. Bolliger et al., Zürich-Hamburg, 2002

Zahlen Bilder Zeichenketten Geburtstage Briefe Datentyp

Addieren Komprimieren Vergleichen Abstand berechnen Beziehen Operationen

Zahl {Darstellung, Addieren, …} Bild {Darstellung, Komprimieren, …} Text {Darstellung, Vergleichen, … } Zeit {Darstellung, Abstand berechnen, … } Brief {Darstellung,Beziehen, …} Datenstrukturen

Datenstruktur = {Datentyp, Legale Operationen } Datentyp und Datenstruktur oft aber auch synonym!

Boolean / Logischer Wert Integer [ Rationale Zahlen ] Realzahlen Zeichen Zeichenketten Basisdatenstrukturen

Datenstrukturen geben Regeln wieder, wie ein bestimmter Speicherbereich interpretiert wird. ASCII Zeichen 'a' = 97; 'A' = 65. oder 'Pixel' 97 ist eineinhalb mal heller als 'Pixel' 65. Datenstrukturen und Hardware

Festlegungen sind willkürlich. Groß- / Klein v. Umlaute Datenstrukturen und Hardware

Zeichen a097A65 b098B66 c099C67 d100D68 e101E69 f102F70 g103G71 h104H72 i105I73 j106J74 k107K75 …………

Zeichen a A b B c C d D e E f F g G h H i I j J k K …………

Zeichen a A b B c C d D e E f F g G h H i I j J k K …………

Festlegungen sind willkürlich. lower(x) = upper(x) | ' = schnellste verfügbare Operation des Rechners! Zeichen

Darstellung von Datenstrukturen sind willkürlich. … können den Aufwand für eine Anwendung aber entscheidend beeinflussen! * Merke:

Diagrammatische Darstellung: A zeigt auf B Datenstruktur Zeiger AB

Diagrammatische Darstellung: Zeiger: Ein Speicherinhalt eines Rechners verweist auf einen anderen. Datenstruktur Zeiger AB

Speicher als karierte Zeile Datenstruktur im Speicher

Zahl in Bytes 0 bis 1 Zahl in Bytes 10 bis Datenstruktur im Speicher

Zeichen a in Byte 0 Zeichen q in Byte 11 a q Datenstruktur im Speicher

Zeiger in Bytes 0 bis 1 verweist auf Speicherblock, enthaltend xy, beginnend in Byte x y Datenstruktur im Speicher

Zeiger in Bytes 0 bis 1 verweist auf Speicherblock, enthaltend xy, beginnend in Byte 10. Zeiger graphisch x y

Zeiger verweist von einem Datenblock auf einen anderen. * Zeiger graphisch

II. Technische Datenstrukturen

Stacks Auch bekannt als: LIFO – Last In, First Out

Lies: Verarbeite: Start Atom 1

Lies: Verarbeite: Push to stack Atom 1

Lies: Verarbeite: Lies weiter Atom 2 Atom 1

Lies: Verarbeite: Push to stack Atom 2 Atom 1

Lies: Verarbeite: Lies weiter Atom 3 Atom 2 Atom 1

Lies: Verarbeite: Schließlich Atom 5 Atom 4 Atom 3 Atom 2 Atom 1

Lies: Verarbeite: Pop from stack Atom 5 Atom 4 Atom 3 Atom 2 Atom 1

Lies: Verarbeite: Pop from stack Atom 4 Atom 3 Atom 2 Atom 1

Lies: Verarbeite: Pop from stack Atom 3 Atom 2 Atom 1

Lies: Verarbeite: Pop from stack Atom 2 Atom 1

Lies: Verarbeite: * Pop from stack Atom 1

Queues Auch bekannt als: FIFO – First In, First Out

Lies: Verarbeite: Start Atom 1

Lies: Verarbeite: Push to queue Atom 1

Lies: Verarbeite: Lies weiter Atom 2 Atom 1

Lies: Verarbeite: Push to queue Atom 2 Atom 1

Lies: Verarbeite: Lies weiter Atom 3 Atom 2 Atom 1

Lies: Verarbeite: Schließlich Atom 5 Atom 4 Atom 3 Atom 2 Atom 1

Lies: Verarbeite: Pop from queue Atom 5 Atom 4 Atom 3 Atom 2 Atom 1

Lies: Verarbeite: Pop from queue Atom 5 Atom 4 Atom 3 Atom 2

Lies: Verarbeite: Pop from queue Atom 5 Atom 4 Atom 3

Lies: Verarbeite: Pop from queue Atom 5 Atom 4

Lies: Verarbeite: * Pop from queue Atom 5

Einfach Verknüpfte Listen

Erzeuge Atom 1 Atom 1

Kopf: Mache Atom 1 zum Listenkopf Atom 1

Kopf: Erzeuge Atom 2 Atom 1 Atom 2

Kopf: Verbinde Atom 2 mit Liste Atom 1 Atom 2

Kopf: Erzeuge Atom 3 Atom 1 Atom 2 Atom 3

Kopf: Verbinde Atom 3 mit Liste Atom 1 Atom 2 Atom 3

Kopf: Lösche Atom 2 Atom 1 Atom 2 Atom 3

Kopf: * Füge Atom 4 ein Atom 1 Atom 3 Atom 4

Doppelt Verknüpfte Listen

Kopf: Schwanz: Doppelt verknüpfte Liste Atom 1 Atom 2 Atom 3

Kopf: Schwanz: Löschen von Atom 2 Atom 1 Atom 2 Atom 3

Kopf: Schwanz: * Einfügen von Atom 4 Atom 1 Atom 4 Atom 3

III. Inhaltliche Datenstrukturen

::= ein 3-Tupel (oder Tripel) { E, I, O } wobei E ::= Externe Darstellung I ::= Interne Darstellung O ::= Menge auf I definierter Operationen (Notation: " ::= " = "definiert als ") Datentypen allgemein:

E Regel für " " I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. O t-less(i,j) ===> Boolean t-less( , ) ===> True t-subtract(i,j) ===> Ganze Zahl t-subtract( , ) ===> 1 Datentyp Zeit allgemein:

E Regel für "pri non jun 2007" I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. O t-less(i,j) ===> Boolean t-less(pri non jun 2007,non jun 2007) ===> True t-subtract(i,j) ===> Ganze Zahl t-subtract(non jun 2007,pri non jun 2007) ===> 1 Datentyp Historische Zeit I

I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. 0 i t Datentyp Historische Zeit I

E Regel für "6 Tammuz 5763" I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. O t-less(i,j) ===> Boolean t-less(6 Tammuz 5763,7 Tammuz 5763) ===> True t-subtract(i,j) ===> Ganze Zahl t-subtract(7 Tammuz 5763,6 Tammuz 5763) ===> 1 Datentyp Historische Zeit II

I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. 0 i t Datentyp Historische Zeit II

E Regel für "Freitag nach Fronleichnam 2007" I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. O t-less(i,j) ===> Boolean t-less(Freitag nach Fronleichnam 2007,Samstag nach Fronleichnam 2007) ===> True t-subtract(i,j) ===> Ganze Zahl t-subtract(Samstag nach Fronleichnam 2007,Freitag nach Fronleichnam 2007) ===> 1 Datentyp Historische Zeit III

I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. 0 i t * Datentyp Historische Zeit III

E Regel für " " I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Vektor von Offsets t vom Ursprung definiert ist. O t-less(i,j) ===> mehrwertiger Wahrheitswert { True, Undecidable, False } t-less( , ) ===> Undecidable t-subtract(i,j) ===> "Historische Zahl" t-subtract( , ) ===> { 1, 366 } Datentyp Historische Zeit IV

I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Vektor von Offsets t vom Ursprung definiert ist. 0 i i t Datentyp Historische Zeit IV

E Regel für " " I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Vektor von Offsetpaaren t vom Ursprung definiert ist. O t-less(i,j) ===> kontinuierlicher Wahrheitswert (Z.B. Grad der Überlappung von n Intervallen.) t-less( , ) ===> 99 % t-subtract(i,j) ===> "Historische Zahl" t-subtract( , ) ===> { 0, 200 } Datentyp Historische Zeit V

I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Vektor von Offsetpaaren t vom Ursprung definiert ist. 0 i i t * Datentyp Historische Zeit IV

Philosophie ist die systematische Verwirrung einer eigens zu diesem Zweck geschaffenen Terminologie. Volksmund, ca

Ein Bild

6 Zeilen 5 Spalten Ein Bild

5 Zeilen 6 Spalten Ein Bild

== oker 0 == rot Ein Bild

== blau 0 == gelb Ein Bild

Speicherung: 1,1,1,1,1,1,0,0, 0,1,1,1,0,1,1,1, 1,0,1,1,1,1,0,1, 1,1,1,1,1,1 Unkomprimiert Ein Bild

Store: 6,1,3,0,3,1,1,0, 4,1,1,0,4,1,1,0, 7,1 (Compressed) Run Length Encoded Ein Bild

1,12,13,14,15,1 1,22,23,24,25,2 1,32,33,34,35,3 1,42,43,44,45,4 1,52,53,54,55,5 1,62,63,64,65,6 Speicherung: SetSize: 5 by 6 SetBackgroundColor: Ochre SetForegroundColor: Red SetLetterHeight: 4 MoveTo: 3,5 DrawLetter: T Vector Format Ein Bild

6 Zeilen 5 Spalten 1 == oker 0 == rot Unkomprimiert Ein Bild

Dimensionen 1 == ochre 0 == red Uncompressed Ein Bild

Dimensionen Photogrammetrische Interpretation Unkomprimiert Ein Bild

Dimensionen Photogrammetrische Interpretation Kompressionstechnik Ein Bild

Ein Bild

(implizit / explizit) (implicit / explicit) (implicit / explicit) … und die Daten? Ein Bild

Daten entweder als Datenstrom 1,1,1,1,1,1, 0,0,0,1,1,1, 0,1,1,1,1,0, 1,1,1,1,0,1, 1,1,1,1,1,1 Ein Bild

Daten entweder als Datenstrom oder als Verarbeitungsanweisungen SetSize: 5 by 6 SetBackgroundColor: Ochre SetForegroundColor: Red SetLetterHeight: 4 MoveTo: 3,5 DrawLetter: T Ein Bild

Praktische Bedeutung?

Processing dictionary Payload Bit rot

xxx 221 Die Beschädigung eines Bytes führt dazu, dass ein Byte nicht korrekt dargestellt werden kann. Bit rot

002xxx Bit rot Die Beschädigung eines Bytes führt dazu, dass zehn Bytes nicht korrekt dargestellt werden können.

Wird die relativ geringe Datenmenge des Processing Dictionary robust gemacht, sind Verletzungen der großen Menge an Payload Daten relativ harmlos.

Danke für heute!