Zadania drugiego etapu Konkursu Informatycznego dla gimnazjalistów LOGIA 14

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


w Logo – szyfr "abcdefghijklmno "lajkonik, w Pythonie – szyfr('abcdefghijklmno','lajkonik')


w Logo – szyfr "abcde "abba, w Pythonie – szyfr('abcde','abba')

w Logo – szyfr "acdeh "dach, w Pythonie – szyfr('acdeh','dach')

w Logo – szyfr "rklot "otok, w Pythonie – szyfr('rklot','otok')

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

w Logo:
Wynikiem redukcja 84211 jest 6 (w kolejnych krokach Janek otrzymuje 8422, 844, 88, 6).
Wynikiem redukcja 426633 jest 86 (w kolejnych krokach Janek otrzymuje 4226, 446, 86).
w Pythonie:
Wynikiem redukcja(84211) jest 6 (w kolejnych krokach Janek otrzymuje 8422, 844, 88, 6).
Wynikiem redukcja(426633) jest 86 (w kolejnych krokach Janek otrzymuje 4226, 446, 86).

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

w Logo:
Wynikiem ile 1 4 jest 1 (bo liczba 4 jest jedyną dodatnią liczbą jednocyfrową zawierającą cyfrę 4).
Wynikiem ile 2 5 jest 18 (bo jedynymi liczbami dwucyfrowymi zawierającymi piątkę są: 15, 25, 35, 45, 50-59, 65, 75, 85, 95).
Wynikiem ile 3 6 jest 252.
w Pythonie:
Wynikiem ile(1,4) jest 1 (bo liczba 4 jest jedyną dodatnią liczbą jednocyfrową zawierającą cyfrę 4).
Wynikiem ile(2,5) jest 18 (bo jedynymi liczbami dwucyfrowymi zawierającymi piątkę są: 15, 25, 35, 45, 50-59, 65, 75, 85, 95).
Wynikiem ile(3,6) jest 252.