„miniLOGIA grafika w Logo” to konkurs informatyczny dla uczniów szkół podstawowych województwa mazowieckiego organizowany przez Ośrodek Edukacji Informatycznej i Zastosowań Komputerów (OEIiZK) na zlecenie Mazowieckiego Kuratora Oświaty. Konkurs składa się z trzech etapów, podczas których uczniowie samodzielnie rozwiązują zadania graficzne w językach Logo lub Python (z zainstalowanym modułem turtle).
W serii artykułów przedstawię rozwiązania zadań w języku Logo, opracowane przeze mnie podczas przygotowywania się do konkursu. Jako środowisko, w którym opracowywałem rozwiązania zadań wykorzystałem zalecane przez organizatora oprogramowanie Logomocja-Imagine.
Zadanie 2
Napisz procedurę ZAMEK :n, po wywołaniu której na ekranie powstanie rysunek zamku taki, jak na rysunkach poniżej. Długość boku trójkąta tworzącego daszek wieży jest większa od długości boku kwadratu tworzącego okienko o 4 1 jego długości. Parametr :n określa liczbę okienek zamku i może przyjmować wartości od 4 do 24. Szerokość zamku jest stała i wynosi 760
oto zamek :ile tlo :ile wieze :ile rzad :ile już =================================================== oto wieze :ile niech "bok (760/(:ile*2+1))*1.25 niech "bok2 760/(:ile*2+1) np :bok2*4 ukm "czerwony lw 90 np :bok2*0.125 pw 90 tr :bok pw 90 np :bok2+:bok2*0.125 pw 90 np :bok2 lw 90 np (:bok2*(:ile*2-3)) lw 90 np :bok2 lw 90 np :bok2*0.125 pw 90 tr :bok pw 90 np :bok2*1.125 pw 90 np :bok2 lw 90 np :bok2 lw 90 np :bok2 lw 90 np :bok2*0.125 pw 90 tr :bok pw 90 np :bok2*1.125 pw 90 np :bok2*4 pw 90 np 760 pw 90 już =================================================== oto tr :bok pw 30 wielokąt [powtórz 3[np :bok pw 120]] lw 30 już =================================================== oto tlo :ile cs pod niech "bok 760/(:ile*2+1) ws :bok*2.5 lw 90 np 760/2 pw 90 opu ukm "szary wielokąt [np (:bok*4) pw 90 np :bok pw 90 np :bok lw 90 np (:bok*(:ile*2-3)) lw 90 np :bok pw 90 np :bok pw 90 np :bok lw 90 np :bok lw 90 np :bok pw 90 np :bok pw 90 np (:bok*4) pw 90 np 760 pw 90 ] już =================================================== oto rzad :ile ukm "jasnoniebieski niech "bok 760/(:ile*2+1) pod np :bok pw 90 np :bok lw 90 powtórz :ile [kw :bok] już =================================================== oto kw :bok opu wielokąt [powtórz 4 [np :bok pw 90]] pw 45 np pkw(:bok*:bok*2) ws (pkw(:bok*:bok*2))/2 pw 90 np (pkw(:bok*:bok*2))/2 ws (pkw(:bok*:bok*2)) lw 45 pod np :bok*2 pw 90 np :bok pw 180 już
Wynik działania programu:
zamek 9