Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Ähnliche Präsentationen


Präsentation zum Thema: "Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei."—  Präsentation transkript:

1 Üungen

2 Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei einer Codierung von 8 bis für jedes Symbol) 4.Redundanz 5.relative Redundanz der deutschen Sprache (siehe Tabelle) Buch stabe Häufigkeit in % Buchs tabe Häufigkei t in% Buch stabe Häufigkeit in % a6,51j0,27s7,27 b1,89k1,21t6,15 c3,06l3,44u4,35 d5,08m2,53v0,67 e17,40n9,78w1,89 f1,66o2,51x0,03 g3,01p0,79y0,04 h4,76q0,02z1,13 i7,55r7,00

3 Übung 2.2Informations-Kennwerte 1.Wieviele Fragen benötigen Sie beim „Zahlenraten“ 1.um eine aus 100 Zahlen zu erraten 2.um eine aus n Zahlen zu erraten 2.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 1.Berechnen Sie die Entropie der Quelle 2.Wie groß ist der Informationsgehalt der Nachricht „abcd“ 3.Wie groß ist der mittlere Informationsgehalt der Nachricht „abcd“ 4.Wie groß ist der mittlere Informationsgehalt einer Nachricht mit 1000 Zeichen 5.Wie groß ist der mittlere Informationsgehalt einer Nachricht mit 1000 Zeichen unter der Annahme, dass alle Zeichen gleich wahrscheinlich sind. 3.Berechnen Sie die Redundanz der englischen Sprache 1.Gehen Sie davon aus, dass jedes Zeichen mit 8 bit codiert wird. 2.Geben Sie eine Codierung an, die weniger redundant ist.

4 Übung 2.3Huffmann / Hamming 1.Konstruieren Sie einen Huffmann-Code für die deutsche Sprache (Häufigkeitstabelle wie bei Übung 2.1) 1.Berechnen Sie die Redundanz Ihres Codes 2.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 3.Welcher Code ist redundanter ? 2.Bestimmen Sie die Hamming-Distanz der nach der Hamming-Methode kodierten Codewörter. 1.Betrachten Sie dabei zunächst nur die Codewörter für 0000 bis Welche Bitfehler sind erkennbar ? 3.Welche Bitfehler sind korrigierbar ? 3.Codieren Sie „1000“ mit Hilfe der Hamming-Methode 1.Kippen sie jedes Bit je einmal und bestimmen sie das gekippte Bit 2.Was passiert, wenn zwei Bits gekippt sind - verdeutlichen Sie dies anhand eines Beispiels.

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

6 Übung 3.2Gebrochene Zahlen 1.Konvertieren Sie 0,1 mit der Restwertmethode 2.Addieren Sie paarweise alle Zahlen von -3 bis +4 (also 28 Additionen), verwenden Sie dabei die Darstellung negativer Zahlen im Zweierkomplement. 3.(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. 4.Stellen Sie  1.als IEEE 754 float-Zahl dar 2.als IEEE 754 double-Zahl dar 5.Geben Sie im Binärsystem und Dezimalsystem 1.den größt- bzw. kleinst-möglichen positiven bzw. negativen Wert einer float-Zahl an

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

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

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

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

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

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

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

14 Übung 5.5Acht 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.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des „Busy Beaver“-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tebelle. 2.Versuchen Sie sich selbst am Turing Simulator der IGS (Link auf meiner Homepage) 3.Entwerfen Sie eine Turing-Maschine zur Multiplikation zweier natürlicher Zahlen.

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

17 Übung 6.3Denksportaufgabe 1.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. 1.Welche Farbe hat die letzte Kugel 2.Welche Aussage - die einen Hinweis auf die Antwort gibt - gilt vor, in und nach der Schleife (Invariante) 3.Terminiert die Schleife ? Begründen Sie ihre Antwort.   

18 Übung 6.4Invariante 1.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. 1.Beschreiben Sie das Verfahren als Algorithmus 1.Das „Nehmen“ dürfen Sie als Block voraussetzen. 1.Entwerfen Sie den Kopf dieses Blocks, 2.Beschreiben Sie seine Parameter 3.beschreiben Sie sein Verhalten in Form einer Vor- und Nachbedingung 2.Bestimmen Sie die Invariante 3.Beweisen Sie die Korrektheit Ihrer Nachbedingung

19 Übung 6.5Vollständige Verifikation 1.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; } 1.Was ist die Nachbedingung dieses Algorithmus 2.Bestimmen die die Schleifeninvariante 3.Beweisen Sie die Korrektheit de Legendre Algorithmus

20 Ü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 Sie, dass ihre Schranke tatsächlich eine obere Schranke ist. c)Konstruieren Sie einen Graphen fü die beiden Funktionen g(n) O(g(n) so, dass der Schnittpunkt deutlich wird. d)Geben Sie eine untere Schranke an 2.Sie haben zusätzlich einen Algorithmus mit O(2 n ) Aufwand. Vergleichen Sie diesen Algorithmus mit dem Algorithmus aus 1. a)Welches ist der „schnellere“ Algorithmus ? b)Begünden Sie Ihre Antwort quantitativ

21 Übung 6.7O-Notation 1.gegeben seien folgende Werte: 1,3,4,8,9,15,17,25,28,29,31,36,41,45 a)Zeichnen Sie einen sortierten Baum minimaler Tiefe, der mit den gegeben Werten belegt ist. b)Schreiben Sie einen Algorithmus, der den Baum aufspannt (als Wiederholungs-Übung von Zeigern) c)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 2.Formulieren Sie einen iterativen Algorithmus mit O(n 4 ) Geben Sie eine kurze rechnerische Begründung für Ihre Antwort

22 Übung 6.8Aufwand 1.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 } a)Geben Sie den Aufwand an. b)Belegen Sie Ihre Antwort rechnerisch 2.Gegeben ist folgender Algorithmus for i=1 to n { j=1; while (j

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

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

25 Lösung 6.1.1Turing-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 H H State

26 Lösung 6.1.2Turing-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.3Turing-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.3Turing-Maschine Idee: 1.Kopiere alles vor dem = (den 2.Multiplikator) ans Ende 2.Mache dies für jede 1 vor dem X (den 1.Multiplikator) Siehe Anhang C SucheStart0 0R 1SucheZahl20R SucheStartXEndZustandXL SucheZahl21 1R XZahl2StartXR 1GeheEnde0R Zahl2Start=Mach1Aus0=L GeheEnde1 1R =SucheNull=R 1 1R 0HolNaechsten11L 1 1L = =L 0Zahl2Start0R Mach1Aus00 1L XZahl1StartXL 1 1L 0SucheStart0R

29 Lösung 6.2 Einfache Verifikation Gegeben ist folgender Algorithmus {a 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.3Denksportaufgabe 1.Denksportaufgabe 1. 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ß 2. 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. 3.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.4Invariante {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.5Vollstä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  x y =a b  y  0 } while y > 0 { {INV  y>0  (z*x/x)*x y =a b  y>0 } if odd(y) then z = z*x; { odd(y) : z/x*x y =a b  y>0  z*x y-1 =a b  y>0 } // else { even(y): z*x y =a b  y>0 }  { odd(y) : z*x (2(y div 2)+1)-1 =a b  2(y div 2)+1>0  even(y): z*x 2(y div 2) =a b  2(y div 2) >0 } y = y div 2; // Ganzzahldivision { odd(y) : z*x (2y+1)-1 =a b  2y+1>0  z*x 2y =a b  2y  0  even(y): z*x 2y =a b  2y >0  z*x 2y =a b  2y>0 } x = x*x; { (odd(y): z*x y =a b  2y  0)  (even(y): z*x y =a b  2y>0)  z*x y =a b  (odd(y):2y  0)  (even(y):2y  0)  z*x y =a b  y  0 } } { INV  (y  0)  (z*x y =a*b)  (y=0)  z*x 0 =a b = Q(V) }

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

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

35 Lösung 6.7.1O-Notation 1.gegeben seien folgende Werte: 1,3,4,8,9,15,17,25,28,29,31,36,41, 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;... Anzahl Aufrufe

36 Lösung 6.7.2O-Notation 2.Formulieren Sie einen iterativen Algorithmus mit O(n 4 ) 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 = n 2  (n 2 /2+n/2)=  n 4 /2 + n 3 /2  Laufzeit O(n 4 )

37 Lösung 6.8Aufwand 1.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: T n = n T n-1 (T n = Zeitbedarf für n, n  2, T 1 =1) T n =n  T n-1 = n  (n-1)  T n-2 = n  (n-1)  (n-2)  T n-3 =... = 1  2  3 ...  n  T n = n!  Laufzeit O(n!) (wirklich viel! Algorithmus inpraktikabel) 2.for i=1 to n { j=1; while (j

38 Lösung 7.1Syntax und Semantik 1.Geben Sie Beispiele für a)lexikalische Strukturelemente:Bezeichner, Literale, Schlüsselworte,... b)syntaktische Strukturelemente:Alle Elemente aus „Algorithmenentwurf“ der Programmiersprache C++ an 2.Formulieren Sie die Semantik a)einer while-Schleife: siehe Schleief mit vorausgehender Prüfung b)eines Unterprogrammaufrufessiehe „Block“ 1.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.2Reguläre Ausdrücke 1.Geben Sie reguläre Ausdrücke für a)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)* b)while, function, ifwhile usw. bzw. ‘w‘‘h‘‘i‘‘l‘‘e‘ usw. 2.Geben Sie einen regulären Ausdruck zu folgenden Sprachen an: a)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} b)Alle Dualziffernfolgen, die „001“ nicht als Teilfolge enthalten (0?1+)*0* 2.Welche Sprachen sind durch die folgenden regulären Ausdrücke definiert ? a)(0?|1*)*alle Binärzahlen, denn (0|1) ist Teilmenge von (0?|1*) b)(0|1)*0(0|1)(0|1)alle Binärzahlfolgen, bei denen die drittletzte Ziffer existiert und 0 ist c)/\*((\*[^/])|[\*])*\*/„wohlgeformte“ C-Kommentare


Herunterladen ppt "Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei."

Ähnliche Präsentationen


Google-Anzeigen