Narysować grafy dla automatów determistycznych skończonych.

0

Witam,

Czy mógłby ktoś udzielić wskazówek jak narysować taki graf, mam 2 zadania do zrobienia i nie wiem w jaki sposób to zacząć:

Narysować grafy dla zupełnych deterministycznych automatów skończonych
akceptujących następujące języki nad alfabetem E={0,1}.

a.)
zbiór wszystkich słów, które nie zawierają ciągu symboli „0101”

b.)
zbiór wszystkich słów, w których trzeci symbol od końca jest zerem

0

dzięki, jeszcze potrzebowałbym to:
Podac wyrażenia regularne definiujące porawne łańcuchy reprezentujące w języku C, deklarację jednej zmiennej lub kilku kolejnych zmiennych typu całkowitego.

1

No i gdzie masz problem? Wypisz sobie poprawne deklaracje:

int x;
int x,y,z;
int   x,   , y,  z;

I teraz spróbuj to generalizować regexpem. Widać że zawsze zaczynasz od int oraz spacji/tabulator, potem masz indentyfikatory przedzielone przecinkami a na koniec średnik. Identyfikator w C nie może zaczynać sie liczbą, więc sam identyfikator to jakieś [a-zA-Z][a-zA-Z0-9]*. Potrzebny nam co najmniej jeden. Można więc tak:

int\s+([a-zA-Z][a-zA-Z0-9]*\s*,\s*)*[a-zA-Z][a-zA-Z0-9]\s*;

gdzie przez \s oznaczam spacje i tabulatory. Da się na pewno ładniej i krócej ;)
Dla czytelności:

identyfikator = \s*[a-zA-Z][a-zA-Z0-9]*\s*
lista = (identyfikator,)*
ostatni = identyfikator;
deklaracja = int lista ostatni

1 użytkowników online, w tym zalogowanych: 0, gości: 1