LEX Zadanie 1.(średnie) -------------------------------------------------------------------------- Plik wejściowy zawiera ciąg wierszy, z których każdy składa się z: nazwiska osoby, niepustego ciągu spacji lub tabulacji i listy oddzielonych od siebie średnikiem ; nazw towarów, po których w nawiasie znajduje się ich cena (liczba rzeczywista), bądź znak -, jeśli cena nie jest znana. Spacje są swobodnie rozmieszczone na liście zakupów. Należy usunąć wszystkie spacje na liście zakupów, a po nazwisku umieścić dokładnie jeden dwukropek i trzy spacje. Nazwisko zaczyna sie z wielkiej litery, nazwa towaru jest pisana z małej litery. Na przykład: Iksinski chleb ( - ) ; mleko ( 3.5); ser (8.24) ; Ygrekowska mydlo ( 5.0 ); powidlo(-) ; powinniśmy uzyskać: Iksinski: chleb(-);mleko(3.5);ser(8.24); Ygrekowska: mydlo(5.0);powidlo(-); Zadanie 2.(trudne) ----------------------------------------------------------------------------- Napisz program w języku Lex służący do sprawdzenia, czy linia tekstu zawiera napis postaci 0n1n (0 do potęgi n i 1 do potęgi n),n >= 0. Jeśli tak, to należy dołączyć na końcu linii napis OK poprzedzony spacją, w przeciwnym wypadku - napis ERROR. Poprawne ciągi zawierają wyłącznie zera i jedynki oraz znak nowej linii (bez spacji i tabulacji). Na przykład dla wejścia: 010101 000111 00 11 01 01 powinniśmy uzyskać: 010101 Error 000111 OK 00 11 Error OK 01 01 Error Zadanie 3.(łatwe) ------------------------------------------------------------------------ Napisz w język Lex program, który zamieni każdy znak oprócz litery i nowej linii znakiem minusa -. Dla wejścia: J.M. Kowal 60-965 Poznan, Poland tel.: 0616653724 e-mail: kowal@put.poznan.pl powinniśmy uzyskać: J-M--Kowal -------Poznan--Poland tel------------- e-mail--kowal-put-poznan-pl Zadanie 4. (łatwe) -------------------------------------------- Napisz w języku Lex program, który wczyta wiersze wejściowe, usunie z nich początkowe spacje i w tej postaci przepisze je na wyjście. Dla wejścia: 12345 abc ; 345 abc ; :-) :-( ;-) :-) :-( Powinnismy uzyskać: 12345 abc ; 345 abc ; :-) :-( ;-) :-) :-( Zadanie 4a. (średnie) -------------------------------------------- Napisz w języku Lex program, który wczyta i przepisze wiersze wejściowe zawierające ciągi "faces" (oddzielonych od siebie dowolną liczbą spacji) zakończone średnikiem ;, a następnie ustali "średni humor" w każdej linii oraz zaznaczy go, po spacji, gwiazdce * i spacji, za pomocą symbolu "face". Należy przyjąć następujące "miary humoru": :-) 1 :-| 0 :-( -1 Dla wejścia: :-) :-) :-| ; :-( :-) ; :-) :-( :-| ; :-) :-) ; Powinniśmy uzyskać: :-) :-) :-| * :-) :-( :-) * :-| :-) :-( :-| * :-| :-) :-) * :-)