„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ę WYCINANKA :ile, po wywołaniu której na środku ekranu powstanie wycinanka taka, jak na rysunkach poniżej. Parametr :ile określa liczbę zielonych elementów wzdłuż przekątnej i może przyjmować wartości od 2 do 20. Wysokość rysunku jest stała i wynosi 480.
Rozwiązanie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
oto WYCINANKA :ile niech "a :ile*7+(:ile-1)*3 niech "bok 480/:a cs pod ws 480/2 lw 90 np :bok*1.5 pw 90 opu powtórz :ile[ rzad :ile] wróć już =================================================== oto rzad :ile niech "a :ile*7+(:ile-1)*3 niech "bok 480/:a powtórz :ile [kwpomoc :bok] pod lw 45 np pkw(:bok*:bok*2) lw 90 np (pkw(:bok*:bok*2))*5*:ile np (pkw(:bok*:bok*2)) pw 45 np :bok*3 pw 90 np :bok*5 opu już =================================================== oto kwpomoc :bok ukm "zielony5 lw 45 np ((pkw(:bok*:bok*2))*2) pw 90 np (pkw(:bok*:bok*2)) pw 45 np :bok lw 90 wielokąt[ powtórz 4 [ np :bok lw 90 np :bok pw 45 np (pkw(2*:bok*:bok)) pw 90 np ((pkw(2*:bok*:bok))*2) pw 90 np (pkw(:bok*:bok*2)) pw 45 np :bok lw 90] ] powtórz 2 [ np :bok lw 90 np :bok pw 45 np (pkw(2*:bok*:bok)) pw 90 np ((pkw(2*:bok*:bok))*2) pw 90 np (pkw(:bok*:bok*2)) pw 45 np :bok lw 90] lw 90 np :bok lw 45 np (pkw(:bok*:bok*2)) lw 45 już |
Wynik działania programu: