Warsztaty komputerowe Temat: Programowanie w LOGO KOMENIUSZ - grafika żółwia Warsztaty komputerowe - grafika żółwia 1
Wprowadzenie teoretyczne Programowanie w LOGO KOMENIUSZ grafika żółwia Programowanie w logo polega na opisywaniu czynności wykonywanych przez żółwia za pomocą procedur, czyli zrozumiałych dla żółwia poleceń. Najprostsze czynności zostały zdefiniowane przez twórców języka logo tz. procedury pierwotne np: pż - (pokaż żółwia) jeśli jest nie widoczny, pokazuje żółwia. sż - (schowaj żółwia) chowa żółwia. cs - (clear screen) czyści cały ekran z wpisanych procedur i ustawia żółwia na środku. ustaltło - ustala dane tło ukp - ustal kolor pisaka. ugp - ustal grubość pisaka. np - (naprzód) przesuwa żółwia do przodu o daną liczbę np. np 100. ws - (wstecz) cofa żółwia o daną liczbę np. ws 50. lw - (lewo) przesuwa żółwia o dany kąt w lewo np. lw 90. pw - (prawo) przesuwa żółwia o dany kąt w prawo np. pw 90. pod - podnieś pisak. opu - opuść pisak. powtórz - powtarza daną operację X razy np. powtórz 4. Aby narysować kwadrat należy wykonać 7 instrukcji: np 50 pw 90 np 50 pw 90 np 50 pw 90 np 50 lub można użyć instrukcji pętli powtórz: powtórz 4 [ np 50 pw 90 ] Warsztaty komputerowe - grafika żółwia 2
Ćwiczenie_1 Narysuj prostokąt w wymiarach 100x200 pikseli. Ćwiczenie_2 Narysuj kwadrat o boku równym 200 pikseli oraz jego przekątne. Ćwiczenie_3 Narysuj trójkąt równoboczny o boku równym 200 pikseli. Ćwiczenie_4 Narysuj sześciokąt foremny o boku równym 100 pikseli. Warsztaty komputerowe - grafika żółwia 3
Procedury: Aby zdefiniować własną procedurę należy wybrać z menu: Okno-> Pokaż pamięć-> Obiekty-> Dodaj procedurę oto nazwa_procedury :par_1 :par_2 treść procedury Zadanie_1 Procedura rysująca kwadrat: oto kwadrat :a powtórz 4 [ np :a pw 90] Procedura rysująca prostokąt: oto prostokąt :a :b powtórz 2 [ np :a pw 90 np :b pw 90] Procedura rysująca trójkąt: oto trójkąt :a powtórz 3 [np :a pw 120] oto schody :a :n powtórz :n [np :a pw 90 np :a lw 90] pw 180 np :a * :n pw 90 np :a * :n pw 90 n - ilość schodów, a - wielkość schodów (długość i szerokość). Zadanie_2 oto igla :n :a powtórz :n [np :a lw 45 np :a lw 180 np :a lw 90 np :a lw 180 np :a lw 45 np :a lw 180 np :a] n - ilość igieł na gałązce, a - długość pojedynczej igły. Warsztaty komputerowe - grafika żółwia 4
Zadanie_3 oto kwadraty :n :a powtórz :n [powtórz 4 [np :a pw 90] np :a] n - ilość pól w pionie, a - długość boku kwadratu. Zadanie_4 n - ilość pól w pionie, m - ilość pól w poziomie, k - długość boku pola. Zadanie_5 a - długość boku kwadratu b - długość masztu n - ilość elementów w serwetce. Warsztaty komputerowe - grafika żółwia 5
Zadanie_6 a - długość boku krzyżyka, 9 * a -długość krótszego boku prostokąta, n - ilość krzyżyków (w poziomie). Procedury rekurencyjne: Rekurencja jest to wywołanie podprogramu (procedury) samej przez siebie. W logo zapis rekurencji będzie wyglądał następująco: oto nazwa_funkcji czynności_wykonywane_przez_procedurę nazwa_funkcji Tak skonstruowana procedura działałaby w nieskończoność. Dlatego przygotowując funkcję rekurencyjną zawsze należy zadbać o istnienie parametru warunkującego kolejne wykonanie procedury. W tym celu można skorzystać z procedury warunkowej jeśli. Ma ona następującą strukturę: jeśli warunek [co_zrobić_gdy_prawda] [co_zrobić_gdy_fałsz] Instrukcja przypisania: przypisz nazwa_zmiennej nowa_wartość Zadanie 1 oto kwadrat :bok if :bok < 10 [stop] powtórz 4 [np :bok pw 90] przypisz "bok :bok - 10 kwadrat :bok Warsztaty komputerowe - grafika żółwia 6
oto kwadrat :bok Zadanie 2?????? Zadanie 3 oto spirala :r jeśli :r < 0 [stop] powtórz 180 [np :r pw 1] spirala :r - 0.1 oto spirala1 :bok Zadanie 4?????? Zadanie 5 oto piramida :n :a jeśli :n = 0 [stop] powtórz :n [powtórz 4 [np :a pw 90] pw 90 np :a lw 90] pw 90 ws ( :n * :a ) lw 90 np :a pw 90 np :a / 2 lw 90 piramida :n - 1 :a oto kwad :a :n Zadanie 6????? Już Warsztaty komputerowe - grafika żółwia 7
Zadanie 6 oto koch :n :a jeśli :n = 0 [np :a stop] koch :n - 1 :a / 3 pw 60 koch :n - 1 :a / 3 lw 120 koch :n - 1 :a / 3 pw 60 koch :n - 1 :a / 3 Zadanie 7 oto płatek :n :a powtórz 3 [koch :n :a lw 120] oto pitagoras :a :n powtórz 4 [np :a pw 90] jeśli :n = 0 [stop] np :a lw 37 pit :a * 0.8 :n - 1 pw 90 np :a * 0.8 pit :a * 0.6 :n - 1 ws :a * 0.8 lw 90-37 ws :a Warsztaty komputerowe - grafika żółwia 8