PODSTAWY PROGRAMOWANIA W LOGO KOMENIUSZ
- PIERWSZE KROKI Z LOGO
- DEFINIOWANIE WŁASNYCH PROCEDUR
| PIERWSZE KROKI Z LOGO KOMENIUSZ |
Opis środowiska Logo Komeniusz
Program komputerowy to zrozumiały dla komputera ciąg instrukcji. Każdy
program napisany jest w jakimś języku programowania. Język ten
służy wyłącznie do zapisywania algorytmów wykonywania programów.
Zestaw instrukcji opisujących całą aplikację nazywamy kodem źródłowym
programu. Tali kod źródłowy nie jest bezpośrednio zrozumiały dla
komputera. Aby maszyna go wykonała, musi zostać najpierw przetłumaczony
na język wewnętrzny komputera, który jest ciągiem operacji elementarnych
realizowanych przez komputer. Taki program nazywamy programem
wynikowym. Aby zamienić kod źródłowy programu na sam
program wynikowy musimy użyć innego programu zwanego
translatorem (od ang. translation - tłumaczenie). Operacja
ta nazywana jest translacją. Wyróżniamy przy tym dwa rodzaje
translatorów w zależności od zastosowanej metody tłumaczenia programu:
- Kompilator - wczytuje cały kod
źródłowy programu, dokonuje jego optymalizacji i tłumaczy na kod wynikowy.
W rezultacie otrzymujemy program wynikowy gotowy w każdej chwili do
wykonania. Wynik kompilacji jest zapamiętywany w postaci pliku
wykonywalnego (stąd rozszerzenie dla wielu programów zapisanych za
pomocą pliku wykonywalnego *.exe od ang. executable).
Skompilowanie programu umożliwia jego wykonanie w dowolnym
momencie na dowolnym komputerze. Kompilator jest nam potrzebny tylko raz
(podczas kompilacji).
- Interpretator - wczytuje fragment kodu
źródłowego programu, tłumaczy na kod wynikowy i od razu wykonuje.
Operacja ta jest powtarzana dla kolejnych elementów programu.
Przy każdym uruchomieniu programu trzeba od początku zamieniać jego kod
źródłowy na kod wynikowy zrozumiały dla komputera. Zatem do każdego
wykonania programu musimy użyć interpretatora.
Podczas pracy z językiem logo w środowisku Logo Komeniusz będziesz
używał interpretatora. Dlatego aby uruchomić jaki kolwiek program
napisany w logo musisz posiadać i uruchomić program Logo
Komeniusz.
Spróbuj uruchomi program Logo Komeniusz. W rezultacie otrzymasz coś
takiego:
|
Menu programu |
 |
| Ekran graficzny |
| Ekran tekstowy |
Praca w Logo Komeniusz może odbywać się w trzech trybach, których
wyboru dokonacie za pomocą odpowiednich przycisków:
 |
Tryb graficzny - obszar, w którym żółw wykonuje rysunki. Ekran
graficzny ma swoje współrzędne wyrażone w punktach (czyli krokach
żółwia). "Domem" dla żółwia jest środek
ekranu, który ma współrzędne (0,0). Ekran możemy przyrównać do
kartezjańskiego układu współrzędnych. |
 |
Tryb graficzno-tekstowy - obszar, w którym wpisujemy polecenia
w języku Logo. Pojawiają się tu także rożne komunikaty. Polecenia
wpisujemy w miejscu kursora tekstowego. W tym miejscu program
wypisuje komunikaty, wyniki działań oraz teksty. |
 |
Tryb tekstowy - Łączy w sobie tryb graficzny i tekstowy.
Proporcje pomiędzy ekranem graficznym oraz ekranem tekstowym możemy
ustalać dowolnie. Należy skorzystać z przeciągania myszą
(do góry lub w dół) podwójnej poziomej linii oddzielającej ekrany. |
Programy napisane w logo mogą wykonywać obliczenia, pisać teksty
oraz tworzyć rysunki na ekranie. Rysunki na ekranie tworzone są przez
żółwia (bądź wiele żółwi) na ekranie graficznym. Wszystkie polecenia
rysowania będziesz kierował właśnie do żółwia! się po ekranie
według twoich poleceń będzie on pozostawiał ślady, które z kolei utworzą
obrazy, często dość skomplikowane. Plecenia dla żółwia wprowadzisz
z klawiatury używając do tego celu ekranu tekstowego. Najwygodniej
korzystać jest zatem z trybu graficzno-tekstowego, w którym jednocześnie
możesz wpisywać polecenia i obserwowć rezultaty ich wykonania.
Kreski, kwadraty i koła
Kreski
To, jaką czynność właśnie wykonuje żółw, zależy od trybu jego pracy.
może rysować, ścierać lub po prostu się przemieszczać po ekranie. Aby
żółw przeszedł do odpowiedniego trybu, korzystamy z następujących
komend:
- POD - żółw przesuwa się po ekranie nie
zostawiając za sobą śladu;
- OPU - żółw przesuwa się po ekranie zostawiając
za sobą linię;
- ŚĆIER - żółw przesuwa się po ekranie
ścierając istniejące elementy.
Spróbuj teraz przećwiczyć kilka najprostrzych konstrukcji. Posłuż
się do tego najbardziej elementranymi procedurami:
- PŻ - pokazuje symbol żółwia na ekranie;
- SŻ -chowa symbol żółwia na ekranie;
- CS - czyści ekran i ustawia żółwia na pozycji (0,0);
- NP X - porusza żółwiem o X pikseli do przodu;
- PW X - obraca żółwia o X° w prawo;
- LW X - obraca żółwia o X° w lewo.
Nic trudnego, prawda? Jak zatem narysować poniższy rysunek?
Nic prostrzego! Należy pokazać żółwia, następnie
przejść żółwiem o 100 pikseli do przodu, obócić
go o 45° w lewo i na koniec przejść nim o 90 pikseli do przodu. Zatem
Twój "program" będzie wyglądał następująco:
? pż ? np 100 ? lw 45 ? np 90
|
A co wówczas, jeżeli zadasz zółwiowi tak wiele pikseli do przejścia,
zę przekroczy to zakres ekranu? Wszystko zależy od trybu okna, w którym
aktualnie pracuje żółw. W Logo Komeniusz mamy przy tym do wyboru dwa
tryby okna, wywoływane za pomocą komend:
- oknożółwia - po przekroczeniu ekranu żółw
wykonuje swoje czynności poza nim na "wirtualnym" ekranie;
- sklej - żółw pojawia się po przeciwnej stronie
ekranu kontynuując swoją pracę, jak gdyby brzegi ekranu zostały ze sobą
sklejone.
Wypróbuj działanie tych komend na przykład w taki sposób:
? cs ? sklej ? lw 45 ? np 900
? cs ? oknożółwia ? lw 45 ? np 900
|
Kwadraty
Narysowanie kwadratu o określonym przez Ciebie boku jest stosunkowo
łatwe. Musisz postawić cztery kreski obócone względem sibie o 90°.
? cs ? np 100 ? pw 90 ? np 100 ? pw 90 ? np 100 ? pw 90 ? np 100 ? pw 90
|
A oto i efekt:
Zauważ, że w powyższym zadaniu czterokrotnie wykonałeś tą samą czynność:
poruszałeś się naprzód, a następnie obracałeś żółwia o 90° w prawo.
Program znacznie by się uprościł, gdyby mozna było nakazać żółwiowi
pewne czynności wykonać kilkakrotnie. Spróbuj:
? cs ? powtórz 4 [ np 100 pw 90 ]
|
Efekt będzie taki sam, jak na poprzednim rysunku.
Koła
Mam nadzieję, że dotychczasowe czynności nie sprawiły Ci zbyt wiele
kłopotu. Spróbuj więc teraz czegoś trudniejszego. Co sądzisz o narysowaniu
koła?
W logo komeniusz nie ma procedury pozwalającej na bezpośredni rysowanie
okręgów czy łuków. Aby udało Ci się narysować okąg musisz żółwia trochę
oszukać. Spróbuj narysować trzystusześćdziesięciobok o boku 1. Będzie on
wyglądał niemal idealnie jak koło.
? cs ? powtórz 360 [ np 1 pw 1 ]
|
W wyniku otrzymasz taki obrazek:
Tak naprawdę do koła wystarczająco podobny jest 36-bok i nim będziemy
się w dalszej części kursu posługiwać.
? cs ? powtórz 36 [ np 10 pw 10 ]
|
| DEFINIOWANIE WŁASNYCH PROCEDUR |
Procedury bez parametrów
Programowanie w logo polega na opisywaniu czynności wykonywanych
przez żółwia za pomocą procedur, czyli zrozumiałych dla
żółwia. Najprostsze czynności zostały zdefiniowane przez twórców
języka logo. Nazywamy je procedurami pierwotnymi. Niektóre
z nich już poznałeś (na przykład NP, WS, CS PW czy LW). Dość obszerną
listę procedur pierwotnych znajdziesz w dziale różne.
Wykorzystując istniejące procedury możesz budować własne, odpowiadające
chwilowym potrzebom programów.
Definicję procedury rozpoczynasz od słowa oto. Nastepnie
podaj nazwę procedury (nie może ona zawierać spacji), potem
dodaj treść procedury. Koniec sygnalizujesz słowem już.
? oto nazwa_procedury ? treść procedury ? już
|
Jak to działa? Spróbuj zdefiniować sobie procedurę rysującą kwadrat
o boku 100 punktów.
? oto kwadrat ? powtórz 4 [ np 100 pw 90 ] ? już
|
Teraz wystarczy wywołać procedurę...
...i na ekranie pojawi się żądany kwadrat.
Zadeklarowany w ten sposób każdy rysowany kwadrat będzie miał
bok długości 100 punktów. Jeżeli będziesz potrzebował do rysowania
innego kwadratu, np. o boku 20 punktów, będziesz musiał zdefiniować
nową procedurę pod nową nazwą:
? oto kwadrat20 ? powtórz 4 [ np 20 pw 90 ] ? już
|
W ten sposób możesz zdefiniować także inne figury, np. koło czy
trójkąt:
? oto koło ? powtórz 36 [ np 10 pw 10 ] ? już
? ? oto trójkąt ? powtórz 3 [ np 100 pw 120 ] ? już
|
Procedury z parametrami
Zauważ, że definiowanie procedury bez parametru jest mało elastyczne.
Właściwie do każdej potrzebnej nam figury będziesz potrzebował
nowej procedury. Żeby narysować poniższy rysunek, musiałbyś zdefiniować
10 różnych procedur kwadratów o bokach od 20 do 200 punktów!
Znacznie lepiej byłoby zdefiniować jedną uniwersalną procedurę,
która sprawdzałaby się każdej sytuacji. Struktura takiej procedury wygląda
następująco:
? oto nazwa_procedury :parametr1 :parametr2 itd. ? treść procedury ? już
|
Spróbuj teraz zdefiniować procedurę, w której parametrem będzie
długość boku kwadratu:
? oto kwadrat :bok ? powtórz 4 [np :bok pw 90] ? już
|
Teraz wystarczy wywołanie: kwadrat 70 i już kwadrat o boku 70
pojawi się na Twoim ekranie.
Parametrem Twojej procedury jest :bok. Nazwa poprzedzona jest
: (dwukropkiem), który nazywamy operatorem wartościowania.
Będziesz go stosował, aby odróżnić nazwę parametru (bądź zmiennej) od nazwy
procedury.
Spójrz i wypróbuj także poniższe procedury. Pierwsza narysuje na ekranie
koło o zadanym promieniu, druga wielobok o określonym przy wywoływaniu
boku i liczbie kątów.
Dlaczego takie skomplikowane obliczenia przy kole? Otóż obwód 36-boku
równy jest 36 * długość boku. Natomiast obwód koła równy jest 2 * Pi * r.
Przyrównajmy te dwie warości do siebie:
2 * Pi * r = 36 * bok
Znając promień otrzymujemy:
bok = (2 * Pi * r) / 36 ˜= 0,175 * r
? oto koło :promień ? powtórz 36 [np :promień * 0,175 pw 10] ? już
? oto wielobok :bok :ileboków ? powtórz :ileboków [np :bok pw 360 / :ileboków] ? już
|
Spróbuj przygotować własne procedury rysujące kwadrat, romb, prostokąt
i równoległobok o zadanych przez Ciebie parametrach (długości boków i
kąty między bokami).
Powodzenia!
|