Logia07 – rok szkolny 2006/2007 – etap - II

Zad. 1. Zdefiniuj procedurę SIATKA :wzorzec, której daną może być dowolne słowo złożone z cyfr 1, 2, 3 oraz 4. Procedura tworzy rysunek prostokątnej siatki o danym wzorcu, zgodnie z następującymi zasadami:

Zwróć uwagę, że jednemu wzorcowi może odpowiadać wiele siatek. Rysunek powinien mieścić się na ekranie i wykorzystywać co najmniej pół szerokości bądĽ wysokości ekranu. Dana :wzorzec może składać się maksymalnie ze stu cyfr.

Rysunki przedstawiają przykładowe efekty wywołania SIATKA "1121324112, SIATKA "1 oraz SIATKA "1.

Zad. 2. Rysunki przedstawiają graficzną ilustrację kolejnych liczb trójkątnych. Zastanów się, dlaczego liczby 1, 3, 6, 10, 15, ..., nazywane są liczbami trójkątnymi.

Zdefiniuj procedurę MAXTR :x, której daną może być liczba całkowita dodatnia nie większa od 400. Procedura przedstawia w postaci graficznej, za pomocą sześciokątnych elementów, największą liczbę trójkątną nieprzekraczającą wartości danej :x. Odległości pomiędzy środkami sześciokątów są równe potrójnej długości boku sześciokąta. Rysunek powinien mieścić się na ekranie i jego wysokość nie może być mniejsza niż połowa wysokości ekranu.

Poniżej efekty wywołania MAXTR 45 oraz MAXTR 8.

Zad. 3. Zdefiniuj funkcję SZYFR :słowo :klucz, której danymi są :słowo - słowo do zaszyfrowania o parzystej długości składające się z małych liter alfabetu łacińskiego (bez polskich znaków diakrytycznych) oraz :klucz - liczba z zakresu od 1 do 675 określająca klucz szyfrowania.

Wynikiem funkcji jest zakodowane słowo. System szyfrowania polega na zastępowaniu par kolejnych liter (tzw. digrafów). Każdej literze przypisujemy numer od 0 do 25 (26 - liczba liter), a każdej parze numer od 0 do 675 (26*26=676 - liczba możliwych par liter), w ten sposób, że numer pierwszej litery w parze mnożymy przez 26 i dodajemy numer drugiej litery pary: aa - 0, ab - 1, ..., az - 25, ba - 26, ..., zz - 675. Następnie do numeru pary dodajemy klucz szyfrowania i jako kod pary bierzemy parę o otrzymanym numerze (cyklicznie, tj. jeśli numer pary przekroczy 675 to bierzemy odpowiednią parę od początku).