Logia13 – rok szkolny 2012/2013 – etap - II

Zad. 1. (Obrazkowa liczba) Kolejnym cyfrom odpowiadają obrazki przedstawione na rysunkach poniżej:

Napisz procedurę OL :s, która tworzy na środku ekranu rysunek zaszyfrowanej liczby reprezentowanej przez parametr :s. Parametr :s jest słowem złożonym z minimalnie 2, a maksymalnie 40 cyfr. Odstęp pomiędzy szyfrowanymi cyframi wynosi połowę szerokości cyfry 0. Szerokość całego rysunku wynosi 720.

Rysunek poniżej przedstawia efekt wywołania OL 45432

Zad. 1. (Mozaika) Nowe budynki w Logianowie będą ozdobione mozaikami układanymi z kwadratowych kafelków w kolorach: czerwonym (c), zielonym (z), czarnym (x), białym (b) i fioletowym (f). Mozaiki są układane na podstawie kolorowych szablonów. Twórca szablonów jest miłośnikiem Juliusza Cezara i postanowił przy ich przygotowywaniu wykorzystać szyfr Cezara, polegający na cyklicznym zastępowaniu każdej kolejnej litery w alfabecie, literą występującą dalej o określoną liczbę pozycji, przy czym jeśli wykraczamy poza alfabet, to kolejne litery bierzemy z początku alfabetu.

Napisz procedurę MOZAIKA :kolory :klucz :wiersz, po wywołaniu której na środku ekranu powstanie rysunek mozaiki, o szerokości 600 lub wysokości 300, opisanej przez parametry:

Każdy kolejny wiersz powstaje przez zaszyfrowanie poprzedniego wiersza. Liczba wierszy jest o jeden większa od długości parametru :kolory. Na przykład dla alfabetu "xfzb i klucza 6, wiersz "xxxfffbbbxxx przechodzi w wiersz "zzzbbbfffzzz.

W tabelce poniżej umieszczono przykłady zastępowania kolorów.

:kolory:kluczprzed zastąpieniempo zastąpieniu
"xfzb6czarnyzielony
fioletowybiały
zielonyczarny
białyfioletowy
:kolory:kluczprzed zastąpieniempo zastąpieniu
"bzx1białyzielony
zielonyczarny
czarnybiały

Rysunki poniżej przedstawiają efekt wywołania
MOZAIKA "xfzb 6 "xxxfffbbbxxx,     MOZAIKA "bzx 1 "bzxzb

Zad. 2. (Ile cyfr) Napisz funkcję IleCyfr :liczba :podstawa, której wynikiem jest liczba cyfr liczby podanej jako pierwszy parametr w układzie o podstawie podanej jako drugi parametr. Parametr :liczba jest nieujemną liczbą całkowitą zapisaną w układzie dziesiętnym nie większą niż 1020, parametr :podstawa jest liczbą całkowitą większą od 1 i mniejszą niż 17.

Zad. 2. (Ślimak) Napisz funkcję KIEDY :x :y :z, której wynikiem będzie liczba określająca, którego dnia ślimak znajdzie się na szczycie dziesięciometrowego słupa. Ślimak pierwszego dnia startuje u podstawy słupa. Każdego dnia wspina się o :x centymetrów. Każdej nocy osuwa się o :y centymetrów, chyba że natrafi na półkę - wtedy zatrzymuje się na niej. Półki znajdują się co :z centymetrów, licząc od podstawy słupa. Zakładamy, że :x jest większe od :y.

Zad. 3. (Miasta) Alicja, Tomek i Zuzanna planują wakacyjny wyjazd. Podczas podróży odwiedzą od 2 do 7 miejscowości. Ustalili już wspólną listę tych miejscowości, mają jednak problem z wyborem kolejności odwiedzanych miejsc. Każde z dzieci ma swoje preferencje.

Na przykład Alicja chce odwiedzić najpierw Poznań, potem Łódź i Kraków, a na końcu Warszawę (PŁKW). Tomek chce odwiedzić najpierw Warszawę, potem Poznań, następnie Łódź, na końcu Kraków (WPŁK). Zuzanna chciałaby, żeby zacząć od Poznania, potem pojechać do Warszawy, Krakowa, a Łódź zostawić na koniec (PWKŁ).

Pomóż im podjąć decyzję tak, aby zaproponowana kolejność odwiedzania miast różniła się jak najmniej od preferowanej przez każdego uczestnika wycieczki. Ocenę rozwiązania znajdujemy licząc łączną liczbę par miast występujących w dwóch propozycjach w innej kolejności.

Na przykład kolejność Alicji to PŁKW, Tomka - WPŁK Zuzanny - PWKŁ. Najlepsza ocena (minimalna łączna liczba zmian kolejności miejscowości) to 4, a najlepszy wybór to PWŁK, ponieważ dla Alicji oznacza to dwie zmiany kolejności (Kraków - Warszawa i Łódź - Warszawa), dla Tomka jedną (Warszawa - Poznań) i dla Zuzanny też jedną (Kraków - Łódź).

Napisz funkcję Miasta :A :T :Z, której wynikiem dla danej preferencji trójki osób będzie słowo reprezentujące kolejność odwiedzanych miejscowości o najlepszej ocenie. Jeśli kilka kolejności ma taką samą ocenę, wynikiem funkcji może być dowolna z nich.

Parametry :A, :T, :Z (a także wynik funkcji) są słowami tej samej długości reprezentującymi kolejność odwiedzania miejscowości, wszystkie dzieci wskazują te same miejscowości reprezentowane przez pojedyncze litery. Nazwy miejscowości zaczynają się od różnych liter.

Zad. 3. (Pascal) Trójkąt Pascala to trójkątna tablica liczb, skonstruowana w następujący sposób: na dwóch bokach trójkąta znajdują się jedynki, liczby wewnątrz trójkąta są sumą dwóch najbliższych liczb położonych w wierszu powyżej.

Ola podaje Antkowi dwie liczby: numer wiersza oraz pozycję w obrębie wiersza. Zadaniem Antka jest podanie odpowiedniej liczby w trójkącie Pascala. Pomóż Antkowi i napisz funkcję PASCAL :w :p. Parametr :w określa numer wiersza i może przyjmować wartości od 1 do 2000. Parametr :p określa pozycję liczby w wierszu i może przyjmować wartości od 1 do 4, a także od :w-3 do :w, przy czym :w nie jest mniejsze od :p.