„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 3
Napisz procedurę POSADZKA :n, po wywołaniu której na środku ekranu powstanie posadzka, jak na rysunkach poniżej. Parametr :n określa liczbę rzędów złożonych z par prostokątów takich jak na rysunku pomocniczym. Może przyjmować wartości od 1 do 10. Długość boku posadzki wynosi 460.
Rozwiązanie:
oto posadzka :n cs niech "bok 460/(:n*3) pod np 460/2 lw 90 np 460/2 pw 90 ws :bok powtórz :n [rzad :n] wróć już =================================================== oto rzad :n niech "bok 460/(:n*3) powtórz 3*:n [kolumna :bok] ws 3*:bok lw 90 np 3*:bok*:n pw 90 już =================================================== oto p2g :bok opu ukm "brązowy3 ukp "brązowy3 wielokąt [powtórz 4 [np :bok pw 90]] niech "pier pkw(:bok*:bok*2/16) ukm "żółty8 ukp "żółty8 wielokąt [np (:bok/2) pw 45 np :pier pw 90 np (:pier*2) pw 90 np :pier pw 45 np (:bok/2) ] pw 45 np :pier*2 lw 45 wielokąt [ np (:bok/2) pw 135 np :pier lw 90 np :pier pw 135 np (:bok/2) pw 90 np (:bok/2) lw 45 ] lw 135 np :pier*2 lw 45 pod np :bok pw 180 już =================================================== oto p2d :bok pod np :bok lw 180 opu ukm "brązowy3 ukp "brązowy3 wielokąt [powtórz 4 [np :bok lw 90]] niech "pier pkw(:bok*:bok*2/16) ukm "żółty8 ukp "żółty8 wielokąt [np (:bok/2) lw 45 np :pier lw 90 np (:pier*2) lw 90 np :pier lw 45 np (:bok/2) ] lw 45 np :pier*2 pw 45 wielokąt [ np (:bok/2) lw 135 np :pier pw 90 np :pier lw 135 np (:bok/2) lw 90 np (:bok/2) pw 45 ] pw 135 np :pier*2 pw 45 pod pw 180 np :bok*2 lw 180 już =================================================== oto p1 :bok opu ukm "brązowy3 ukp "brązowy3 wielokąt [powtórz 2 [np :bok pw 90 np (:bok/2) pw 90]] pw 90 np :bok/2 lw 90 ukm "żółty8 ukp "żółty8 wielokąt [powtórz 2 [np :bok pw 90 np (:bok/2) pw 90]] np :bok/2 lw 45 niech "pier pkw(:bok*:bok*2/16) wielokąt [powtórz 4 [np :pier lw 90]] ukm "brązowy3 ukp "brązowy3 pw 90 wielokąt [powtórz 4 [np :pier pw 90]] lw 45 ws :bok/2 lw 90 np :bok/2 pw 90 pod ws :bok już =================================================== oto kolumna :bok p2g :bok p1 :bok p2d :bok np :bok*3 pw 90 np :bok lw 90 już
Wynik działania programu:
POSADZKA 3