Logia17 – rok szkolny 2016/2017 – etap - II

Zad. 1 (szyfr Bacona)

Szyfr Bacona polega na zastępowaniu liter alfabetu łacińskiego pięcioznakowymi ciągami złożonymi z liter a i b zgodnie z poniższą tabelą:

Adaś postanowił szyfrować kolejne litery słowa. Zamiast liter a i b użył odpowiednio zamalowanych kwadratów:

Napisz jednoparametrową procedurę/funkcję szyfruj, po wywołaniu której na środku ekranu powstanie rysunek zaszyfrowanego słowa (od lewej do prawej). Parametrem jest niepuste słowo złożone z wielkich liter alfabetu łacińskiego o maksymalnej długości 70. Szerokość rysunku wynosi 700 lub wysokość wynosi 400. Do zamalowania użyj dwóch dowolnych kolorów różnych od koloru krawędzi kwadratów.

Przykład:

efekt wywołania: w Logo – szyfruj "GODZINAKODOWANIA, w Pythonie – szyfruj('GODZINAKODOWANIA')

Zad. 2 (ulica)

Logolandia ma tylko jedną owalną ulicę, przy której stoją domy podzielone na osiedla. Dwa domy stojące obok siebie są w jednym osiedlu, jeśli różnica ich numerów jest nie większa niż 3. Dom o największym numerze jest w tym samym osiedlu, co dom o numerze 1, 2 lub 3 (o ile istnieje). W Logolandii stoją co najmniej 2 domy, ale nie więcej niż 10 000. Największy numer domu jest nie większy niż 30 000. Numery domów nie powtarzają się.

Napisz jednoparametrową funkcję maksos, której parametrem jest uporządkowana rosnąco lista numerów domów. Wynikiem jest liczba domów w osiedlu składającym się z największej liczby domów.

Przykłady:

  1. w Logo – wynikiem maksos [1 4 7 11 13 14 15 16 20] jest 5 (osiedle 11-13-14-15-16),
  2. wynikiem maksos [1 4 7 13 14 15 20] jest 4 (osiedle 20-1-4-7),
  3. w Pythonie – wynikiem maksos([1,4,7,11,13,14,15,16,20]) jest 5 (osiedle 11-13-14-15-16),
  4. wynikiem maksos([1,4,7,13,14,15,20]) jest 4 (osiedle 20-1-4-7).

Zad. 3 (klocki)

Staś układa na stole sześcienne klocki tej samej wielkości. Na każdym widnieje jedna z wielkich liter alfabetu łacińskiego. Klocki układane są rzędami (wierszami). Każdy rząd rozpoczyna się przy lewej krawędzi stołu. Pierwszy rząd zawiera jeden klocek, drugi – dwa, trzeci – trzy, …, itd. Ostatni rząd może być krótszy.

Napisz jednoparametrową funkcję kolit, której parametrem jest niepuste słowo długości co najwyżej 1 000, zawierające litery widniejące na kolejnych klockach. Wynikiem funkcji jest liczba tych kolumn w układance Stasia, w których wszystkie litery są identyczne.

Przykłady:

  1. w Logo – wynikiem kolit "ABCDEFGH jest 1 (ostatnia kolumna),
  2. wynikiem kolit "ALAMAKRABY jest 2 (druga i ostatnia),
  3. w Pythonie – wynikiem kolit('ABCDEFGH') jest 1 (ostatnia kolumna),
  4. wynikiem kolit('ALAMAKRABY') jest 2 (druga i ostatnia).