Logia-1 – rok szkolny 1998/1999 – etap - III
Zad. 1. Zdefiniuj funkcję ZAMIANA :ls, której parametrem jest lista słów składających się z małych liter alfabetu łacińskiego (bez polskich znaków). Wartością funkcji będzie lista składająca się z jedno- lub dwuelementowych list, powstałych z poszczególnych słów listy będącej parametrem, w następujący sposób:
- jeśli w słowie nie będzie samogłosek, to należy wziąć jednoelementową listę zawierającą liczbę 0,
- jeżeli w słowie będzie co najmniej jedna samogłoska, to należy wziąć dwuelementową listę zawierającą: samogłoskę najczęściej występującą w danym słowie i liczbę jej wystąpień; jeżeli w danym słowie kilka samogłosek będzie spełniało ten warunek, to należy wziąć pierwszą z nich.
Oto przykładowe wyniki:
- ZAMIANA [kalinka malinka] - powinno dać wynik [[a 2] [a 2]],
- ZAMIANA [procedura w logo] - powinno dać wynik [[o 1] [0] [o 2]],
- ZAMIANA [abrakadabra hokus pokus] - powinno dać wynik [[a 5] [o 1] [o 1]].
Zad. 2. Zdefiniuj funkcję LICZNP :liczba, której wartością jest lista liczbowa, zawierająca zliczenie kolejnych nieparzystych cyfr parametru będącego dowolną liczbą naturalną. Każdy element listy wynikowej mówi, ile kolejnych ("jedna za drugą") cyfr nieparzystych, ograniczonych cyframi parzystymi, początkiem, bądź końcem liczby, napotykamy w zapisie dziesiętnym parametru :liczba. Oto przykładowe wyniki:
- LICZNP 1233501 - powinno dać w wyniku [1 3 1],
- LICZNP 90 - powinno dać w wyniku [1],
- LICZNP 2200 - powinno dać w wyniku listę pustą, czyli [].
Zad. 3. Napisz procedurę GLIZDAWCE :ls, która rysuje odpowiedni rysunek wężyków. Parametrem procedury jest lista składająca się ze słów złożonych z małych i wielkich liter alfabetu łacińskiego (bez polskich znaków). Przy tym:
- liczba wężyków odpowiada liczbie słów w parametrze :ls,
- każdy wężyk składa się z tylu sześciokątów, ile jest liter w danym słowie,
- litery są reprezentowane przez sześciokąty, które można wpisać w kwadrat - tak, jak to widać na rysunku:
- sześciokąt odpowiadający nieparzystym (pierwszej, trzeciej, piątej,...) literom w danym słowie jest obrócony w lewo, a sześciokąt odpowiadający parzystym literom jest obrócony w prawo,
- wszystkie sześciokąty odpowiadające spółgłoskom mają zamalowane wnętrza,
- wielkie litery są reprezentowane przez sześciokąty dwa razy większe, niż te dla małych liter,
- rysunek jest możliwie duży i umieszczony na środku ekranu.
Przykładowo GLIZDAWCE [Warszawski Konkurs Informatyczny] - powinno narysować następujący rysunek: