Napisz procedurę ZIMOLUDEK, która utworzy na środku ekranu możliwie duży rysunek bałwanka takiego jak poniżej.
Rysowanie bałwanka nie wymaga użycia specjalnych składni. Niemalże wszystkie elementy są unikalne i tylko miejscami istnieje możliwość wykorzystania pętli. W przykładowym rozwiązaniu niektóre z użytych wartości są przykładowe i możliwa jest ich zmiana. Ze względu na fakt, że nie ma możliwości wyznaczenia dokładnych odległości (bez uzycia linijki lub programu graficznego) to najważniejsze jest, aby odpowiednie elementy były na odpowiedniej części rysunku. Kolejne etapy przykładowego rozwiązania to:
(2.) Korekcja wyśrodkowania w pionie. Narysowanie (3.) środkowego koła i (4.) dolnego, a następnie narysowanie kropek na (8. - 11.) dolnym kole i (13. - 16.) środkowym kole. W tym przypadku użycie pętli jest wskazane w celu skrócenia długości kodu.
(17.) Powrót do środka strony. W ten sposób znacznie przejść do rysowania rąk Zimoludka. (18.) Ze względu na ponowne przejście na początek rysowania korekta jest potrzebna po raz drugi. (19. - 21.) Narysowanie prawej ręki i (22.) powrót, a następnie (23. - 25.) przejście do rysowania lewej ręki. Ze względu na fakt, że w niej trzyma miotłę warto od razu przejść do jej narysowania. (29. - 32.) Narysowanie dolnej części miotły i przejście na drugą stronę ręki w celu jej dokończenia.
(33.) Narysowanie dalszej części kija i (34. - 39.) dziesięciu włosków, a potem (40. - 45.) powrót do początku punktu rysowania.
(46.) Przejście do (47.) narysowania głowy oraz (48. - 55.) narysowania oczu.
(56.) Przejście do rysowania kapelusza, który składa się z (58. - 62.) poziomej linii o grubości 2 oraz (63. - 76.) czarnego prostokąta.
Napisz procedurę KLEPKA, która utworzy na środku ekranu możliwie duży rysunek przedstawiony poniżej.
Przedstawiona klepka składa się z czterech identycznych rysunków, a nawet wewnątrz wzór też się cztery powtarza chociaż niektóre fragmenty są obrócone.
(2.) Określ wysokość klepki i (3.) narysuj cztery takie same części: (4. - 7.) narysuj obramowanie ćwiartki rysunku, a następnie (8. - 13.) przesuń żółwia do środka rysowanej części.
(14.) Narysuj cztery części (15.) po 5 takich samych elementów. (16. - 22.) Rysowanie wzoru polega na rysowaniu prostokątów o coraz większej szerokości, a przejście do rysowania kolejnej części wzoru (24.) na obróceniu żółwia.
(26. - 44.) Ostatnią rzeczą do narysowania jest biały krzyżyk na wzorze. (45. - 50.) Na koniec iteracji wróć na środek strony i (51.) przejdź do rysowania kolejnej części.
Napisz procedurę PARZENICA :n z jednym parametrem, która dla danej wartości parametru :n - określającej stopień złożoności rysunku, utworzy na środku ekranu możliwie duży rysunek, odpowiednio taki jak poniżej. Parametr :n może przyjmować wartości od 1 do 10.
Poniżej przedstawione są rysunki uzyskane po wywołaniu PARZENICA 1, PARZENICA 3 oraz PARZENICA 5.
Rysunek posiada oś symetrii, która wskazuje, że jedną i drugą cześć rysunku można narysować przy pomocy tej samej funkcji. Z tego powodu funkcja PARZENICA wywoła dwa razy funkcję PARZENICA_el.
(2.) Określ wysokość rysunku. (3.) Wylicz wysokość najkrótszego odcinka. (4. - 9.) Przejdź do rysowania lewej części i (10.) ją narysuj, a potem (12. - 16.) przejdź do drugiej części i (17.) narysuj drugą.
Procedura PARZENICA_el przyjmuje trzy argumenty: :n - złożoność rysunku, :a - jego wysokość oraz :s - kierunek rysowania. Wartość :s z założenia przyjmuje 90 oraz -10 w celu określenia kierunku skrętu jak również zwrotu rysowania. Każdy skręt zależy tylko od parametru :s.
(2. - 11.) Narysuj :n poziomych wcięć. Następnie (12. - 22.) :n zwisających elementów, a potem (23. - 29.) wróć do początkowego miejsca rysowania. Pozostało teraz tylko (30. - 37.) zamalować element.
Te rysunki przedstawiają dwie piramidy ułożone z sześciennych klocków. Pierwsza ma dwa piętra, a druga pięć pięter.
Napisz procedurę PIRAMIDA :lp, która tworzy na środku ekranu możliwie duży rysunek piramidy o danej liczbie pięter :lp z zakresu od 1 do 6.
Zadanie jest bardziej przejrzyste jeśli podzieli się je na kilka podprocedur: szescian narysuje pojedyczny sześcian zgodnie z rysunkiem. Potem szescian_linia narysuje całą linię sześcianów dowolnego stopnia :n. Ze względu na fakt, że ma powstać piramida to do rysowania poziomu o złożoności :n posłuży procedura szescian_pow, a szerokość sześcianu jak również narysowanie samej piramid wykona procedura PIRAMIDA.
Ze względu na fakt, że naprostszym sposobem rysowania piramidy jest rysowanie całego poziomu i nakładania na to kolejnego poziomu to funkcja szescian rysując sześcian o boku :a będzie zamalowywała pola używają polecenia wielokąt.
(2. - 8.) Narysuj biały przód sześcianu, a nastepnie (9.) przejdź do (10. - 18.) rysowania szarej pokrywy. (19. - 20.) Przejdź do następnego boku i (21. - 29.) narysuj go. (30. - 32.) Na koniec wróć tam skąd została rozpoczęta procedura.
Ze względu na fakt, że widać prawy bok sześcianu to należy rozpocząć rysować linię od lewej strony.
(2. - 7.) Narysuj linię sześcianów, a potem (8. - 10.) wróć tam skąd procedura została rozpoczęta.
W celu prawidłowego nałożenia linii sześcianów składających się na poziom to należy rozpocząć rysowania od lini położonej najdalej na rysunku.
(2. - 4.) Przesuń żółwia do rysowania poziomu i (5. - 12.) Narysuj :n lini pamiętając o (7. - 11.) prawidłowym przesunięciu. (13. - 17.) Wróć tam skąd została rozpoczęta procedura.
W celu narysowania piramidy należy najpierw wyliczyć bok sześcianu, a potem przejść do rysowania rysunku. W tym przypadku wykorzystując jedynie procedurę szescian_pow.
(2.) Na podstawie wysokości (3.) wyliczyć bok :a i sprawdź (4. - 6.) czy rysunek zmieści się na szerokość. Jeśli nie to (5.) dokonaj korekty :a. (7. - 12.) Przejdź do rysowani rysunku. (13.) Dopóki jest wciąż poziom do narysowania tj. jest większ od 0 to (14.) narysuj go i (15.) zmniejsz zmienną :lp. (16. - 24.) Przejdź do rysowania kolejnego poziomu.