Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 1 2 Schreiben Sie den Ausdruck für a ist Element der Menge A“ ” und zeichnen Sie dazu eine graphische Darstellung! Schreiben Sie den Ausdruck für A ist Teilmenge von B“ und ” zeichnen Sie dazu eine graphische Darstellung! EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 3 4 Schreiben Sie den Ausdruck für A ist eine echte Teilmenge ” von B“ und zeichnen Sie dazu eine graphische Darstellung! EinfInf WS2006 Schreiben Sie den Ausdruck für Mengendurchschnitt von A ” und B“ und zeichnen Sie dazu eine graphische Darstellung! EinfInf WS2006 Teilmengen werden mit A ⊂ B dargestellt. a∈A B B A A echte Teilmengen werden mit A ⊆ B dargestellt. A∩B B A Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 5 6 Schreiben Sie den Ausdruck für Vereinigungsmenge von A ” und B“ und zeichnen Sie dazu eine graphische Darstellung! Schreiben Sie den Ausdruck für Differenzmenge von A und ” B“ und zeichnen Sie dazu eine graphische Darstellung! EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 7 8 Schreiben Sie den Ausdruck für Disjunkte Vereinigungsmenge ” A und B“ und zeichnen Sie dazu eine graphische Darstellung! EinfInf WS2006 Geben Sie einen Ausdruck an für die Mächtigkeit einer ” Menge B“! EinfInf WS2006 A/B A∪B A⊕B |B| Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 9 10 Geben Sie einen Ausdruck an für die Menge mit den ” Elementen x und y“! Geben Sie einen Ausdruck an für die Menge aller x, für die ” die Aussage f(x)“ gilt! EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 11 12 Geben Sie einen Ausdruck an für die leere Menge“! ” EinfInf WS2006 Wie ist das kartesische Produkt der Mengen A und B“ ” definiert? EinfInf WS2006 {x|f (x)} {x, y} ´ Das (kartesische) Produkt A × B der Mengen A und B ist die Menge aller geordneten Paare (a, b) mit a ∈ A und b ∈ B. {}, ∅ Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 13 14 Geben Sie die Mächtigkeit des kartesischen Produktes der beiden endlichen Mengen A und B an! Geben Sie die Definition für ein Zeichen“ an! ” EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 15 16 Geben Sie die Definition für den binären Zeichenvorrat“ an! ” EinfInf WS2006 Wie nennt man ein Zeichen aus einem binären Zeichenvorrat? EinfInf WS2006 Ein Zeichen (engl. character) ist ein Element einer vereinbarten endlichen, nichtleeren Menge, die als Zeichenvorrat bezeichnet wird. Beispiel: |A × B| = |A| ∗ |B| {+, −, ∗, /} {M o, Di, M i, Do, F r, Sa, So} Ein Zeichenvorrat aus genau zwei verschiedenen Zeichen heißt binärer Zeichenvorrat. Beispiel: Bit {0, 1} {dunkel, hell} {0V, +5V } {f alsch, wahr} {ja, nein} Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 17 18 Wie wird ein Alphabet“ definiert? ” Geben Sie die Definition für ein Wort“ an! ” EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 19 20 Wie wird die Länge eines Wortes“ definiert? ” EinfInf WS2006 Geben Sie den Ausdruck und die Länge für das leere Wort“ ” an! EinfInf WS2006 P Ein Alphabet ist ein Zeichenvorrat, auf dem eine lineare Ordnung (Reihenfolge) fur die Zeichen definiert ist. Beispiel: Eine endliche Folge w = a1 .P . . an von Zeichen eines Alphabets (engl.: word or string) uber . P heist Wort oder Zeichenkette • {0, 1}, 0 < 1 • {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, 0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 • {A, B, C, . . . , Z, a, b, c, . . . , z}, A < B < C < . . . < Z < a < b < c < . . . < z. Das leere Wort wird durch bezeichnet (auch als geschrieben) und besitzt die Lange 0. Sei w = a1 . . . an Zeichenkette uber P , dann bezeichnet |w| = n die Lange der Zeichenkette. Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 21 22 Geben Sie den Ausdruck für die Menge aller Zeichenketten ” über ein Alphabet“ an! Geben Sie den Ausdruck für die Menge aller nicht leeren ” Zeichenketten über ein Alphabet“ an! EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 23 24 Geben Sie den Ausdruck für die Menge aller Zeichenketten ” der Länge n über ein Alphabet“ an! EinfInf WS2006 Definieren Sie die Menge aller Binärwörter der Länge n! EinfInf WS2006 P∗ P+ P∗ = {0, 1}∗ heist die Menge der Binarworter, Elemente von oder Binarworter der Lange n. Pn heisen auch n Bit-Worter Pn Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 25 26 Definieren Sie die Konkatenation von zwei Wörtern“ und ” geben Sie seine Länge an! Definieren Sie ein Präfix“ von einem Wort! ” EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 27 28 Definieren Sie ein Teilwort“ von einem Wort! ” EinfInf WS2006 Definieren Sie ein Suffix“ von einem Wort! ” EinfInf WS2006 Sind x, y, z ∈ P∗ (leere Worter eingeschlossen) und ist w = xyz = x||y||z, dann heißt x ein Präfix (Anfangsstück) von w. P P Es seien ein Alphabet, u = a1 . . . am und v = b1 . . . bn Worter uber Das Wort w = uv = u||v = a1 . . . am b1 . . . bn , das durch Anfügen des Worts v an u entsteht, heißt Konkatenation oder Verkettung von u und v. Es gilt: |uv| = |u| + |v|. Sind x, y, z ∈ P∗ (leere Worter eingeschlossen) und ist w = xyz = x||y||z, z ein Suffix (Endstück) von w. Sind x, y, z ∈ P∗ (leere Worter eingeschlossen) und ist w = xyz = x||y||z, y ein Teilwort von w. Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 29 30 Definieren Sie die lexikographische Ordnung“ für ein ” Alphabet! Definieren Sie den Begriff Formale Sprache“! ” EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 31 32 Definieren Sie den Begriff Decodierung“! ” Definieren Sie den Begriff Code“! ” EinfInf WS2006 EinfInf WS2006 P Sei ein Alphabet. P Eine Teilmenge L ⊆ ∗ heist formale Sprache; x ∈ L heist Wort der Sprache L (L wie Language). P P∗ Sei ein Alphabet. Fur die Worter w1, w2, ∈ wird die lexikographische Ordnung ≤lex , induktiv durch folgende Festlegungen definiert: P ∀w ∈ ∗ P : ≤lex W ∀a1 , a2 ∈ : a1 ||w1 ≤lex a2 ||w2 , :⇔ a1 < a2 oder (a1 = a2 und w1 ≤lex w2 ) P = {0, 1}, 0 < 1 ≤lex 0, 01 ≤lex 1, 01 ≤lex 10, 01 ≤lex 011, 011 = 011 In der Regel ist die Abbildung eines Codes injektiv, d.h. verschiedene Zeichen oder Wörter werden auf verschiedene Codewörter abgebildet. Dann ist auf der Bildmenge eine umkehrbare Codierung beschrieben durch eine Abbildung d d : {b ∈ B|b = c(a), a ∈ A} → A, die Decodierung genannt wird. Seien A und B Zeichenvorrate. Ein Code oder eine Codierung ist eine Abbildung c : A → Boderc : A∗ → B ∗ . Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 33 34 Definieren Sie den Begriff Binärkodierung“! ” Was ist ein Graph? EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 35 36 Was ist ein Baum“ in Bezug auf Graphen“? ” ” EinfInf WS2006 Definieren Sie den Begriff gerichteter Graph“! ” EinfInf WS2006 Graphen sind strukturelle Modelle, d.h. mit ihnen können identifizierte Objekte und ihre Beziehungen zueinander beschrieben werden. Für die Informationsdarstellung in Rechensystemen werden fast ausschließlich BinärCodierungen (Binär-Codes) von Alphabeten betrachtet. Dies sind Codierungen der Form c : A → {0, 1}∗ , wobei A ein vorgegebenes Alphabet ist. Ein gerichteter Graph (engl. graph) G = (V, E) istPein Paar, bestehend aus einer endlichen, nichtleeren Menge V zusammen mit einer Relation ⊆V ×V. • V heißt die Menge der Knoten (engl.: vertices) des Graphen G. • E heißt die Menge der Kanten (engl.: edges) von G. • Notation: Eine Kante (a, b) ∈ E wird graphisch durch einen Pfeil von Knoten a zu Knoten b dargestellt. Bäume sind spezielle Graphen. Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 37 38 Wie werden Kanten in einem gerichteten Graphen dargestellt? Worin unterscheidet sich ein ungerichteter Graph“ von einem ” gerichteten Graphen“? ” EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 39 40 Definieren Sie den Begriff gerichteter Kantenzug“ in einem ” gerichteten Graphen! Wann heißt ein Graph markiert“? ” EinfInf WS2006 EinfInf WS2006 Ungerichtete Graphen: Bei Kanten werden Richtungen nicht angenommen, d.h. die Reihenfolge der Knoten zur Bezeichnung einer Kante ist unerheblich. Sei G = (V, E) ein gerichteter Graph. Sei z = (v0 , . . . , vn ) eine Folge von n + 1 Knoten des Graphen mit (v0 , v1 ), . . . , (vn−1 , vn ) ∈ E; dann heist z gerichteter Kantenzug in G der Lange n. • Folge der Knoten ist durch Kanten verbunden, • mehrfaches Durchlaufen von Knoten ist erlaubt. Eine Kante (a, b) ∈ E wird graphisch durch einen Pfeil von Knoten a zu Knoten b dargestellt. Ein Graph G = (V,E) heißt markiert (bewertet, attributiert), wenn jedem Knoten (knotenmarkiert) oder jeder Kante (kantenmarkiert) (oder beiden) durch eine Abbildung weitere Größen (Werte des Bildbereichs der Abbildung) zugeordnet sind. Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 41 42 Was ist ein gerichteter Weg“ in einem gerichteten ” ” Graphen“? Definieren Sie den Begriff Zyklus“ in einem gerichteten ” ” Graphen“! EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 43 44 Was ist eine Schlinge“ in einem gerichteten Graphen“? ” ” EinfInf WS2006 Wann heißt ein gerichteter Graph zusammenhängend? EinfInf WS2006 Sei G = (V, E) ein gerichteter Graph und w = (v0 , . . . , vn ) ein gerichteter Weg in G. Dann heißt c = (v0 , . . . , vn , vn+1 ) Zyklus, wenn (vn , vn+1 ) ∈ E und vn+1 = v0 , d.h. Anfangs- und Endknoten übereinstimmen. Sei G = (V, E) ein gerichteter Graph. Ein gerichteter Kantenzug w = (v0 , . . . , vn ) in G heißt gerichteter Weg in G, wenn alle Knoten verschieden sind. Ein gerichteter Graph G = (V, E) heißt zusammenhängend, wenn es für je zwei Knoten v1 , v2 ∈ V mindestens einen gerichteten Weg zwischen ihnen in G gibt. Ein entarteter Zyklus (vi , vi ) ∈ E heißt Schlinge, er führt von einem Knoten unmittelbar in ihn zurück. Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 45 46 Wann heißt ein gerichteter Graph streng ” zusammenhängend“? Wann heißt ein ungerichteter Graph zusammenhängend“? ” EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 47 48 Wann heißt ein gerichteter Graph Baum“? ” EinfInf WS2006 Wann wird ein Knoten in einem Baum als Blatt“ definiert? ” EinfInf WS2006 Ein ungerichteter Graph heißt zusammenhängend, wenn es für je zwei Knoten v1 , v2 ∈ V mindestens einen ungerichteten Weg zwischen ihnen gibt. Der Graph heißt streng zusammenhängend, wenn es für je zwei Knoten v1 , v2 ∈ V einen Weg von v1 nach v2 und umgekehrt gibt (d.h. jeder Knoten kann von jedem anderen aus erreicht werden). Sei B = (V, E) ein gerichteter Graph. B heißt baumartig oder kurz Baum (engl.: tree), wenn gilt: • B ist zusammenhängend und zyklenfrei. Ein Knoten v heist Blatt oder Endknoten, wenn er keine ausgehende Kante besitzt, d.h. wenn kein v 0 existiert mit (v, v 0 ) ∈ E. • Es gibt genau einen Knoten vw ∈ V , in den keine Kante mündet. Dieser Knoten heißt Wurzel des Baumes. • Von der Wurzel vw des Baumes gibt es zu jedem anderen Knoten v ∈ V, v 6= vw genau einen gerichteten Weg. Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 49 50 Wann wird ein Knoten in einem Baum als Nachfahre“ ” definiert? Wann wird ein Knoten in einem Baum als Sohn“ definiert? ” EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 51 52 Wann wird ein Knoten in einem Baum als Vorfahre“ ” bezeichnet? EinfInf WS2006 Wie nennt man die Gesamtheit der Nachfahren von einem Knoten? EinfInf WS2006 Die Gesamtheit aller von v (auch über Zwischenknoten) erreichbaren Knoten heißen die Nachfahren von v. Diese bilden wiederum einen Baum, für den v die Wurzel ist. Dieser Baum heißt auch der von v aufgespannte Unterbaum. Nachfahren Die Knoten v 0 ∈ V , die von einem Knoten v durch eine einzige Kante (v, v 0 ) ∈ E erreicht werden, heisen Sohne oder Kinder von v (umgekehrt Vater). Die Knoten auf dem Weg von der Wurzel bis vor v heißen die Vorfahren von v. Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 53 54 Definieren Sie den Begriff Binärer Baum“! ” Nennen Sie zwei Abstraktionsebenen, in denen Algorithmen definierbar sind! EinfInf WS2006 EinfInf WS2006 Formalen Sprachen, Datenstrukturen, Programmiersprachen Formalen Sprachen, Datenstrukturen, Programmiersprachen 55 56 Beschreiben Sie die Arbeitsweise eines Interpeters! EinfInf WS2006 Beschreiben Sie die Arbeitsweise eines Compilers! EinfInf WS2006 Syntax einer Sprache definiert die zulässigen Anordnungen der Sprachelemente auf der Ebene der Repräsentation. Semantik einer Sprache definiert eine Interpretation und legt fest, wie die Sprachelemente in Hinblick auf das Problemlösungsverfahren zu interpretieren sind. Programmiersprache eine formale Sprache zur Repräsentation von Algorithmen. Ein in einer solchen Programmiersprache beschriebener Algorithmus heißt Programm. Sei B = (V, E) ein gerichteter Baum. B heißt binärer Baum oder Binärbaum, wenn jeder Knoten höchstens zwei Söhne hat und zwischen dem linken Unterbaum und dem rechten Unterbaum unterschieden wird. • Compiler übersetzt in exe • Einlesen Zeile für Zeile • BS startet executable • direkte Ausführung • Compilieren für versch. BS • jedes BS benötigt extra Interpreter Codierung Codierung 1 2 Beschreiben Sie, wie ein binärer Code in einem binären Codebaum dargestellt werden kann! Zeichnen Sie den Codebaum für den normalen 4-stelligen BCD-Code (8-4-2-1) auf! EinfInf WS2006 EinfInf WS2006 Codierung Codierung 3 4 Definieren Sie einen dichten Blockcode! Definieren Sie einen Blockcode! EinfInf WS2006 EinfInf WS2006 Jeder Binär-Code kann graphisch durch einen binären Codebaum dargestellt werden: • jeder Stelle im Codewort wird eine Schicht im Baum zugeordnet • jedem Binärwert wird ein linker und ein rechter Unterbaum zugeordnet Ein n-stelliger Blockcode c :→ B n heist dicht, wenn alle b ∈ B n auch Codeworter unter c darstellen (Blockcode ist surjektiv). Ein Code c :→ B n , dessen Codeworter b ∈ B n alle die gleiche Lange n besitzen, heist (n-stelliger) Blockcode. Codierung Codierung 5 6 Definieren Sie einen binären gewichteten Blockcode! Geben Sie den vierstelligen Aiken-Code für die Dezimalziffern 0 bis 9 an und nennen Sie seine Eigenschaften! EinfInf WS2006 EinfInf WS2006 Codierung Codierung 7 8 Geben Sie den 51111-Code für die Dezimalziffern 0 bis 9 an und nennen Sie seine Eigenschaften! EinfInf WS2006 Geben Sie den 1-aus-10-Ring – Code für die Dezimalziffern 0 bis 9 an und nennen Sie seine Eigenschaften! EinfInf WS2006 Ein binarer Blockcode c : A → {0, 1}n zur Codierung von Zahlen heist gewichtet oder bewertbar, wenn den Stellen der Codeworter Gewichte Wi zugeordnet sind und sich der Wert der dargestellten Zahl z ergibt zu • vierstellige Tetrade codiert jeweils eine Dezimalstelle • Dezimaler Charakter der binären Werte bleibt erhalten. • vierte Stelle mit 2, nicht mit 8 gewichtet z= • doppelte Codierungen für eine Zahl möglich 2 0 0 0 0 0 1 1 1 1 1 4 0 0 0 0 1 0 1 1 1 1 bi Wi , i=1 • Verschwendung von Speicherplatz Wi 0 1 2 3 4 5 6 7 8 9 n X 2 0 0 1 1 0 1 0 0 1 1 wobei bi ∈ {0, 1}, i = 1, . . . , n die den Gewichten in der Codierung von z zugeordneten binaren Ziffern entsprechen. 1 0 1 0 1 0 1 0 1 0 1 Wi 0 1 2 3 4 5 6 7 8 9 23 0 0 0 0 0 0 0 0 1 1 22 0 0 0 0 1 1 1 1 0 0 21 0 0 1 1 0 0 1 1 0 0 20 0 1 0 1 0 1 0 1 0 1 • monoton wachsend • sehr übersichtlich • doppelte Codierungen für eine Zahl möglich • großer Aufwand • Verschwendung von Speicherplatz • Einsatz: Anzeigen, numerische Tastaturen Wi 0 1 2 3 4 5 6 7 8 9 9 0 0 0 0 0 0 0 0 0 1 8 0 0 0 0 0 0 0 0 1 0 7 0 0 0 0 0 0 0 1 0 0 6 0 0 0 0 0 0 1 0 0 0 5 0 0 0 0 0 1 0 0 0 0 4 0 0 0 0 1 0 0 0 0 0 3 0 0 0 1 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 Wi 0 1 2 3 4 5 6 7 8 9 5 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 Codierung Codierung 9 10 Definieren Sie den Begriff : Code variierender Länge“! ” Wie lautet die Fano-Bedingung? EinfInf WS2006 EinfInf WS2006 Codierung Codierung 11 12 Welches Ziel wird mit komprimierenden Codes verfolgt? EinfInf WS2006 Nennen Sie drei Beispiele für komprimierende Codes! EinfInf WS2006 Kein Codewort ist Präfix (Anfangsstück) eines anderen Codewortes. • Lauflängenkodierung (Run Length Encoding) • Huffmann-Codierung • Shannon/Fano-Codierung Ein Code c : A → B ∗ , dessen Codeworter verschiedene Langen besitzen konnen, heist variabel langer Code oder Code variierender Lange. Beispiel: Morse-Code • Reduktion der Länge der Repräsentierung von Information durch Kompression • Kostenersparnis Codierung Codierung 13 14 Beschreiben Sie in Worten das Verfahren der Huffmann-Codierung in 4 Schritten! Wie erfolgt typischerweise die Lauflängencodierung (RLE)? EinfInf WS2006 EinfInf WS2006 Codierung Codierung 15 16 Beschreiben Sie in Worten das Verfahren der Shannon/Fano-Codierung in 4 Schritten! EinfInf WS2006 Nennen Sie drei typische Anwendungsbereiche für nicht verlustfreie Codierungen! EinfInf WS2006 • Ordne jedem Zeichen einen isolierten Knoten mit dem Gewicht der relativen Häufigkeit des Zeichens zu. • Suche die beiden Zeichen/Teilbäume mit dem geringsten Gewicht. • Gruppierung: Folge identischer Zeichen durch (Anzahl, Zeichen) codieren. ABBBBBBBCDEEEEEEEEEEEF#34777777 – Bilde einen binären Teilbaum mit diesen Zeichen/Teilbäumen. – Ordne den beiden neuen Kanten die Codierungen 0 und 1 frei zu. – Ordne dem Teilbaum die Summe der Gewichte der beiden Zeichen/Teilbäume als Gewicht zu. • Wiederhole (2) und (3) so lange, bis ein einziger binärer Baum mit dem Gewicht 1 existiert. • Bilde die Wurzel des Baumes bestehend aus der Menge aller Zeichen und dem Gewicht aus der Summe aller relativen Häufigkeiten (beträgt 1). • MPEG-Audio • Wähle ein Blatt des Baumes, dessen zugeordnete Menge M von Zeichen nicht einelementig ist. • MP3 für Audio-Daten • Teilung: • JPEG (Joint Photographic Expert Group) für Bilddaten • MPEG/MPEG2 Videostrom-Kompression – Teile M in zwei möglichst gleichgewichtige Teilmengen M0 und M1 – Ordne M als linkes und rechtes Kind M0 und M1 zu sowie den neuen Kanten die Codierungen 0 und 1 zu. • Wiederhole (2) und (3) so lange, bis alle Blätter des Baumes einelementig sind. Codierung Codierung 17 18 Warum nehmen nicht verlustfreie Codierungen einen Informationsverlust in Kauf? Beschreiben Sie den Bitfehler eines binären Signals! EinfInf WS2006 EinfInf WS2006 Codierung Codierung 19 20 Welche Maßnahmen beinhaltet die Codesicherung! EinfInf WS2006 Was versteht man unter Code-Redundanz im Zusammenhang mit fehlererkennenden und –korrigierenden Codierungen? EinfInf WS2006 Ein Bitfehler eines binaren Signals ist seine Umkehrung (0 → 1, 1 → 0). Unter Code-Redundanz soll im folgenden jeglicher Zusatzaufwand in einem Code verstanden werden, der über die reine Darstellung der gewünschten Codewörter hinausgeht. Um einen höheren Komprimierungsgrad zu erreichen. Codesicherung beinhaltet alle Maßnahmen der Erkennung oder Korrektur von Bitfehlern in Codewörtern oder Blöcken von Codewörtern. Codierung Codierung 21 22 Definieren Sie das Hamming-Gewicht eines binären Codewortes! Definieren Sie den Hamming - Abstand zwischen zwei n-stelligen binären Codewörtern! EinfInf WS2006 EinfInf WS2006 Codierung Codierung 23 24 Definieren Sie den Hamming-Abstand für einen binären Blockcode! EinfInf WS2006 Wie viele fehlerhafte Bits können in einem binären Blockcode mit dem Hamming-Abstand d sicher erkannt werden? EinfInf WS2006 Seien a, b ∈ {0, 1}n zwei n-stellige Codewörter. Der Hamming-Abstand oder die HammingDistanz h(a, b) von a und b gibt die Anzahl der Stellen an, in denen sich die Codewörter a und b unterscheiden. Beispiel: h(01000101, 00010111) = 3 Sei c : A → {0, 1}∗ ein binärer Code. Das Hamming-Gewicht g(w) eines Codewortes w ∈ {0, 1}∗ ist die Anzahl der Stellen des Codeworts mit dem Wert ”1”. Beispiel: g(01000101) = 3 Hat ein Code den Hamming-Abstand d, so können alle Störungen, die höchstens d-1 Bits betreffen, sicher erkannt werden. Sei c : A → {0, 1}n ein binarer Blockcode. Der Hamming-Abstand des Codes c ist als der kleinste Hamming-Abstand h(a, b) zwischen zwei verschiedenen Codewortern a und b definiert. Codierung Codierung 25 26 Welchen Hamming-Abstand besitzen dichte Codes? Wie wird das Paritätsbit für die gerade Parität festgelegt? EinfInf WS2006 EinfInf WS2006 Codierung Codierung 27 28 Wie wird das Paritätsbit für die ungerade Parität festgelegt? EinfInf WS2006 Wie groß ist der Hamming-Abstand für einen Code mit ursprünglich Hamming-Abstand d, in welchem die Codewörter dann verdoppelt wurden? EinfInf WS2006 gerade Parität (even parity): Das Codewort wird auf ein gerades Gewicht (gerade Anzahl von 1-Bits) erweitert. Dichte Codes haben einen Hamming-Abstand von 1 und können keine Fehler erkennen. Ein Code mit Hamming-Abstand d wird durch Verdoppeln der Codewörter (w → w||w) zu einem Code mit Hamming-Abstand 2 ∗ d. ungerade Parität (odd parity): Das Codewort wird auf ein ungerades Gewicht (ungerade Anzahl von 1-Bits) erweitert. Codierung Rechnernetze und das Internet 29 1 Wie viele fehlerhafte Bits können in einem binären Blickcode mit Hamming-Abstand d=2k+1 korrigiert werden? Was bezeichnen die Begriffe Protokoll“ und ” Protokollstack“? ” EinfInf WS2006 EinfInf WS2006 Rechnernetze und das Internet Rechnernetze und das Internet 2 3 Welches sind die für Netzwerkschichten heute am weitesten verbreiteten Protokolle? EinfInf WS2006 Was bedeutet IP“ und welche grundlegende Funktion stellt ” es zur Verfügung? EinfInf WS2006 Protokoll Die Festlegungen und Funktionen einer Schicht werden mit dem Begriff ”Protokoll”bezeichnet. Protokollstack Die Implementierung aller Schichten heißt ”Protokoll-Stack”. IP (IPv4 u. IPv6 Internet Protocol Version 4 u. 6), stellt Vermittlungsdienst für TCP, UDP und ICMP zur Verfügung. Hat ein Code den Hamming-Abstand d = 2 ∗ k + 1, so können alle Störungen, die höchstens k Bits betreffen, sicher korrigiert werden. Die heute für Netzwerk-Schichten und Internet am weitesten verbreiteten Protokolle sind dieTCP/IP-Protokolle (standardisiert in RFC – Request for Commend). Rechnernetze und das Internet Rechnernetze und das Internet 4 5 Was bedeutet TCP und wie sind seine allgemeinen Eigenschaften? Erläutern Sie die Eigenschaft eine verbindungsorientierter Protokolle! EinfInf WS2006 EinfInf WS2006 Rechnernetze und das Internet Rechnernetze und das Internet 6 7 Erläutern Sie die Eigenschaft eine verbindungsloser Protokolle! EinfInf WS2006 Erläutern Sie die Eigenschaft von Protokollen mit Sequencing! EinfInf WS2006 TCP (Transmission Control Protocol) Verbindungsorientierte Protokolle (connection-oriented) Hier wird zuerst eine Verbindung zwischen zwei Endpunkten aufgebaut, bevor die Kommunikation stattfindet. Andere Benutzer haben keine Möglichkeit, sich in eine solche Verbindung zwischen zwei Teilnehmern hineinzudrängen. Protokolle, die sicherstellen, dass Daten in gleicher Reihenfolge empfangen werden, in der gesendet wurde. • verbindungsorientiertes Protokoll, dass einem Prozess einen zuverlässigen, vollduplex Bytestream zur Verfügung stellt • impliziert z.B. Wiederholungen bei fehlerhaften Übertragungen. Protokolle, die ohne feste Verbindung zwischen zwei Endpunkten arbeiten. Rechnernetze und das Internet Rechnernetze und das Internet 8 9 Erläutern Sie den Begriff Streaming-Protokolle“! ” Erläutern Sie den Begriff Paketbasierte Protokolle“! ” EinfInf WS2006 EinfInf WS2006 Rechnernetze und das Internet Rechnernetze und das Internet 10 11 Erläutern Sie den Begriff Protokolle mit Fehlerkontrolle! EinfInf WS2006 Erläutern Sie den Begriff halbduplex“ im Zusammenhang ” mit Rechnernetzen! EinfInf WS2006 Erlauben nur Versenden und Empfangen von ganzen Datenpaketen (meist Maximalgröße für Pakete festgelegt). Arbeiten mit einzelnen Bytes, wobei größere Bytefolgen in Blöcken zusammengefasst werden können. es kann jeweils nur in eine Richtung übertragen, also entweder nur gesendet oder nur empfangen werden. Protokolle, die falsch übertragene Daten erneut anfordern. Rechnernetze und das Internet Rechnernetze und das Internet 12 13 Erläutern Sie den Begriff vollduplex“ im Zusammenhang mit ” Rechnernetzen! Geben Sie ein Tupel an, welches eine Netzwerkverbindung allgemein charakterisiert! EinfInf WS2006 EinfInf WS2006 Rechnernetze und das Internet Rechnernetze und das Internet 14 15 Welche grundlegende Eigenschaft besitzen IP-Nummern? EinfInf WS2006 Geben Sie das Format für IPv4 – Nummern an! EinfInf WS2006 Netzwerkverbindung ist durch 5-Tupel charakterisierbar: Protokoll, lokaler Host, lokaler Prozess, fremder Host, fremder Prozess es kann gleichzeitig in beide Richt. übertragen, also sowohl gesendet als auch empfangen werden. 32 Bit Binärzahl in 4 Gruppen zu je 8 Bits: 10000010.00111100.00011010.00000010 ↓ 130.60.26.2 weltweit eindeutig, damit keine Adressierungs-Konflikte auftreten und werden von internationalen Organisationen vergeben. Rechnernetze und das Internet Rechnernetze und das Internet 16 17 Wie viele IPv4 – Nummern gibt es? Geben Sie das Format für IPv6 – Nummern an! EinfInf WS2006 EinfInf WS2006 Rechnernetze und das Internet Rechnernetze und das Internet 18 19 Welches war der Hauptgrund zur Einführung des IPv6-Formats? EinfInf WS2006 Nennen Sie zwei Regeln zur vereinfachten Schreibweise von IPv6-Nummern, geben Sie jeweils auch ein Beispiel an! EinfInf WS2006 8 durch Doppelpunkte getrennte 4-stellige Hexadezimalzahlen: ca. 232 ≈ 4.3 Mrd. Adressen 3ffe:675:53b:41:134:c35:ff:4 Zusammenfassen von Nullen durch (::) • 3f f e : 353 : 0 : 0 : 0 : 0 : 0 : 1 → 3f f e : 353 :: 1 • 0 : 0 : 0 : 0 : 0 : 534 : 2c : a23 →:: 534 : 2c : 123 • IP-Nummern werden knapp • nächste Version des Internet-Protokolls (IPv6) mit größerem Adressraum Rechnernetze und das Internet Rechnernetze und das Internet 20 21 Geben Sie die IP-Adresse des eigenen Rechners (localhost) im IPv4 und IPv6-Format an! Erklären Sie die Begriffe statische“ und dynamische“ ” ” IP-Numern! EinfInf WS2006 EinfInf WS2006 Rechnernetze und das Internet Rechnernetze und das Internet 22 23 Wie können einzelne Anwendungsprozesse einer Netzwerkverbindung angesprochen werden? EinfInf WS2006 Wozu dienen Host- und Domainnamen? EinfInf WS2006 Statische IP-Nummern: • Rechner, die ständig mit dem Internet verbunden sind, verwenden statische IP- Nummern. • Wird einmal zugeteilt, wenn Rechner in Betrieb geht, und ändert sich dann nicht mehr. Dynamische IP-Nummern: 127.0.0.1 (IPv4) ::1 (IPv6) • Werden jedes mal neu zugeteilt. • DHCP-Server (Dynamic Host Configuration Protocol). Ein Rechner kontaktiert bei Anmeldung an das Netz DHCP-Server, um dynamische IP-Nummer zu erhalten. • Reduziert IP-Nummern-Verbrauch ganz erheblich. über Portnummern: • zu Adressnummern zusätzlich noch Name, da leichter zu merken. • aus Host- und Domainname zusammengesetzter Name identifiziert Rechner im Netzwerk, wie pinguin.vogeltiere.network. • Netzwerkverbindungen können von mehreren Anwendungsprozessen (Diensten) genutzt werden. • ganzzahlige 16-Bit Portnummer. • Internet-Protokolle legen zur Identifizierung bekannter Dienste eine Gruppe von festen Portnummern (0-1023) fest. Rechnernetze und das Internet Rechnernetze und das Internet 24 25 Wie heißen Rechner, welche für die Umsetzung zwischen Rechnernamen und IP-Adressen zuständig sind? Welches ist das grundlegende Konzept des WWW? EinfInf WS2006 EinfInf WS2006 Rechnernetze und das Internet Rechnernetze und das Internet 26 27 Nennen Sie die drei Grundkomponenten des WWW! EinfInf WS2006 Zeichnen Sie das einfache Client – Server- Modell! EinfInf WS2006 Nameserver: Client-Server Konzept. • bei kleinen Netzen lokale IP-Nummern in Datei • bei größeren Netzen IP-Nummern in Datenbanken Nameserver notwendig • HTML (Layoutsprache für WWW-Dokumente) • HTTP ( Kommunikationsprotokoll) • URL (einheitliche Adressierung im Internet) Rechnernetze und das Internet Rechnernetze und das Internet 28 29 Was bedeutet URL, schreiben Sie die genaue Syntax mit obligatorischen und optionalen Bestandteilen auf! Was bedeutet HTTP, schreiben Sie die 4 Schritte von http auf! EinfInf WS2006 EinfInf WS2006 Rechnernetze und das Internet Rechnernetze und das Internet 30 31 Was bedeutet HTML und wozu dient es? EinfInf WS2006 Welches ist das grundlegende Sprachelement von HTML, geben Sie die genaue Schreibweise an! EinfInf WS2006 Hypertext Transfer Protocol 1. Herstellung der Verbindung - URL Uniform Resource Locator 2. Senden der Anforderung 3. Die Rückantwort protocol://hostname[:port][/path][/filename][#section] 4. Schließen der Verbindung Sprachelemente sind die Tags (Verschachtelung möglich) Hypertext Markup Language ist eine Auszeichnungssprache. • beschreibt die logischen Bestandteile eines Dokumentes • einleitendes Tag < . . . > • abschließendes Tag < / . . . > • enthält typografische Anweisungen um Texte und Grafiken zu einem präsentablen Ganzen zu verbinden Rechnernetze und das Internet Rechnernetze und das Internet 32 33 Geben Sie den minimalen Inhalt eines HTML-Dokumentes an, um den Text dies ist ein Text“ im Browserfenster zu ” erzeugen! Geben Sie die genaue Syntax für Attribut-Wertpaare in HTML-Tags an! EinfInf WS2006 EinfInf WS2006 Rechnernetze und das Internet Rechnernetze und das Internet 34 35 Geben Sie Nachteile statischer Webseiten an! EinfInf WS2006 Wodurch sind dynamische Webseiten charakterisiert? EinfInf WS2006 Syntax: <Tag Attribut = "Wert"> . . . </TagEnde> • Lesende Interaktivität: Eingabebereiche, Radio-Buttons, Auswahllisten • Dynamische Generierung von Web-Seiten und Verlinkungen z.B. virtuelle Ausstellungen, komplexe Firmendarstellungen, News-Seiten, Fahrplanauskünfte • Generieren des HTML auf Anfrage mit Programmiersprachen • Entweder im Server oder im Client • Mischformen statische und dynamische Seiten (HTML-Einbettung) <html> dies ist ein Text </html> • Unflexibel (nur Vorgedachtes), keine Zusammenstellung • Schwer änderbar (neues Layout) • häufig inaktuell • anfällig für Inkonsistenzen • Keine Interaktion (E-Commerce Einkaufswagen)