Logia05 – rok szkolny 2004/2005 – etap - II

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

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

Zad. 3. (Szyfr Cezara) Zdefiniuj funkcję SZYFR :słowo :klucz1 :klucz2, której danymi są:

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.