Zadania drugiego etapu Konkursu Informatycznego dla gimnazjalistów LOGIA 10

Zadanie 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ą ¾ 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



Zadanie 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.

Zadanie 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.