Programowanie w języku LOGO KOMENIUSZ Wykład nr 1 mgr inż. Józef Wójcik e-mail: jwojcik@pwsz-ns.edu.pl www.it.pwsz-ns.edu.pl/~jwojcik
2
Wprowadzenie Język Logo powstał w Laboratorium Sztucznej Inteligencji w MIT (Massachusetts Institute of Technology) w latach siedemdziesiątych naszego stulecia. Został opracowany przez grupę uczonych pod kierownictwem Seymoura Paperta. W pracach nad nim wykorzystano wyniki badań szwajcarskiego pedagoga i psychologa, profesora Jeana Piageta (09.08.1896-16.09.1980). Logo jest językiem edukacyjnym, językiem pierwszego kontaktu człowieka z komputerem, jest nowoczesnym językiem wysokiego poziomu, umożliwiającym rozwiązywanie bardzo poważnych problemów z informatyki, matematyki i innych dziedzin. Prostota i przejrzystość powodują, że jest on łatwy i wyjątkowo przyjemny w obsłudze, wyrabia dobre nawyki, uczy zasad poprawnego, strukturalnego programowania. Strukturalnego czyli takiego, w którym złożone, trudne i skomplikowane problemy rozkładane są na mniejsze i mniejsze tak długo, aż staną się proste, łatwe i zrozumiałe. 3
Program Logo Komeniusz jest typową aplikacją pracującą w środowisku WINDOWS. Polecenie wybieramy klikając myszką wybraną ikonę, lub naciskając odpowiadający jej klawisz funkcyjny od F1 do F12. Wybranie ikony lub klawisza F5 spowoduje zmianę całego ekranu na ekran graficzny, natomiast wciskając przycisk lub klawisz F7 zamieniamy cały ekran na ekran tekstowy, powrót do standardowego podziału okna głównego uzyskujemy wybierając przycisk lub naciskając klawisz F6. 4
Ekran graficzny to obszar po którym porusza się żółw Logo Standardowo znajduje on się w trybie SKLEJ, tzn. przeciwległe krawędzie ekranu graficznego są jakby ze sobą połączone; żółw przekraczając lewą krawędź pojawia się po prawej stronie ekranu. Ekran tekstowy służy głównie do wprowadzania poleceń, czyli rozkazów dla żółwia. Standardowo żółw Logo jest schowany, możemy go zobaczyć wpisując w wierszu ekranu tekstowego polecenie pż (pokaż żółwia), można też tak ustawić parametry początkowe, żeby żółw był widoczny zaraz po uruchomieniu programu. Wykonywanie rozkazów odbywa się po naciśnięciu klawisza ENTER? (wykonaj). Żółw porusza się po ekranie krokami, przy czym jeden krok to jeden punkt graficzny tzw. piksel. Podczas wędrówki żółw może znaczyć swój ślad pisakiem. 5
Program komputerowy to zrozumiały dla komputera ciąg instrukcji. Każdy program napisany jest w jakimś języku programowania. Zestaw instrukcji opisujących całą aplikację nazywamy kodem źródłowym programu. Taki 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). 6
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. Praca w Logo Komeniusz może odbywać się w trzech trybach, których wyboru dokonuje 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. 7
Kilka procedur pierwotnych: np - (naprzód) przesuwa zółwia do przodu o daną liczbę np 10 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. 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. odnowa - zresetuj ekran. pod - podnieś pisak. opu - opuść pisak. pówtórz - powtarza daną operację X razy np. powtórz 4. ustaltło - ustala dane tło ukp - ustal kolor pisaka. ugp - ustal grobość pisaka. 8
Linijka żółwia Obrót żółwia Kod kolorów i okno wyboru kolorów 9
Aby narysować kwadrat należy wykonać 7 instrukcji: Lub można użyć pętli: powtórz l_iteracji [ciąg instrukcji] powtórz 4 [ np 50 pw 90 ] 10
Procedury bez parametrów 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 (na przykład NP, WS, CS PW czy LW). Wykorzystując istniejące procedury możesz budować własne, odpowiadające chwilowym potrzebom programów. Definicję procedury rozpoczyna się od słowa oto. Następnie podaj nazwę procedury (nie może ona zawierać spacji), potem dodaj treść procedury. Koniec sygnalizujesz słowem już. oto nazwa_procedury treść procedury już Procedury z parametrami oto nazwa_procedury :par_1 :par_2 itd. treść procedury już 11
Iteracja Procedury bez parametrów: oto kwadrat powtórz 4 [ np 100 pw 90 ] już oto prostokąt powtórz 2 [ np 100 pw 90 np 200 pw 90 już oto trójkąt powtórz 3 [np 200 pw 120] już oto okrąg powtórz 36 [ np 10 pw 10 ] już Procedury z parametrami: oto kwadrat :a powtórz 4 [ np :a pw 90 ] już oto prostokąt :a :b powtórz 2 [ np :a pw 90 np :b pw 90 już oto trójkąt :a powtórz 3 [np :a pw 120] już oto okrąg :r powtórz 36 [ np :r pw 10 ] już 12
Iteracja 13
Iteracja 14
Iteracja 15
Rekurencja 16
Rekurencja 17
Rekurencja 18
Fraktale Płatek Kocha 19
Fraktale Drzewo binarne 20
Fraktale Trójkąt Sierpińskiego 21
Drzewo Pitagorasa 22
Fraktale 23
Fraktale Fraktale 24
Procedury tekstowe 25
Procedury tekstowe 26
Procedury tekstowe 27
Procedury tekstowe 28
Procedury tekstowe 29