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:
- słowo :kolory określa kolory (alfabet) używane w danym szablonie oraz ich kolejność, kolory nie powtarzają się,
- liczba :klucz definiuje sposób zastępowania kolorów i może przyjmować wartości od 0 do 100,
- niepuste słowo :wiersz, które opisuje dolny wiersz mozaiki i może zawierać jedynie kolory wymienione w parametrze :kolory.
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 | :klucz | przed zastąpieniem | po zastąpieniu |
---|---|---|---|
"xfzb | 6 | czarny | zielony |
fioletowy | biały | ||
zielony | czarny | ||
biały | fioletowy | ||
:kolory | :klucz | przed zastąpieniem | po zastąpieniu |
"bzx | 1 | biały | zielony |
zielony | czarny | ||
czarny | biał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.
- Wynikiem IleCyfr 123456 10 jest 6,
- Wynikiem IleCyfr 1 5 jest 1,
- Wynikiem IleCyfr 255 2 jest 8,
- Wynikiem IleCyfr 255 16 jest 2.
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.
- Wynikiem KIEDY 300 100 100 jest 4,
- Wynikiem KIEDY 5 3 2 jest 250,
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.
- Wynikiem Miasta "PŁKW "WPŁK "PWKŁ jest PWŁK,
- Wynikiem Miasta "TSG "TGS "GST jest TGS.
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.
- Wynikiem PASCAL 5 3 jest 6,
- Wynikiem PASCAL 10 7 jest 84.