Logia11 – rok szkolny 2010/2011 – etap - II
Zad. 1. (domki) Firma architektoniczna Domlandia zaprojektowała osiedle domków stojących w jednym rzędzie zgodnie z następującymi zasadami:
- każdy domek składa się z części mieszkalnej zbudowanej na bazie kwadratu oraz spadzistego dachu w postaci trapezu równoramiennego (górna podstawa jest dwa razy krótsza od dolnej),
- część mieszkalna ma drzwi i dwa okna, ich położenie i wymiary wynikają z pomocniczego rysunku powyżej,
- ostatni domek (po prawej) ma szerokość równą połowie szerokości pierwszego domku (po lewej),
- różnica szerokości sąsiednich domków jest stała w danym osiedlu, np. przy trzech domkach środkowy ma szerokość równą 3 szerokości lewego domku.
Napisz procedurę DOMKI :n rysującą osiedle domków według projektu Domlandii. Parametr :n określa liczbę domków i może przyjmować wartości od 2 do 20. Szerokość rysunku wynosi 450. Do kolorowania należy użyć czterech dowolnych kolorów za wyjątkiem czarnego, którym są rysowane krawędzie.Rysunki poniżej przedstawiają efekt DOMKI 3 i DOMKI 4
Zad. 2. (Lotnisko) W porcie lotniczym, na każdej tabliczce informującej o odlocie samolotu, jest pokazywana informacja o docelowym lotnisku i godzinie odlotu. Nazwa portu lotniczego jest kodowana w postaci trzyliterowego skrótu złożonego z wielkich liter alfabetu łacińskiego, np. WAW oznacza Warszawę, AMS - Amsterdam, BCN - Barcelonę. Godzina odlotu jest reprezentowana zawsze przez cztery cyfry, np. 0905 oznacza godzinę 9:05. Litery i cyfry można zmieniać cyklicznie (tzn. za literą Z występuje litera A, a po 9 jest 0) o jedną pozycję "do przodu" lub "do tyłu".
Zdefiniuj funkcję ILEZMIAN :lot1 :lot2, której danymi są siedmioznakowe słowa (pierwsze trzy znaki oznaczają kod portu, następne cztery godzinę odlotu), a wynikiem minimalna liczba zmian znaków, jaką należy wykonać, aby zmienić wyświetlaną informację z jednego lotu na drugi.
- Wynikiem ILEZMIAN "WAW1230 "WAW1301 jest 5.
- Wynikiem ILEZMIAN "WAW1230 "AMS1240 jest 21.
Zad. 3. (Robot) Robot Gerard potrafi wykonać tylko cztery polecenia, nakazujące mu przejść w jedną z czterech stron świata.
Napisz funkcję ROBOT :trasa, której wartością jest liczba punktów trasy, w których robot znalazł się więcej niż jeden raz. Parametr :trasa jest słowem opisującym sekwencję poleceń, w którym mogą występować jedynie litery N, S, W oraz E. Litery te oznaczają odpowiednio polecenie ruchu w kierunku północnym, południowym, zachodnim oraz wschodnim. Zakładamy, że trasa jest tak ułożona, że każdy z jej odcinków robot przechodzi tylko raz. Gerard może wykonać maksymalnie 500 ruchów.
- Wynikiem ROBOT "NESW jest 1.
- Wynikiem ROBOT "NNESWWSEE jest 2.