Zadania drugiego etapu Mazowieckiego Konkursu Informatycznego dla gimnazjalistów LOGIA 05

Zadanie 1 (Kodowanie liczb).

Zdefiniuj procedurę GRAFKOD :liczba, której daną może być dowolna liczba całkowita dodatnia. Procedura przedstawia liczbę w postaci graficznej, zgodnie z następującymi zasadami:

  • wszystkie słupki mają identyczną szerokość,
  • każdej cyfrze odpowiada słupek o odpowiedniej wysokości, wszystkie słupki mają wysokość będącą wielokrotnością wysokości słupka odpowiadającego cyfrze 1,
  • cyfrze 0 odpowiada słupek o wysokości zero - czyli poziomy odcinek,
  • słupki odpowiadające cyfrom stojącym na parzystych pozycjach w liczbie są skierowane ku górze, zaś odpowiadające cyfrom na pozycjach nieparzystych - ku dołowi,
  • każdy słupek rysowany jest z pozycji żółwia, dla której y=0.

Rysunek powinien mieścić się na ekranie i być możliwie duży, kodowana liczba może mieć maksymalnie 100 cyfr.

Rysunki poniżej przedstawiają efekty wywołań: GRAFKOD 4236, GRAFKOD 11001 oraz GRAFKOD 912345678909876543219.

Zadanie 2 (Powielanie liter).

Zdefiniuj funkcję POWIEL :słowo :liczba, której danymi są dowolne słowo i dowolna liczba całkowita nieujemna. Wynikiem funkcji jest słowo z powielonymi literami. Każda litera jest powielona tyle razy, jaka jest wartość cyfry na tej samej pozycji w liczbie. Jeśli liczba jest krótsza (tzn. ma mniej cyfr, niż słowo liter), to dla kolejnych liter na pozycjach dalszych niż długość liczby - brane są ponownie cyfry od początku liczby.

Wynikiem POWIEL "krokodyl 123 jest "krroookoodddyll.
Wynikiem POWIEL "lis 2005 jest "ll.

Zadanie 3 (Posadzka).

Zdefiniuj procedurę POSADZKA :s :w, która dla całkowitych, dodatnich danych :s:w rysuje na środku ekranu posadzkę o szerokości :s i wysokości :w. Posadzka składa się z możliwie najmniejszej liczby kwadratowych kafelków o całkowitoliczbowych długościach boków. Kafelki nie różnią się rozmiarem i występują w jednym z dwóch kolorów, dowolnie wybranych, ale różnych od koloru tła. Kafelki mające wspólny bok mają różne kolory.

Rysunek poniżejp rzedstawiają efekty wywołania POSADZKA 150 250, POSADZKA 700 80 i POSADZKA 700 70.