s n h m r u
i

Übungen

Klicke auf eine Aufgabenüberschrift, um die Aufgabe zu öffnen!

Aufgabe 1 - Akzeptoranalyse

Welche Sprachen werden durch die abgebildeten Zustandsgraphen definiert? Finde erst einige Beispielwörter mit der angegebenen Länge, beschreibe dann die Sprache umgangssprachlich und gib zuletzt den passenden regulären Ausdruck ein!

Nr. Zustandsgraph Beispielwörter regulärer Ausdruck
A Wortlänge 2:
Wortlänge 4:
Wortlänge 6:
Wortlänge 8:
B Wortlänge 2:
Wortlänge 4:
Wortlänge 6:
Wortlänge 8:
C Wortlänge 2:
Wortlänge 4:
Wortlänge 6:
Wortlänge 8:
D Wortlänge 2:
Wortlänge 4:
Wortlänge 6:
Wortlänge 8:
Aufgabe 2 - Gleitkommazahlen in Python

Python verwendet bei Gleitkommazahlen einen Punkt als Dezimaltrennzeichen, zum Beispiel in 1.0 oder 3.14.

Wir betrachten hier eine vereinfachte Sprache gemäß folgender Syntaxdiagramme: Erlaubt sind nur die Ziffern 0, 1 und 2, Vorzeichen und Exponenten werden nicht berücksichtigt. Vor und nach dem Punkt jeweils mindestens eine Ziffer stehen.

Kommazahl:

Syntaxdiagramm: Ganzzahlteil, Punkt, Ganzzahlteil

Ganzzahlteil:

Syntaxdiagramm: mindestens eine Ziffer

Ziffer:

Syntaxdiagramm: 0, 1 oder 2
  1. Entscheide anhand der Syntaxdiagramme, welche der folgenden Wörter zur Sprache gehören. Begründe deine Entscheidungen: 121.011, 0.0, 12, .2, 21., 1.0.2.
  2. Untersuche mit dem untenstehenden Akzeptor deine Entscheidungen aus Teilaufgabe a. Beschreibe, welche Bedeutung Z4 hat.
  3. In Python darf der Ziffernteil vor oder nach dem Punkt fehlen: .2 steht für 0.2 und 21. für 21.0. Erweitere den Akzeptor aus Teilaufgabe b so, dass er auch diese beiden Schreibweisen akzeptiert. Mindestens eine Ziffer und genau ein Punkt müssen weiterhin vorkommen; ein einzelner Punkt darf nicht akzeptiert werden.
Aufgabe 3 - Muh-Laute

Erstelle einen Akzeptor, der Muh-Laute gemäß dem folgenden Syntaxdiagramm erkennt. Formuliere hier zunächst den passenden regulären Ausdruck und teste deinen Akzeptor am Schluss mit den aufgeführten Beispielen.

Aufgabe 4 - Bitfolgen mit 001

Erstelle einen Akzeptor, der Wörter erkennt, in denen die Bitfolge 001 vorkommt. Formuliere hier zunächst den zum Syntaxdiagramm passenden regulären Ausdruck und teste deinen Akzeptor am Schluss mit den aufgeführten Beispielen.

Aufgabe 5 - Spezialfälle

Erstelle Akzeptoren für die Sprache über dem Alphabet {a,b}, die wie folgt arbeiten:

  1. Nichts wird akzeptiert.
  2. Nur das leere Wort (Länge 0) wird akzeptiert.
  3. Alle Wörter werden akzeptiert.
Aufgabe 6 - Automatentafel

Die folgende Automatentafel gehört zu einem Akzeptor mit Z = {Z0, Z1, Z2, Z3, Z4} und Ze = {Z3}. Erstelle in der Simulation den Akzeptor, teste ihn und gib im Anschluss die Sprache des Akzeptors als regulären Ausdruck an! Regulärer Ausdruck:

Aufgabe 7 - Prüfbitkontrolle

Bei der Datenübertragung werden häufig Prüfbits eingesetzt. Ein einfaches Verfahren hierbei ist das Paritätsbit. Bei diesem Verfahren wird nach einer bestimmten Zahl von Datenbits ein Bit angehängt, um z.B. die Anzahl der Einsen gerade zu machen.

In dieser Aufgabe soll nach drei Datenbits immer viertes Bit als Prüfbit angehängt sein. An die Bitfolge "001" (ungerade Anzahl 1er) würde eine "1" angehängt und an die Bitfolge "110" (gerade Anzahl 1-er) eine "0".

Beispiele: 0000, 1100, 11110011, 101000111001.

Gegenbeispiele: 1110, 0001, 111100001110, 110.

Erstelle einen Akzeptor, der eine Bitfolge einliest und nur dann akzeptiert, wenn alle Prüfbits korrekt sind (und die Folge mit einem Prüfbit endet).

Aufgabe 8 - E-Mail-Adressen (schon wieder)

Erstelle einen Akzeptor für E-Mail-Adressen. Die Adressen sollen nach folgendem regulären Ausdruck aufgebaut sein:

b+(.b+)*@b+.bbb?

Aufgabe 9 - Vereinfachte Turtle-Anweisungen

Ein Akzeptor soll vereinfachte Turtle-Anweisungen erkennen. Erlaubt sind die Befehle fd und bk, gefolgt von mindestens einem Trennzeichen und einer ganzen Zahl. Die Zahl darf ein Minuszeichen enthalten und besteht aus mindestens einer der Ziffern 0, 1 und 2.

Damit die Trennzeichen eindeutig sichtbar sind, verwenden wir anstelle von Leerzeichen das Gleichheitszeichen =. Die folgenden Syntaxdiagramme legen die Sprache fest:

Turtleanweisung:

Syntaxdiagramm: fd oder bk, dann WS und Zahl

WS:

Syntaxdiagramm: mindestens ein Gleichheitszeichen

Zahl:

Syntaxdiagramm: optionales Minuszeichen, dann mindestens eine Ziffer

Ziffer:

Syntaxdiagramm: 0, 1 oder 2
  1. Gib ein geeignetes Alphabet an. Finde jeweils drei gültige und drei ungültige Anweisungen und begründe deine Auswahl anhand der Syntaxdiagramme.
  2. Entwickle im Simulator einen Akzeptor, der genau diese Sprache erkennt. Verwende die einzelnen Zeichen der Anweisungen als Eingabezeichen.
  3. Teste deinen Akzeptor mit deinen Beispielen aus a und mit fd=12, bk==-20, fd12, fd=, bk=-, fd=1=2 und fd==--1. Halte jeweils das erwartete und das beobachtete Ergebnis fest. Begründe anhand deines Akzeptors, weshalb das Trennzeichen mindestens einmal, das Minuszeichen höchstens einmal und eine Ziffer mindestens einmal vorkommen muss.

Suche

v
100.130.2.2.4.4 Übungen
Kopieren durch Anklicken

Rückmeldung geben