Logia15 – rok szkolny 2014/2015 – etap - II

Zad. 1. (Szyfr obrazkowy)

Julka i Kuba używają szyfrów obrazkowych. Najpierw ustalają alfabet zawierający litery, które będą występować w szyfrowanym słowie. Następnie kodują słowo za pomocą prostokątów o różnych wymiarach. Wysokość prostokąta odpowiadającego kolejnej literze słowa zależy od jej pozycji w alfabecie i wynosi, odpowiednio, 10 dla pierwszej litery alfabetu, 20 dla drugiej, 30 dla trzeciej itd. Szerokość prostokąta zależy od pozycji litery w szyfrowanym słowie i jest równa 10 dla pierwszej litery słowa, 20 dla drugiej, 30 dla trzeciej, itd. Dla każdego słowa określona jest linia bazowa, na której leży górny bok prostokątów ilustrujących samogłoski oraz dolny bok prostokątów odpowiadających spółgłoskom.

Napisz dwuparametrową procedurę/funkcję szyfr, po wywołaniu której na środku ekranu powstanie rysunek zaszyfrowanego słowa. Pierwszy parametr jest alfabetem i składa się z co najwyżej 25 liter. Drugi parametr jest szyfrowanym słowem, co najwyżej dwunastoliterowym.

Rysunki poniżej przedstawiają efekt wywołania:

Zad. 2. (Redukcja)

Janek lubi zabawy z liczbami i postanowił je przekształcać. Analizuje liczbę od cyfry jedności do najbardziej znaczącej cyfry. Jeżeli dwie sąsiednie cyfry są takie same, to zastępuje je ostatnią cyfrą ich sumy. Po zamianie przegląda kolejne (jeszcze nieprzejrzane) cyfry. Po przejrzeniu całej liczby powtarza analizę, aż nie dokona żadnej zamiany.

Pomóż Jankowi i napisz jednoparametrową funkcję redukcja, której parametrem jest liczba całkowita dodatnia nie większa niż 10100. Wynikiem funkcji jest liczba po przekształceniach wykonanych przez Janka.

Przykłady:

Zad. 3. (Ile liczb)

Napisz dwuparametrową funkcję ile, której wynikiem jest liczba dodatnich liczb całkowitych, o liczbie cyfr równej pierwszemu parametrowi funkcji i mających tę cechę, że w swoim zapisie zawierają co najmniej jedną cyfrę określoną drugim parametrem funkcji. Pierwszy parametr może przyjmować wartości od 1 do 9, a drugi – od 0 do 9. Postaraj się, aby na wynik nie trzeba było czekać zbyt długo.

Przykłady: