„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 jednoparametrową procedurę/funkcję muszka, która będzie rysowała na środku ekranu muszki takie, jak na rysunkach poniżej. Parametr określa liczbę podwójnych kolumn niebieskich sześciokątów i może przyjmować wartości od 1 do 7. Wszystkie długości boków figur widocznych na rysunku pomocniczym są równe 7.
Rozwiązanie:
oto muszka :ile cs lw 90 tr :ile wróć pw 90 tr :ile wróć już =================================================== oto cos :a pw 135 np :a lw 90 np :a lw 45 pomocniczy :a np :a pw 45 wielokąt [powtórz 4 [np :a lw 90] ] lw 90 np :a*2 lw 90 np :a wielokąt [powtórz 4 [np :a pw 90]] np :a lw 45 np :a lw 45 wielokąt [powtórz 4 [np :a pw 90]] np :a*2 lw 90 np :a wielokąt [powtórz 4 [np :a pw 90]] np :a lw 45 np :a lw 45 np :a*2 pw 45 już =================================================== oto cos2 :a pw 135 np :a lw 90 np :a lw 45 pomocniczy :a np :a lw 45 wielokąt [powtórz 4 [np :a pw 90] ] pw 90 lw 90 np :a*2 lw 90 np :a wielokąt [powtórz 4 [np :a pw 90]] np :a lw 45 np :a lw 45 np :a*2 lw 90 np :a np :a lw 45 np :a lw 45 np :a*2 pw 45 już =================================================== oto pierwsza :a opu pw 45 np :a lw 90 np :a pw 45 cos2 :a cos :a lw 135 np :a*2 pod =================================================== oto pomocniczy :a ukm "niebieski wielokąt [ np :a lw 45 np (:a*2) lw 90 np (:a*2) lw 45 np :a lw 45 np (:a*2) lw 90 np (:a*2) lw 45 ] np :a lw 45 np :a ukm "pomarańczowy wielokąt [ powtórz 4 [np :a lw 90] ] lw 90 np :a lw 45 np :a pw 45 wielokąt [powtórz 4 [np :a lw 90] ] lw 90 np :a lw 90 np :a lw 45 już =================================================== oto tr :ile niech "a 1 powtórz :ile [warstwa :a 7 niech "a :a+1] już =================================================== oto warstwa :ile :a powtórz :ile [pierwsza :a] pw 45 np :a*2 powtórz 2 [lw 45 np :a lw 45 np :a pw 90 np :a] powtórz (:ile*2-1) [ pw 90 np :a lw 90 np :a ] pw 90 np :a*2 lw 135 już
Wynik działania programu:
muszka 7