Logia0 – rok szkolny 1999/2000 – etap - III

Zad. 1. (Kod MKI) MAZOWIECKI URZĄD SZYFRÓW posługuje się (do zapisywania tajnych informacji) alfabetem składającym się tylko z 16 znaków - małych liter od a do p. W celu usprawnienia przetwarzania dokumentów utworzył własny system cyfrowego kodowania znaków, tzw. kod MKI, w którym każdej literze odpowiada czterobitowe słowo (patrz tabela).

Ustalano następujący system szyfrowania znaków, słów oraz zdań:

Zdefiniuj funkcję SZYFR :zd, której wynikiem dla dowolnego zdanie utworzonego ze słów w alfabecie od a do p jest szyfr tego zdania utworzony zgodnie z ustalonymi wyżej zasadami.

Przykładowe wyniki:

Tabela kodów MKI
znakkod znaku
a0000
b0001
c0010
d0011
e0100
f0101
g0110
h0111
i1000
j1001
k1010
l1011
m1100
n1101
o1110
p1111

Zad. 2. (Kody flagowe) Dwie przekątne kwadratu dzielą go na cztery ćwiartki. Zamalowując różne kombinacje tych ćwiartek możemy otrzymać 16 różnych wzorów, których możemy używać jako wizualnych kodów flagowych 16 elementowego alfabetu od a do p. Ustalamy następujący system wizualnego kodowania liter alfabetu od a do p w postaci flag.

Kodem flagowym słowa będzie odpowiednia sekwencja kodów flagowych kolejnych znaków. Kodem flagowym zdania będzie sekwencja, umieszczonych kolejno jeden pod drugim i wyrównanych do lewego brzegu kodów słów tworzących zdanie.

Zdefiniuj procedurę FLAGI :zd, która dla dowolnego danego zdania :zd wyświetla na środku ekranu jego kod na tle szarego prostokąta. Zakładamy, że dane zdanie będzie się składać z co najmniej jednego i co najwyżej ośmiu słów, a każde słowo z co najmniej jednej i co najwyżej 12 liter z alfabetu od a do p.

Rysunek przedstawia wynik wywołania FLAGI [ola ma domek].

Zad. 3. (Waga szalkowa) Jeśli mamy po jednym odważniku o masie 1 kg, 3 kg, 9 kg itd. aż do 3n kg, to możemy na wadze szalkowej odważyć każdy ciężar, którego masa w kg jest liczbą całkowitą z zakresu od 0 do 1+3+...+3n i to w dodatku tylko w jeden sposób.

Na przykład, żeby zrównoważyć ciężar 11 kg, trzeba na jednej szali położyć dany ciężar i odważnik 1 kg., a na drugiej szali - odważniki 9 kg i 3 kg.

Zdefiniuj funkcję ZRW :mc, która dla danej masy ciężaru, będącej liczbą całkowitą dodatnią, wyznacza odważniki, które trzeba położyć na szalach wagi, żeby zrównoważyć dany ciężar.

Wynikiem funkcji ma być dwuelementowa lista. Pierwszym jej elementem powinna być lista mas odważników, które należy położyć na jednej szali z odmierzanym ciężarem, a drugim elementem - lista mas odważników, które należy położyć na przeciwnej szali. Obie te listy powinny być uporządkowane malejąco.

Oto przykładowe wyniki: