Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Kopien: 1
Einführung in die Informationsverarbeitung Stunde II: Datenstrukturen Manfred Thaller, Universität Köln Köln 22. Oktober 2007.

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in die Informationsverarbeitung Teil Thaller Stunde II: Datenstrukturen Köln 13. November 2008."—  Präsentation transkript:

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

2 I. Grundbegriffe

3 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

4 Zahlen Bilder Zeichenketten Geburtstage Briefe Datentyp

5 Addieren Komprimieren Vergleichen Abstand berechnen Beziehen Operationen

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

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

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

9 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

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

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

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

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

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

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

16 Diagrammatische Darstellung: A zeigt auf B Datenstruktur Zeiger AB

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

18 Speicher als karierte Zeile Datenstruktur im Speicher

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

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

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

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

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

24 II. Technische Datenstrukturen

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

26 Lies: Verarbeite: Start Atom 1

27 Lies: Verarbeite: Push to stack Atom 1

28 Lies: Verarbeite: Lies weiter Atom 2 Atom 1

29 Lies: Verarbeite: Push to stack Atom 2 Atom 1

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

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

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

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

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

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

36 Lies: Verarbeite: * Pop from stack Atom 1

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

38 Lies: Verarbeite: Start Atom 1

39 Lies: Verarbeite: Push to queue Atom 1

40 Lies: Verarbeite: Lies weiter Atom 2 Atom 1

41 Lies: Verarbeite: Push to queue Atom 2 Atom 1

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

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

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

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

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

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

48 Lies: Verarbeite: * Pop from queue Atom 5

49 Einfach Verknüpfte Listen

50 Erzeuge Atom 1 Atom 1

51 Kopf: Mache Atom 1 zum Listenkopf Atom 1

52 Kopf: Erzeuge Atom 2 Atom 1 Atom 2

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

54 Kopf: Erzeuge Atom 3 Atom 1 Atom 2 Atom 3

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

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

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

58 Doppelt Verknüpfte Listen

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

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

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

62 III. Inhaltliche Datenstrukturen

63 ::= 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:

64 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:

65 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

66 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

67 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

68 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

69 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

70 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

71 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

72 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

73 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

74 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

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

76 Ein Bild

77 6 Zeilen 5 Spalten Ein Bild

78 5 Zeilen 6 Spalten Ein Bild

79 == oker 0 == rot Ein Bild

80 == blau 0 == gelb Ein Bild

81 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

82 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

83 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

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

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

86 Dimensionen Photogrammetrische Interpretation Unkomprimiert Ein Bild

87 Dimensionen Photogrammetrische Interpretation Kompressionstechnik Ein Bild

88 Ein Bild

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

90 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

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

92 Praktische Bedeutung?

93 Processing dictionary Payload Bit rot

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

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

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

97 Danke für heute!


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

Ähnliche Präsentationen


Google-Anzeigen