Język logo –grafika żÓŁwia



Pobieranie 40,9 Kb.
Data25.06.2018
Rozmiar40,9 Kb.

JĘZYK LOGO –GRAFIKA ŻÓŁWIA
Język Logo to kompilowany język wysokiego poziomu przeznaczony do nauki i pierwszego kontaktu z technikami programistycznymi.

Będziemy bazować na kompilatorze LOGO PLUS firmy Terrapin Software.

Podczas pisania poleceń języka Logo w trybie bezpośrednim (czyli do natychmiastowego wykonani) stosuj poniższe zasady ich wprowadzania:


  • Wykonanie komendy nastpuje dopiero po naciśnięciu klawisza ENTER,

  • Można umieszcza­ć wicej niż jedną instrukcję w wierszu, oddzielając je od siebie pojedynczymi spacjami,

  • Jeśli komenda wymaga podania dodatkowych danych (parametrów), np. RIGHT 90 (RIGHT to komenda, 90 to jest parametr), to należy oddzielić je od siebie co najmniej jedną spacją,

Instrukcje można pisać dużymi lub małymi literami-wielkość liter użytych w nazwach komend nie ma znaczenia.
Ponieważ sprawne pisanie programów wymaga pamiętania słów kluczowych, więc dla ich utrwalenia wykonaj kilka ćwiczeń. Spróbuj tak pokierować żółwiem, by narysował przedstawione poniżej figury:

Dużym ułatwieniem przy pisaniu programu jest instrukcja powtarzania, która umożliwia automatyczne, wielokrotne powtórzenie sekwencji tych samych komend. Jej składnia jest następująca:


REPEAT liczba_powtórzeń [ instrukcja1 instrukcja2 …….]
Przykłady:

REPEAT 10 [ FD 50 LT 160 FD 50 RT 160 ]


REPEAT 36 [ FD 50 BK 50 RT 10 ]
R
EPEAT 36 [ FD 100 REPEAT 4 [fd 10 rt 90 ] BK 100 RT 10 ]
REPEAT 10 [REPEAT 3 [FD 30 RT 120 ] RT 36 ]
Korzystając z komendy REPEAD , opracuj procedury rysujące:

  • Kwadrat, prostokąt,

  • Trójkąt równoboczny,

  • Pięciokąt, sześciokąt,

  • Trzydziestosześciokąt, koło,

  • Zobacz, co powstanie po wykonaniu sekwencji:

REPEAT 8 [ fd 50 rt 135 ]

Policz, ile jest 8 razy 135 stopni i co to może oznaczać. Potem w podobny sposób, korzystając z instrukcji REPEAD, narysuj pentagram (gwiazdę pięcioramienną). A może masz własne pomysły na figury tego typu?

Pisząc programy wszystkie niezbędne instrukcje zapisujemy w postaci procedur, która ma zawsze taką postać, jak na poniższym schemacie:

TO nazwa procedury

Linia z instrukcjami

Linia z instrukcjami

………………………

………………………

Linia z instrukcjami

END
Np

TO koło


REPEAT 360 [FD 1 RT 1]

END
TO trójkąt

REPEAT 3 [FD 50 RT 120]

LT 30


END
TO wytrzyj

CS

END



Zaprojektuj procedury rysujące :

  • Kwadrat, okno z kwadratów,

  • Trójkąt równoboczny, sześciokąt z trójkątów,

  • Sześciokąt foremny, fragment plastra miodu z sześciokątów,

  • Słoneczko, koło ze sprychami,

  • Linię przerywaną (słoneczko z przerywanymi promieniami),

  • Okrąg jako zbiór punktów jednakowo odległych od środka (niech żółw za każdym razem wyjeżdża ze środka na odległość promienia,

  • Stawia punkt I wraca do środka),

  • Gwiazdę pięcioramienną (wskazówka: wykorzystaj kąt 0,5*72 stopnie),

  • Mur z cegieł.

PROCEDURY Z PARAMETREM

Procedura rysująca kwadrat, w której przy każdym wywołaniu można decydować o długości boku powstającego kwadratu będzie wyglądać w następujący sposób:
TO kwadrat :bok

FD :bok RT 90

FD :bok RT 90

FD :bok RT 90

FD :bok RT 90

END
Lub:


TO kwadrat :bok

REPEAT 4 [ FD :bok RT 90 ]

END
Wywołanie procedury jest następujące:

Np. kwadrat 30

Lub kwadrat 40

Itd.


Wzorując się na powyższym przykładzie opracuj procedury z parametrem rysujące:

  • Trójkąt równoboczny, którego długość boków można podać za pomocą parametru,

  • Linię przerywaną, w której długość pojedynczego odcinka składowego jest parametrem,

  • Wielokąt foremny o dowolnej ilości boków,


Procedura funkcji obliczającej kwadrat liczby:


TO potega :liczba

OUTPUT :liczba * :liczba

END
Potega 12
Wzorując się na powyższym przykładzie zaprojektuj funkcje obliczające:


  • Sześcian danej liczby,

  • Potęgi wyższe niż 3,

  • Pole prostokąta o podanych wymiarach,

  • Wysokość trójkąta równobocznego o podanym boku.

Procedury rekurencyjne:

Jak wygląda rekurencja w praktyce? Popatrz na prosty przykład mówiący o tym, jak osiągnąć sukces:
TO sukces

PRINT [ucz sie Logo]

Sukces

END


Zauważysz od razu, że w treści procedury użyto jej własnej nazwy, a więc wywołujemy ją samą.Program w tym momencie wraca na początek procedury. I tak bez końca. Dlatego procedura rekurencyjna powinna mieć tzw. Warunek stopu, czyli ustalony instrukcją warunkową moment zakończenia pracy np.

TO sukces

IF :n > 1000 [PRINT [juz nie moge] STOP] ( warunek stopu)

PRINT [ucz sie Logo]

Sukces :n+1 ( wywołanie rekurencyjne)

END
oto jeszcze inne przykłady:

TO spirala :d

IF :d > 300 [STOP]

FD :d RT 90

Spirala :d+2

END
Wypróbuj różne wartości kąta(91, 135, 155, 170)w instrukcji RT, a otrzymasz bardzo ciekawe efekty.
TO rysuj :n

IF :n > 100 [STOP]

PP kwadrat :n

WAIT 1


PE kwadrat :n

Rysuj :n+1

END
Procedura na obliczanie sumy kolejnych liczb całkowitych od 1 do n.
TO suma :n

IF :n = 0 [OP 0]

OP :n + suma :n-1

END
Wzorując się na procedurze suma, napisz samodzielnie funkcję obliczającą sumę liczb parzystych od 1 do n.

FRAKTALE-dodatkowo
Fraktale to obiekty graficzne –figury geometryczne o specyficznej własności, polegającej na tym, że jeśli się powiększy dowolną ilość razy wybrany fragment takiej figury, to wygląda on tak samo jak przed powiększeniem.
Oto przykład fraktala-drzewo:
TO drzewo :n :a

HT PU BK :a PD rysuj :n :a ST

END

Druga:


TO listek :a

FD :a


BK :a

End
Trzecia:

TO rysuj :n :a

IF :n=0 [listek :a stop)

FD :a LT 45

Rysuj :n-1 :a*1/2

RT 90 rysuj :n-1 :a*1/2

LT 45 BK :a

End
Opracuj procedury rysujące:




Uruchamiając kolejne poniższe procedury, popraw występujące w nich błędy. Za każdym razem wypróbuj działanie kolejnej procedury, od jej poprawności bowiem może zależeć operacja wykonywana w następnej . Jeśli nie popełnisz błędu, procedura dom narysuje obrazek pokazany na rysunku:




TO KWADRAT :BOK

REPEAT 4[FD :BOK RT 90

END
TO PROSTOKAT :WYSOK :SZEROK

REPEAT 2[FD :WYSOK RT 90

FD :SZEROK RT 90]

END
TO HOP : POZ :PION

PD

IF :PION>0 [FD :PION] [BK :POZ]



IF :POZ>0 [RT 90 FD :POZ LT 90]

[LT 90 FD :POZ RT 90]

PU

END
TO BUDYNEK



PROSTOKAT 100 150

END
TO DRZWI

PROSTOKAT :30 20

END
TO KOMIN

PROSTOKAT 10 15

END
TO DACH

HOP –10 0 PROSTOKAT 10 170 HOP 10 0

HOP 90 10 KOMIN –90 –10

END
TO OKNO

HOP 0 10


REPEAT 4[KWADRAT 10 RT ]

HOP 0 –10

END
TO 3-OKNA

REPEAT 3[HOP 30 0 OKNO]

HOP –90 0

END
TO 9-OKIEN

REPEAT 3(3-OKNA HOP 0 30)

HOP 0 –90

END
TO ZIEMIA

HOP –50 0

RT 45 FD 250 LT 90

HOP –200 0

END
TO DOM

HOP –30 0

ZIEMIA

BUDYNEK


HOP 120 0 DRZWI HOP –120 0

HOP 0 10 9-OKIEN

HOP 0 90 DACH

HOP 0 –100



END



©operacji.org 2017
wyślij wiadomość

    Strona główna