„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:
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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
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