„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 dwuparametrową procedurę/funkcję reg, po wywołaniu której powstaną na środku ekranu rysunki regału z książkami takie, jak poniżej. Pierwszy parametr określa szerokość rysunku i może przyjmować wartości od 100 do 600 będące wielokrotnościami 10, drugi określa liczbę półek z książkami i może przyjmować wartości od 1 do 6. Półki wypełnione są w całości losowo wybranymi książkami. Książki są w jednym z trzech kolorów, przy czym wysokość czerwonej wynosi 30, zielonej – 40, a granatowej – 50.
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 |
oto reg :szer :ile cs pod ws (:ile*10*7+30)/2 lw 90 np :szer/2 pw 90 opu nogi :szer powtórz :ile [polka :szer] np 10 nogi :szer wróć już =================================================== oto polka :szer ukp "brązowy ukm "brązowy opu wielokąt [powtórz 2[np 80 pw 90 np (:szer) pw 90]] np 10 pw 90 np 10 lw 90 ukm "biały wielokąt [powtórz 2[np 60 pw 90 np (:szer-20) pw 90]] ukp "czarny ksia :szer/10-2 np 60 już =================================================== oto nogi :szer ukp "brązowy ukm "brązowy wielokąt [powtórz 2[np 10 pw 90 np :szer pw 90]] pw 90 np 10 lw 90 ukm "biały ukp "biały wielokąt [powtórz 2 [np 10 pw 90 np (:szer-20) pw 90]] ukp "brązowy ukm "brązowy lw 90 np 10 pw 90 np 10 już =================================================== oto ksiazka :ktora jeśli :ktora=1[ukm "czerwony] jeśli :ktora=2[ukm "zielony] jeśli :ktora=3[ukm "ciemnoniebieski] wielokąt[powtórz 2[np (:ktora*10+20) pw 90 np 10 pw 90]] pw 90 np 10 lw 90 już =================================================== oto ksia :ile powtórz :ile[ksiazka los[1 2 3]] lw 90 pod np (:ile*10)+10 pw 90 już |
Wynik działania programu:
REG 600 6