Metoda wstępująca projektowania algorytmów

Transkrypt

Metoda wstępująca projektowania algorytmów
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
Rysunek 1. Domy
2j j j
2j
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.
wyniki: żółw jest w B i ma kierunek AC, żółw nie zostawił śladu przejścia.
Metoda 1. Podnieś pisak. Naprzód wgórę, w prawo 90, naprzód wbok, w lewo 90. Opuść pisak.
Metoda 2. Podnieś pisak. W prawo 90, naprzód :dx, w lewo 90, naprzód :dy. Opuść pisak.
:wbok
lub :dx
C
B
:wgórę
lub :dy
A
Rysunek 3. Ilustracja dla procedury hop
oto maluj :kolor
ukp :kolor
hop 2 2
zamaluj
hop -2 (-2)
ukp "czarny
już
oto dom :j
kwadrat 6*:j
hop 2*:j 2*:j
powtórz 4 [kwadrat :j
np 2*:j pw 90]
hop (-2*:j) 4*:j
pw 30 trójkąt 6*:j
lw 30
;powrót na początek
hop 0 (-6*:j)
już
oto hop :wbok :wgórę
; przeskok z punktu A do B (rys. 3)
pod np :wgórę pw 90 np :wbok lw 90 opu
już
Algorytm:
1. Narysuj ścianę – kwadrat 6jx6j
2. Narysuj okno – 4 kwadraty jxj
3. Narysuj dach – trójkąt równoboczny o boku 6j
4. Sprowadź żółwia na początek domu (lewy dolny róg)
oto trójkąt :bok
powtórz 3 [np :bok
pw 120]
już
W procedurze głównej,
w komentarzach jest
podane imię i
nazwisko autora oraz
adres e-mail
maluj jld
maluj "żółty
maluj jld
oto hop :dx :dy
; przeskok z punktu A do B (rys. 3)
pod pw 90 np :dx lw 90 np :dy opu
już
Komentarz w Logo
rozpoczyna się od
znaku ; i kończy
znakiem nowej linii
oto starter
; kolorowe domy
; autor: Helena Krupicka
; mail: [email protected]
sż ct
ps [Czarodziejskie domki - poczekaj
chwilę]
powtórz 30[ cs
ustalKolTła jld
hop -300 (-200) dom 20
hop 120 0 dom 20
hop 200 40 dom 15
hop 150 80 dom 8
hop 120 100 dom 6
czekaj 5000]
pż
już
Studium Podyplomowe z Informatyki, Programowanie – materiały pomocnicze,
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ż
przygotowała Helena Krupicka
2

Podobne dokumenty