Logia06 – rok szkolny 2005/2006 – etap - II
Zad. 1. 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 przedstawiają efekty wywołań:
- GRAFKOD 4236,
- GRAFKOD 11001 oraz
- GRAFKOD 912345678909876543219.
Zad. 2. 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.
Zad. 3. Zdefiniuj procedurę POSADZKA :s :w, która dla całkowitych, dodatnich danych :s i :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.
Rysunki przedstawiają efekty wywołania:
- POSADZKA 700 80
- POSADZKA 700 70
- POSADZKA 150 250