Studium Podyplomowe z Informatyki, Programowanie – materiały pomocnicze, przygotowała Helena Krupicka 1
Metoda wstępująca projektowania algorytmów Jest to metoda projektowania „od szczegółu do ogółu”. Zdefiniujemy procedury rysujące elementy rysunku, później wykorzystamy je do skomponowania rysunku z tych elementów.
Zadanie: Narysuj zestaw kolorowych domków i podpisz rysunek na ekranie O takie domki nam chodzi.
6j
6j
2j
j
j
2j
2j j j 2j
Rysunek 1. Domy
Czarodziejskie domki – poczekaj chwilę Rysunek 2. Specyfikacja domu
Najpierw należy podać specyfikację zadania (zob. rys. 2) Specyfikacja: Kształt i wymiary domku są na rysunku. Rysunek jest zależny od jednego parametru – jednostki j.
Zakładamy, że figury, z których składa się dom, rozpoczynamy rysować w lewym dolnym rogu i rysujemy z niezmiennikiem (położenia żółwia względem rysunku).
Przydatne będą procedury narzędziowe: hop przenosząca żółwia z punktu A do B bez rysowania i bez zmiany jego kierunku (zob. rys.
3) oraz maluj wskazanym kolorem.
Specyfikacja: żółw jest w A i ma kierunek AC, dane są odległości AC i CB.
:wbok
wyniki: żółw jest w B i ma kierunek AC, żółw nie zostawił śladu przejścia.
lub :dx
Metoda 1. Podnieś pisak. Naprzód wgórę, w prawo 90, naprzód wbok, w lewo 90. Opuść pisak.
C
Metoda 2. Podnieś pisak. W prawo 90, naprzód :dx, w lewo 90, naprzód :dy. Opuść pisak.
:wgórę
B
oto hop :wbok :wgórę oto hop :dx :dy lub :dy
; przeskok z punktu A do B (rys. 3) ; przeskok z punktu A do B (rys. 3) pod np :wgórę pw 90 np :wbok lw 90 opu pod pw 90 np :dx lw 90 np :dy opu już już A
Algorytm:
Rysunek 3. Ilustracja dla procedury hop 1. Narysuj ścianę – kwadrat 6jx6j
2. Narysuj okno – 4 kwadraty jxj
3. Narysuj dach – trójkąt równoboczny o boku 6j oto maluj :kolor
4. Sprowadź żółwia na początek domu (lewy dolny róg) ukp :kolor
hop 2 2
oto trójkąt :bok
oto starter
zamaluj
powtórz 3 [np :bok
W procedurze głównej,
; kolorowe domy
hop -2 (-2)
pw 120]
w komentarzach jest
; autor: Helena Krupicka
ukp "czarny
już
podane imię i
; mail: hkr@ii.uni.wroc.pl
już
nazwisko autora oraz
sż ct
adres e-mail
ps [Czarodziejskie domki - poczekaj oto dom :j
chwilę]
kwadrat 6*:j maluj jld powtórz 30[ cs
hop 2*:j 2*:j
ustalKolTła jld
powtórz 4 [kwadrat :j maluj "żółty hop -300 (-200) dom 20
np 2*:j pw 90]
hop 120 0 dom 20
hop (-2*:j) 4*:j
hop 200 40 dom 15
pw 30 trójkąt 6*:j maluj jld hop 150 80 dom 8
lw 30
Komentarz w Logo
hop 120 100 dom 6
;powrót na początek
rozpoczyna się od
czekaj 5000]
hop 0 (-6*:j)
znaku ; i kończy
pż
już
znakiem nowej linii
już
Studium Podyplomowe z Informatyki, Programowanie – materiały pomocnicze, przygotowała Helena Krupicka 2
Przydatne procedury np. w pliku pomoce.txt oto odnowa
cs ct pż
ukp "czarny
opu
ugp 1
ustalKolTła "biały
już
oto hop :dx :dy
pod
np :dy pw 90 np :dx lw 90
opu
już
oto kwadrat :a
powtórz 4 [np :a pw 90]
już
oto trójkąt :bok
powtórz 3 [np :bok pw 120]
już
oto prostokąt :a :b
powtórz 2 [np :a pw 90 np :b pw 90]
już
oto maluj :kolor
; kolor jest czarny
ukp :kolor
hop 2 2
zamaluj
hop -2 ( - 2 )
ukp "czarny
już
oto podpisz :dx :dy :co
; do podpisywania rysunków na ekranie graficznym
; podpis względem aktualnego położenia żółwia
; pozycja żółwia jest niezmiennikiem procedury
; zapamiętanie pozycji żółwia
przyp "pozycja_żółwia poz
hop :dx :dy
pisztekst :co
; przywrócenie pozycji zółwia przed pisaniem pod
napoz :pozycja_żółwia
opu
już