Zadania drugiego etapu Mazowieckiego Konkursu Informatycznego 2000

UWAGA: We wszystkich zadaniach Twoje rozwiązanie tzn. zdefiniowana przez Ciebie funkcja/polecenie musi dawać poprawny wynik/skutek tylko wtedy, gdy dane są poprawne, tzn. zgodne z podanym w treści zadania opisem. Możesz zakładać, ze Twoja procedura będzie wywoływana tylko z poprawnymi danymi.

Zadanie 1.

Ustalamy następujący sposób szyfrowania wyrazów utworzonych z małych liter alfabetu łacińskiego a, b, c, ...., x, y, z, składającego się z 26 liter (bez polskich znaków ą, ę, itd.):

  • każde wystąpienie litery a w danym wyrazie zastępujemy literą z,
  • każde wystąpienie litery b w danym wyrazie zastępujemy literą y,
  • każde wystąpienie litery c w danym wyrazie zastępujemy literą x,
    ...
  • każde wystąpienie litery z w danym wyrazie zastępujemy literą a.

Ogólnie - każde wystąpienie litery i-tej od początku alfabetu zastępujemy literą i-tą od końca.

Zdefiniuj funkcję szyfrującą SZYFR :wyraz, której wynikiem jest dany :wyraz zaszyfrowany zgodnie z opisaną wyżej zasadą. Oto przykładowe wyniki:

poprawnym wynikiemSZYFR "abba jest słowo zyyz,
poprawnym wynikiem SZYFR "abc jest słowo zyx.

Zadanie 2.

Napisz procedurę KWADRACIKI :n, która, dla dowolnej danej liczby całkowitej n, z zakresu od 1 do 20 włącznie:

  1. rysuje na środku ekranu możliwie duży kwadrat podzielony na nxn małych kwadracików i losowo zamalowuje wnętrza pewnych kwadracików, a pewnych nie,
  2. wypisuje pod kwadratem liczbę zamalowanych kwadracików.

Musisz zdefiniować procedurę KWADRACIKI w taki sposób, aby każda kombinacja zamalowanych kwadracików była możliwa - tzn. mogła powstać na skutek wywołania polecenia. Oto przykładowe wyniki wywołania KWADRACIKI 4 i KWADRACIKI 6.

Zadanie 3.

Napisz procedurę z dwoma parametrami KWADRATY :k :n, która dla dowolnych dwóch liczb całkowitych k oraz n, takich że 0<=k<=n2 oraz 1<=n<=20, rysuje na środku ekranu możliwie duży kwadrat podzielony na nxn małych kwadracików, z których dokładnie k losowo wybranych kwadracików ma zamalowane wnętrza.

Musisz zdefiniować procedurę KWADRATY w taki sposób, aby każda kombinacja k zamalowanych kwadracików była możliwa - tzn. mogła powstać na skutek wywołania polecenia. Oto przykładowe wyniki wywołania KWADRATY 17 6: