Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Üungen.

Ähnliche Präsentationen


Präsentation zum Thema: "Üungen."—  Präsentation transkript:

1 Üungen

2 Übung 2.1 Informations-Kennwerte
Berechnen Sie Informationsgehalt jedes Symbols Mittlerer Informations-gehalt Mittlere Wortlänge (bei einer Codierung von 8 bis für jedes Symbol) Redundanz relative Redundanz der deutschen Sprache (siehe Tabelle) Buchstabe Häufigkeit in % Buchstabe Häufigkeit in% Buchstabe Häufigkeit in % a 6,51 j 0,27 s 7,27 b 1,89 k 1,21 t 6,15 c 3,06 l 3,44 u 4,35 d 5,08 m 2,53 v 0,67 e 17,40 n 9,78 w 1,89 f 1,66 o 2,51 x 0,03 g 3,01 p 0,79 y 0,04 h 4,76 q 0,02 z 1,13 i 7,55 r 7,00

3 Übung 2.2 Informations-Kennwerte
Wieviele Fragen benötigen Sie beim „Zahlenraten“ um eine aus 100 Zahlen zu erraten um eine aus n Zahlen zu erraten Eine Nachrichtenquelle sendet Zeichen aus dem Alphabet X = {a,b,c,d} mit den Wahrscheinlichkeiten p(a)=1/4, p(b)=p(c)=1/8 Berechnen Sie die Entropie der Quelle Wie groß ist der Informationsgehalt der Nachricht „abcd“ Wie groß ist der mittlere Informationsgehalt der Nachricht „abcd“ Wie groß ist der mittlere Informationsgehalt einer Nachricht mit 1000 Zeichen Wie groß ist der mittlere Informationsgehalt einer Nachricht mit 1000 Zeichen unter der Annahme, dass alle Zeichen gleich wahrscheinlich sind. Berechnen Sie die Redundanz der englischen Sprache Gehen Sie davon aus, dass jedes Zeichen mit 8 bit codiert wird. Geben Sie eine Codierung an, die weniger redundant ist.

4 Übung 2.3 Huffmann / Hamming
Konstruieren Sie einen Huffmann-Code für die deutsche Sprache (Häufigkeitstabelle wie bei Übung 2.1) Berechnen Sie die Redundanz Ihres Codes Vergleichen Sie Ihren Code mit dem Morsecode Der Morsecode ist ein tertiärer Code (Punkt, Strich, Pause) Gehen Sie davon aus, dass diese Zeichen nochmals mit je 2 bit codiert sind Welcher Code ist redundanter ? Bestimmen Sie die Hamming-Distanz der nach der Hamming-Methode kodierten Codewörter. Betrachten Sie dabei zunächst nur die Codewörter für 0000 bis 1111 Welche Bitfehler sind erkennbar ? Welche Bitfehler sind korrigierbar ? Codieren Sie „1000“ mit Hilfe der Hamming-Methode Kippen sie jedes Bit je einmal und bestimmen sie das gekippte Bit Was passiert, wenn zwei Bits gekippt sind - verdeutlichen Sie dies anhand eines Beispiels.

5 Übung 3.1 Zahlensysteme Die Duodezimalindianer haben zwölf Finger
Berechnen Sie nach dem Zahlensystem der Duodezimalindianer die wichtigsten Werte des täglichen Lebens: 300g Pizza Eine Flasche Bier (0,5 bzw. 0,33 Liter) ALDI 2.95 € Konvertieren Sie die obigen Werte auch in Bin, Hex und Okt Grundrechenarten (verwenden Sie keinen Rechner) Berechnen Sie / 1910 Konvertieren Sie und 1910 ins Binärsystem Dividieren Sie die Binärdarstellungen der beiden Zahlen Machen Sie die Gegenprobe im Binärsystem Konvertieren Sie 0,110 ins Binärsystem Was bedeutet: C 6C E 64 2E

6 Übung 3.2 Gebrochene Zahlen
Konvertieren Sie 0,1 mit der Restwertmethode Addieren Sie paarweise alle Zahlen von -3 bis +4 (also 28 Additionen), verwenden Sie dabei die Darstellung negativer Zahlen im Zweierkomplement. (optional) Programmieren Sie in PHP4/HTML-Forms einen Konverter zur Konvertierung ganzer und gebrochener Zahlen zwischen beliebigen Zahlensystem und zur Darstellung im IEEE 754 float und double Format. Stellen Sie  als IEEE 754 float-Zahl dar als IEEE 754 double-Zahl dar Geben Sie im Binärsystem und Dezimalsystem den größt- bzw. kleinst-möglichen positiven bzw. negativen Wert einer float-Zahl an

7 Übung 3.3 IEEE 754 Betrachten sie das Programm konvd auf der GDI-Website ( -> Lehre -> GDI (Tabelle: Sonstiges)) Bestimmen Sie (durch Ausprobieren) Vorzeichenbit, Exponentenbits, Mantissenbits Bias Für die Datentypen Extended Double Currency Single Bemerkung: Die im Programm konvd dargestellten Werte entsprechen den Binärrepräsentationen von Borlands Delphi-Datentypen.

8 Übung 4.1 Strukturierte Datentypen
Beschreiben Sie Gemeinsamkeiten und Unterschiede von „Datenstruktur“, „Datentyp“ und „Variable“. Was sind die Vor- und Nachteile von Arrays gegenüber verketteten Listen Definieren Sie einen Datentyp für das Objekt „Schachspiel“. Berücksichtigen Sie dabei: Beide Namen der Spieler Alle Züge Den Gewinner Betrachten Sie den Stundenplan auf meiner Homepage Skizzieren Sie einen Datentyp für das Objekt „Stundenpläne“ Welchen Speicherplatz benötigt eine Variable dieses Typs ? An welchen Stellen sehen Sie Alternativen zu Ihrer Typdefinition ?

9 Übung 4.2 Abstrakte Datentypem
Definieren Sie den Datentyp für eine einfach verkettete Liste (die Datenwerte seien vom Typ: integer) doppelt verkette Liste (die Datenwerte seien vom Typ: integer) Definieren Sie den Datentyp für ein beliebiges Netz - siehe Bild (der Datenwert jedes Knotens sei vom Typ: integer) <int> <int> <int> <int> <int> <int> <int> <int> <int>

10 Übung 5.1 Spiel des Lebens Überlegen Sie sich Rahmenbedingungen für das Spiel des Lebens (Anhang B) Formalisieren Sie dieses Problem Stellen sie einen umgangssprachlichen Lösungsansatz auf Formalisieren Sie den Lösungsansatz als Algorithmus Spielen Sie den Algorithmus anhand eines Beispieles durch Bewerten Sie den Algorithmus bezüglich seine Laufzeit und seines Platzbedarfes optional: Programmieren Sie dieses Spiel

11 Übung 5.2 Abweisende Schleife
Notieren Sie das Beispiel der abweisenden Schleife als Flussdiagramm Struktogramm Formulieren Sie die „while“-Schleife dieses Beispiels als „repeat“-Schleife. Erweitern Sie dieses Beispiel so, dass alle Zahlen korrekt verarbeitet werden. Formulieren Sie das Beispiel nur mit Hilfe von Sprüngen. (Also ohne die Strukturierungsmethode „Schleife“ bzw. ein-/mehrfache Auswahl)

12 Übung 5.3 Schleifen Konstruieren Sie und wandeln Sie um ...
eine „While“-Schleife in eine „Repeat“-Schliefe eine „Repeat“-Schleife in eine „While“-Schleife Formulieren Sie Ihr Vorgehen für allgemeine „While“- und „Repeat“-Schleifen, mit Bedingungen B und Aktionen.A. Konstruieren Sie eine „While“-Schleife Wandeln Sie diese in einen Algorithmus mit Sprung-Befehlen um. Formulieren Sie Ihr Vorgehen für allgemeine „While“-Schleifen, mit Bedingungen B und Aktionen.A. Konstruieren Sie eine „Repeat“-Schleife. Formulieren Sie Ihr Vorgehen für allgemeine „Repeat“-Schleifen, mit Bedingungen B und Aktionen.A.

13 Übung 5.4 Rekursion Programmieren Sie die Fakultätsfunktion Optional:
Rekursiv Iterativ Ermitteln Sie die Laufzeiten beider Varianten in Abhängigkeit von n und stellen Sie diese tabellarisch dar. Optional: Programmieren Sie für das „Weg des Springers“-Problem ein Programm mit Backtracking. Entwickeln Sie unterschiedliche Heuristiken zur Realisierung des „waehleKandidat“-Blockes. Zeigen Sie, durch Berechnung der ersten n Lösungen, welche Heuristik die erfolgreichste ist.

14 Übung 5.5 Acht Damen Problem
Das acht Damen Problem: Acht Damen sind so auf einem Schachbrett aufzustellen, dass keine Dame eine andere bedroht: Eine mögliche Lösung: Formulieren Sie einen rekursiven Algorithmus zur Lösung des Acht- Damen Problems. Programmieren Sie den Algorithmus

15 Übung 6.1 Turing-Maschine
Machen Sie sich mit der Funktionsweise des „Busy Beaver“-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tebelle. Versuchen Sie sich selbst am Turing Simulator der IGS (Link auf meiner Homepage) Entwerfen Sie eine Turing-Maschine zur Multiplikation zweier natürlicher Zahlen.

16 Übung 6.2 Einfache Verifikation
Gegeben ist folgender Algorithmus {a<0, b>0, c>0} // Vorbedingung P(a,b,c) a=b; d=b-a; if (c == 0) then d=5; else d=d+1; Geben Sie eine Nachbedingung Q(d) für die Variable d an Beweisen Sie dass sich durch den Algorithmus aus P(a,b,c) diese Nachbedingung Q(d) ableiten lässt Schreiben Sie einen zweiten Algorithmus, der ebenfalls die Nachbedingung Q(d) aus P(a,b,c) ableiten kann Verifizieren Sie Ihren Algorithmus

17 Übung 6.3 Denksportaufgabe
Gegeben sei folgendes Verfahren In einem Topf seien s schwarze und w weiße Kugeln - insgesamt mindestens eine. Solange mindestens zwei Kugeln im Topf sind, nimm zwei beliebige Kugeln heraus. Falls Sie gleiche Farbe haben, wirf beide weg und lege eine neue schwarze Kugel in den Topf. Falls sie verschiedene Farben haben, wirf die schwarze weg und lege die weiße zurück in den Topf. Welche Farbe hat die letzte Kugel Welche Aussage - die einen Hinweis auf die Antwort gibt - gilt vor, in und nach der Schleife (Invariante) Terminiert die Schleife ? Begründen Sie ihre Antwort.

18 Übung 6.4 Invariante Betrachten Sie nochmals das Verfahren aus der vorgegangenen Übung: In einem Topf seien s schwarze und w weiße Kugeln - insgesamt mindestens eine. Solange mindestens zwei Kugeln im Topf sind, nimm zwei beliebige Kugeln heraus. Falls Sie gleiche Farbe haben, wirf beide weg und lege eine neue schwarze Kugel in den Topf. Falls sie verschiedene Farben haben, wirf die schwarze weg und lege die weiße zurück in den Topf. Beschreiben Sie das Verfahren als Algorithmus Das „Nehmen“ dürfen Sie als Block voraussetzen. Entwerfen Sie den Kopf dieses Blocks, Beschreiben Sie seine Parameter beschreiben Sie sein Verhalten in Form einer Vor- und Nachbedingung Bestimmen Sie die Invariante Beweisen Sie die Korrektheit Ihrer Nachbedingung

19 Übung 6.5 Vollständige Verifikation
gegeben ist der folgende Algorithmus zum schnellen Potenzieren (Legendre Algorithmus) // Vorbedingung P(V): a>0  b0 x = a; y = b; z = 0; while y > 0 { if odd(y) then z = z*x; y = y div 2; // Ganzzahldivision x = x*x; } Was ist die Nachbedingung dieses Algorithmus Bestimmen die die Schleifeninvariante Beweisen Sie die Korrektheit de Legendre Algorithmus

20 Übung 6.6 Schranken Angenommen, Ihr Algorithmus habe einen Aufwand von g(n) = 5n3 + n für alle n Geben sie eine obere Schranke O(g(n)) an. Beweisen Sie, dass ihre Schranke tatsächlich eine obere Schranke ist. Konstruieren Sie einen Graphen fü die beiden Funktionen g(n) O(g(n) so, dass der Schnittpunkt deutlich wird. Geben Sie eine untere Schranke an Sie haben zusätzlich einen Algorithmus mit O(2n) Aufwand. Vergleichen Sie diesen Algorithmus mit dem Algorithmus aus 1. Welches ist der „schnellere“ Algorithmus ? Begünden Sie Ihre Antwort quantitativ

21 Übung 6.7 O-Notation gegeben seien folgende Werte: 1,3,4,8,9,15,17,25,28,29,31,36,41,45 Zeichnen Sie einen sortierten Baum minimaler Tiefe, der mit den gegeben Werten belegt ist. Schreiben Sie einen Algorithmus, der den Baum aufspannt (als Wiederholungs-Übung von Zeigern) Gegeben ist der Suchalgorithmus aus „Häufige O-Ausdrücke: O(log n)“. Geben Sie für jeden Wert an, wie oft der Block durchlaufen wird Formulieren Sie einen iterativen Algorithmus mit O(n4) Geben Sie eine kurze rechnerische Begründung für Ihre Antwort

22 Übung 6.8 Aufwand Gegeben ist folgender Algorithmus:
do (list:*liste) { i:integer; for i=1 to no_of_elements(list) { remove_last_element(list); do (list) // call list with one element less } Geben Sie den Aufwand an. Belegen Sie Ihre Antwort rechnerisch Gegeben ist folgender Algorithmus for i=1 to n { j=1; while (j<i) { j = j+2; } }

23 Übung 7.1 Syntax und Semantik
Geben Sie Beispiele für lexikalische Strukturelemente syntaktische Strukturelemente der Programmiersprache C++ an Formulieren Sie die Semantik einer while-Schleife eines Unterprogrammaufrufes in C++ recherchieren Sie nach weiteren Programmiersprachen

24 Übung 7.2 Reguläre Ausdrücke
Geben Sie reguläre Ausdrücke für Integerliterale Die Schlüsselwort: while, function, if in C++, jeweils in „klassischer“ und in UNIX-Notation an Geben Sie einen regulären Ausdruck zu folgenden Sprachen an: Alle Folgen von Großbuchstaben, die jeden Vokal genau einmal in alphabetischer Reihenfolge enthält: Bsp.: SDFKJHZZTADGFPMNBEHGQIQWGFMNOLKHYXUQSKJH Alle Dualziffernfolgen, die „001“ nicht als Teilfolge enthalten Gegenbsp.: Welche Sprachen sind durch die folgenden regulären Ausdrücke definiert ? (0?|1*)* (0|1)*0(0|1)(0|1) /\*((\*[^/])|[\*])*\*/

25 Lösung 6.1.1 Turing-Maschine
Vollziehen sie die 11 Schritte der ersten Turing-Tebelle. 1,_ 2,1,> 1,1 3,1,< 2,_ 3,1,> 2,1 H,1,> 3,_ 1,1,< 3,1 2,_,< 4,_ H,_,> 4,1 H,_,> Ausgangszustand,Zeichen  Folgezustand,schreibeZeichen,Aktion 1 2 3 4 5 6 7 8 9 10 11 H State

26 Lösung 6.1.2 Turing-Maschine
Eingabe der initialen Bandinschrift Eingabe der Turing-Tabelle Zustand x Zeichen Folgezustand x Zeichen x Aktion Beispiel: 1,_  1,_,>

27 Lösung 6.1.3 Turing-Maschine
Aufgabenstellung Entwerfen Sie eine Turing-Maschine zur Multiplikation zweier natürlicher Zahlen. Spezifikation Eingabespezifikation Die Zahlen werden durch die entsprechende Anzahl von ‚1‘ am Band dargestellt Zwischen den Zahlen befindet sich ein ‚x‘ am Band Hinter der letzten Zahl ist ein =- Zeichen am Band Das restliche Band ist mit ‚0‘ beschrieben. Der Schreib/Lesekopf befindet sich links von der 1. Zahl. Ausgabespezifikation Das Ergebnis ist hinter dem =, durch eine entsprechende Anzahl von ‚1‘ darzustellen. Beispiel: Die zwei Zahlen 3 und 4 sind mittels eines Turing-Programmes zu multiplizieren

28 Lösung 6.1.3 Turing-Maschine
Idee: Kopiere alles vor dem = (den 2.Multiplikator) ans Ende Mache dies für jede 1 vor dem X (den 1.Multiplikator) Siehe Anhang C SucheStart R 1 SucheZahl2 X EndZustand L Zahl2Start GeheEnde = Mach1Aus0 SucheNull HolNaechsten1 Zahl1Start

29 Lösung 6.2 Einfache Verifikation
Gegeben ist folgender Algorithmus {a<0, b>0, c>0} a=b; {a=b, b>0, c>0} d=b-a; {d=b-a, a=b, b>0, c>0}  {d=0, b>0, c>0} if (c == 0) then {d=0, b>0, c>0, c=0} d=5; {d=5, b>0, falsch}  {d=1} // aus falsch lässt sich alles folgern else {d=0, b>0, c>0, c<>0}  {d+1=1, b>0, c>0} d=d+1; {d=1, b>0, c>0} {d=1, b>0, c>0}  {d=1}

30 Lösung 6.3 Denksportaufgabe
Denksportaufgabe Welche Farbe hat die letzte Kugel ? Die Farbe der letzten Kugel ist abhängig von der Anzahl der weißen Kugeln: Ist die Anzahl gerade, so ist die letzte Kugel schwarz Ist die Anzahl ungerade, so ist die letzte Kugel weiß Welche Aussage gilt vor, in und nach der Schleife (Invariante) Ist die Anzahl der weißen Kugeln gerade, so bleibt sie gerade Ist die Anzahl der weißen Kugel ungerade, so bleibt sie ungerade Es werden entweder 2 weiße Kugeln entfernt oder keine. Terminiert die Schleife ? Begründen Sie ihre Antwort. JA. Die Anzahl der Kugeln vermindert sich bei jedem Zug um genau eine (nach Algorithmus: 2 nehmen, eine geben). Beim Erreichen von 2 Kugeln wird die Schleife noch einmal durchlaufen und terminiert mit einer Kugel.

31 Lösung 6.4 Invariante {s+w >= 1}  x=s; y=w; {x=s, y=w, x+y  1}
{INV: (odd(w): odd(y))  (even(w): even(y)  x+y1) } while (x+y>1) { {INV  x+y>1} // Vorbedingung für „take“: x+y>1 take(a,b) // IN: a no. of black, b no of white (drawn) {a+b=2, a,b0} // = Nachbedingung für „take“ switch a: { // a = no of black bullets drawn case 0: {x=x+1; y=y-2}; {INV} // add black, remove two w. case 1; (x=x-1); {INV} // remove black case 2; (x=x-1); {INV} // remove black } {INV} {INV   x+y>1  (odd(w):odd(y))  (even(w):even(y)  x+y1)  x+y1  (odd(w):odd(y))  (even(w):even(y)  x+y=1) }

32 Lösung 6.5 Vollständige Verifikation
// Vorbedingung P(V): a>0  b0 x = a; y = b; z = 1; // x=a  y=b  z=1  x>0  b0 { INV: zxy=ab  y0 } while y > 0 { {INV  y>0  (z*x/x)*xy=ab  y>0 } if odd(y) then z = z*x; { odd(y) : z/x*xy=ab  y>0  z*xy-1=ab  y>0 } // else { even(y): z*xy =ab  y>0 }  { odd(y) : z*x(2(y div 2)+1)-1=ab  2(y div 2)+1>0  even(y): z*x2(y div 2) =ab  2(y div 2) >0 } y = y div 2; // Ganzzahldivision { odd(y) : z*x(2y+1)-1=ab  2y+1>0  z*x2y=ab  2y0  even(y): z*x2y =ab  2y >0  z*x2y=ab  2y>0 } x = x*x; { (odd(y): z*xy=ab  2y0)  (even(y): z*xy=ab  2y>0)  z*xy=ab  (odd(y):2y0)  (even(y):2y0)  z*xy=ab  y0 } } { INV  (y0)  (z*xy=a*b)  (y=0)  z*x0=ab = Q(V) }

33 Lösung 6.6.1 Schranken n3 g(n) = 5n3 + n + 1000 für alle n
Behauptung: Die Laufzeit von g(n) ist O(n3), also f(n)=n3, Beweis: Es muss Konstanten c und n0 geben, so dass gilt 5n3 + n  c n2, für alle n > n0 setze z.B. n0=10 und c=6, dann gilt: n3 > n gilt für n11, n   5n3 + n  5n n  5n3+n3 = 6n3 z.B.: 5n3 n3

34 Lösung Schranken Sie haben zusätzlich einen Algorithmus mit O(2n) Aufwand. Vergleichen Sie diesen Algorithmus mit dem Algorithmus aus 1. Welches ist der „schnellere“ Algorithmus ? Für kleine n (n<14) ist der Algorithmus mit O(2n) der schnellere, ansonsten der mit g(n) = 5n3 + n Begründen Sie Ihre Antwort quantitativ 2n

35 Lösung O-Notation gegeben seien folgende Werte: 1,3,4,8,9,15,17,25,28,29,31,36,41,45 17 31 28 41 45 8 9 3 4 29 25 15 1 36 Anzahl Aufrufe 1 2 3 4 node: array[1..14] of knoten; // Normalerweise wird der Speicher dynamisch allokiert node[1].value = 17; node[12].value = 41; node[1].left = &node[2]; node[12].left = &node[13]; node[1].right = &node[3]; node[12].right = &node[14]; node[2].value = 8; node[13].value = 36; node[2].left = &node[4]; node[13].left = nil; node[2].right = &node[5]; node[13].right = nil; node[3].value = 31; node[14].value = 45; node[3].left = &node[6]; node[14].left = nil; node[3].right = &node[7]; node[14].right = nil; ...

36 Lösung O-Notation Formulieren Sie einen iterativen Algorithmus mit O(n4) for (i=1 to n) { for (j=1 to n) { for (k=1 to n) { for (l=1 to k) { // Statements } } } } Aufwand: nn(n(n+1))/2 = n2(n2/2+n/2)=n4/2 + n3/2  Laufzeit O(n4)

37 Lösung 6.8 Aufwand do (list:*liste) { i:integer; for i=1 to no_of_elements(list) { remove_last_element(list); do (list) // call list with one element less } Zeitbedarf: Tn = n Tn-1 (Tn = Zeitbedarf für n, n2, T1=1) Tn =nTn-1 = n  (n-1)  Tn-2 = n  (n-1)  (n-2) Tn-3 = ... = 1 2 3 ... n  Tn = n!  Laufzeit O(n!) (wirklich viel! Algorithmus inpraktikabel) for i=1 to n { j=1; while (j<i) { j = j+2; } } Zeitbedarf: Betrachte Anzahl der Zuweisungen für alle i<n: n/2 + n/2 = 2  (n/2  (n/2+1))/2 - 1 = n/2  (n/2 +1) -1 = n2/4 + n/2 - 1  Laufzeit O(n2)

38 Lösung 7.1 Syntax und Semantik
Geben Sie Beispiele für lexikalische Strukturelemente: Bezeichner, Literale, Schlüsselworte, ... syntaktische Strukturelemente: Alle Elemente aus „Algorithmenentwurf“ der Programmiersprache C++ an Formulieren Sie die Semantik einer while-Schleife: siehe Schleief mit vorausgehender Prüfung eines Unterprogrammaufrufes siehe „Block“ recherchieren Sie nach weiteren Programmiersprachen Algol 60, Algol 68, Forth, PL/1, Fortran, Smalltalk, Simula 67, SETL, Snobol, Cobol, Pascal, Turbo-Pascal, DELPHI, Concurrent Pascal, SPSS, CLU, Alphard, SDL, Oberon, Oberon-2, Object Cobol, Ada, APL, CDL 2, Ada 95, Mesa, Modula-2, Chill, BCPL, C, Objective-C, Modula-3, C++, ,Assemblersprachen, Prolog, Prolog II, Eiffel, Beta, Opal, CS,P Hope, Miranda, Lisp, Common Lisp, PHP, Perl, Scheme, Haskell, Standard ML, Clipper, Basic, Visual Basic, Java, JavaScript, SQL, Late,x Postscript, HTML, UML, Z, Act-One, VDM, awk, LEX, YACC, Maschinensprachen, RPG, Occam, Linda, T Lotus, OPS-5, ...  werden Sie zu Meta-Programmierern und -Programiererinnen

39 Lösung 7.2 Reguläre Ausdrücke
Geben Sie reguläre Ausdrücke für Integerliterale: [1-9][0-9]* bzw. (1|2|3|4|5|6|7|8|9)(o|1|2|3|4|5|6|7|8|9)* while, function, if while usw. bzw. ‘w‘‘h‘‘i‘‘l‘‘e‘ usw. Geben Sie einen regulären Ausdruck zu folgenden Sprachen an: Alle Folgen von Großbuchstaben, die jeden Vokal genau einmal in alphabetischer Reihenfolge enthält: KONS = [B-DF-HJ-NP-TV-Z] {KONS}A{KONS}E{KONS}I{KONS}O{KONS}U{KONS} Alle Dualziffernfolgen, die „001“ nicht als Teilfolge enthalten (0?1+)*0* Welche Sprachen sind durch die folgenden regulären Ausdrücke definiert ? (0?|1*)* alle Binärzahlen, denn (0|1) ist Teilmenge von (0?|1*) (0|1)*0(0|1)(0|1) alle Binärzahlfolgen, bei denen die drittletzte Ziffer existiert und 0 ist /\*((\*[^/])|[\*])*\*/ „wohlgeformte“ C-Kommentare


Herunterladen ppt "Üungen."

Ähnliche Präsentationen


Google-Anzeigen