Strona główna » Poradniki » Logomocja » LOGIA » Logia 2005/06 - Etap II
 

Logia 2005/06 - Etap II

· Etap I · Etap II · Etap III ·
iOryginalna treść zadań jest dostępna pod oficjalnym adresem konkursu LOGIA

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

  1. cały rysunek otacza ramka o grubości jednego piksela,
  2. wysokość ramki jest równa czterem jednostkom, szerokość zależy od liczby cyfr w danej :wzorzec,
  3. każda cyfra wzorca określa liczbę zamalowanych kwadratów ustawionych w losowy sposób w odpowiedniej kolumnie siatki, cyfra 1 oznacza jeden zamalowany kwadrat, cyfra 4 - całą zamalowaną kolumnę.

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.

Poniższe rysunki przedstawiają przykładowe efekty wywołania SIATKA "1121324112, SIATKA "1 oraz SIATKA "1.

Zadanie 2

Poniższe 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.

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

SZYFR "ab 1jest "ac
SZYFR "abrakadabraa 500jest "thkgdgwguxtg
SZYFR "dzisiajjestkonkurs 487jest "wsblatccxlmdhgdnkl