Leksery-zadania
Wykorzystaj lexa lub flexa do zbudowania następujących analizatorów leksykalnych. Jeśli analizator ma przeszukiwać tekst (umieszczony w pliku !), to po zakończeniu jego działania ma pozostać jeden poprawiony plik.
Zadanie 1. Lekser wyszukujący i usuwający w tekście powtórzenia słów, np.
ciąg jeden jeden zastępowany jest słowem jeden.
Zadanie 2. Lekser wyszukujący w tekście zapisy daty w formacie dd-mm-yy i zamieniający je na format dd-miesiąc-rr.
Zadanie 3. Lekser poprawiający w tekście błąd typu jutro,pojutrze.
Zadanie 4. Lekser analizujący tautologie jednej zmiennej zdaniowej p postaci p->p->..p z nawiasami zagnieżdżanymi do lewej i do prawej.
Zadanie 5. Lekser analizujący tautologie postaci p->q->..r z nawiasami zagnieżdżanymi do prawej.
Zadanie 6. Lekser wyszukujący zapisów liczb całkowitych i obliczający ich średnią arytmetyczną.
Zadanie 7. Lekser wyszukujący w tekście napisów typu sin , cos 2.23 i zastępujący je wartością (tutaj 0).
Zadanie 8. Lekser poprawiający w tekście błąd ortograficzny typu niebyła (nie z czasownikami).
Zadanie 9. Lekser wyszukujący w tekście wszystkie nazwy państw i zamieniający ich pierwszą literę na wielką.
Zadanie 10. Lekser analizujący wyrażenia w notacji beznawiasowej postaci r+...+s, gdzie r i s są zerem lub zmienną i zmazujący zera w takim
wyrażeniu.
Zadanie 11. Lekser analizujący wyrażenia w notacji beznawiasowej postaci r*...*s, gdzie r i s są jedynką lub zmienną i zmazujący jedynki w takim wyrażeniu.
Zadanie 12. Lekser wyszukujący w tekście i zliczający te słowa nad alfabetem {a,b}, w których ilość wystąpień liter a jest parzysta natomiast ilość
wystąpień b daje resztę 1 przy dzieleniu przez trzy.
Zadanie 13. Lekser sprawdzający w tekście czy zdanie zaczyna się wielką literą i poprawiający taki błąd.
Zadanie 14. Lekser sprawdzający w tekście czy zostały prawidłowo użyte znaki interpunkcyjne i poprawiający ewentualne błędy; n.p. ...jutro .Może zamieni na ...jutro. Może
Zadanie 15. Lekser wyszukujący w tekście zapisy godzin w formacie amerykańskim i zamieniający je na zapisy w formacie europejskim.
Zadanie 16. Lekser obliczający wartość wyrażenia będącego sumą iloczynów liczb całkowitych np. 2*4+3*-7*3=-51.
Zadanie 17. Napisz program, który wyszukuje w kodzie źródłowym
komentarze w języku ADA i usuwa je (komentarz od – do znaku końca linii).
Zadanie 18. Napisz program, który na podstawie pliku, w którym w pierwszej linii podane są przedziały punktów w postaci 35-45-55-66-65 a w następnych imiona, nazwiska i ilość punktów uzyskanych przez studentów generuje listę studentów, którzy zdali egzamin wraz z uzyskaną oceną.
Zadanie 19. Napisz program, który na podstawie pliku z wynikami studentów z różnych egzaminów generuje listę studentów wraz ze średnią uzyskaną z wybranych przedmiotów (TO, LM i AL). Przykładowy plik:
J.Kowalski - TO:3.0 LM:3.5
M.Madziar - LM:4.5 TO:3.5 AL.:3.0
Jeśli brak pewnych danych program powinien umieszczać odpowiedni komunikat.