Zadania drugiego etapu Mazowieckiego Konkursu Informatycznego dla gimnazjalistów LOGIA 04

Zadanie 1 (Domki).

Zdefiniuj procedurę DOMKI :liczba rysującą na ekranie ciąg domków. Kolejne domki mają wspólną ścianę i opisują kolejne cyfry nieujemnej całkowitoliczbowej danej :liczba. W zależności od wartości cyfry zamalowany jest odpowiedni trójkąt domku. Ponadto, dla cyfr parzystych, zamalowana jest na szaro lewa połowa dachu. Poniżej pokazane są domki odpowiadające poszczególnym cyfrom: 0, 1, 2, ..., 9:

Dla danej liczby każdy domek jest tej samej wielkości. Wszystkie domki powinny mieścić się na ekranie. Odległości skrajnych domków od, odpowiednio, lewej i prawej krawędzi ekranu, powinny być identyczne.
Poniżej widać efekty wywołań, kolejno: DOMKI 1000, DOMKI 4545 oraz DOMKI 2468.

Zadanie 2 (Kółko i krzyżyk).

Zapewne wiele razy grałeś(aś) w kółko i krzyżyk. Klasyczna wersja tej gry polega na stawianiu naprzemian przez graczy, na planszy 3x3 pola, swojego znaku: krzyżyka lub kółka. Wygrywa ten z graczy, który jako pierwszy uzyska trzy swoje znaki w jednej linii: w poziomie, w pionie lub na skos. Nie wiemy, który z graczy rozpoczął grę, ani do którego gracza należy teraz ruch. Zakładamy, że na planszy nie ma sekwencji wygrywającej.
Zdefiniuj funkcję KK :gra, której daną jest dziewięcioliterowe słowo, opisujące układ krzyżyków i kółek na planszy - wierszami (tzn. trzy pierwsze znaki opisują pierwszy wiersz planszy, itd.). W danej :gra mogą występować tylko małe litery x, o oraz w. Oznaczają one: x - krzyżyk na danym polu, o - kółko na danym polu, zaś w oznacza wolne pole.
Wartością funkcji KK jest prawda, jeśli dana :gra opisuje możliwy układ w czasie gry, zaś fałsz - w przeciwnym przypadku.

Wynikiem KK "xwxoxooww jest prawda.
Wynikiem KK "xxwowowwo jest prawda.
Wynikiem KK "xxoowooww jest fałsz.

Zadanie 3 (Szyfr Cezara).

Zdefiniuj funkcję SZYFR :słowo :klucz1 :klucz2, której danymi są:

  • :słowo - słowo do zaszyfrowania składające się z małych liter alfabetu łacińskiego (bez polskich znaków diakrytycznych),
  • :klucz1 - jednocyfrowa liczba określająca klucz szyfrowania samogłosek,
  • :klucz2 - jednocyfrowa liczba określająca klucz szyfrowania spółgłosek.

Wynikiem funkcji jest zakodowane :słowo.
Przyjęty sposób kodowania to modyfikacja jednego z najstarszych znanych systemów kodowania, przypisywanego Juliuszowi Cezarowi. Polega on na zastąpieniu każdej kolejnej litery - literą występującą w alfabecie o określoną liczbę pozycji dalej, cyklicznie (tj. jeśli wykraczamy poza alfabet, to kolejne litery bierzemy z początku alfabetu). W naszym zadaniu tę liczbę pozycji, oddzielnie dla samogłosek i spółgłosek, określają klucze szyfrowania funkcji SZYFR.

Wynikiem SZYFR "abrakadabra 1 2 jest "bdtbmbfbdtb.
Wynikiem SZYFR "axeyiz 2 4 jest "cbgakd.