PRM, semestr letni 2002
ćwiczenie 13
przykładowy konspekt: problemy rekurencyjne cd.
Rozważmy proste wyrażenia regularne, będące ciągami znaków alfanumerycznych,
w których znak '*' oznacza ciąg znaków
o dowolnej długości (również o długości 0), zaś '?' oznacza dowolny znak.
Pozostałe znaki oznaczają same siebie. Wyraz pasuje do wyrażenia
regularnego, jeśli w miejsce znaków specjalnych '?' '*' da się podstawić
takie znaki lub ciągi znaków, że uzyska się ten właśnie wyraz.
Przykładowo, do wyrażenia a*a*a pasują wyrazy
aaa
alalala
anakonda
natomiast nie pasują wyrazy
a
bababa
ababab
Napisać program, który przyjmuje jako argument wywołania wyrażenie
regularne i działa jak filtr: na standardowe wyjście przepuszcza jedynie te
wyrazy ze standardowego wejścia, które pasują do wzorca podanego jako
argument wywołania. Wskazówka: skorzystać z rekurencji. Można się posłużyć
załączonym plikiem .
Powodzenia!