WIELOSPI - labirynty rekurencjiOtwórzmy nowy projekt o nazwie SPIRALE. Zaczniemy od budowania procedury WIELOSPI z parametrami
bok, kąt i bokKonc. Procedura powinna zaczynać
rysowanie od małego boku np. 5 kroków żółwia, a
następny, rysowany po skręcie bok ma być o 5 kroków
większy od poprzedniego i tak dalej, aż do narysowania
najdłuższego boku, który podajemy jako bokKonc. Mamy
tu trzy elementy charakterystyczne dla budowy procedury
rekurencyjnej: Skąd jednak procedura będzie wiedziała, że ma
narysować kolejny bok dłuższy od poprzedniego. To
proste – procedura rysuje bok, którego wartość
podajemy przy jej wywołaniu, jeśli przy każdym
kolejnym wywołaniu bok ma być większy o 5 od
poprzedniego, to należy zwiększać bok przy wywołaniu
rekurencyjnym. Zapiszmy plan procedury WIELOSPI z parametrami bok, kąt,
bokKonc: Trzeba jeszcze zbudować główną procedurę. Ma ona za
zadanie wczytać dane dla procedury, a następnie
wywołać ją. Plan głównej procedury jest następujący: oto wielo :kąt :bokKonc wielospi 5 :kąt :bokKonc już oto wielospi :bok :kąt :bokKonc jeśli :bok > :bokKonc [stop] np :bok pw :kąt wielospi :bok + 5 :kąt :bokKonc już |
![]() 90 ![]() 120 ![]() 135 ![]() 144 ![]() 166 ![]() 172 |
![]() 89 ![]() 121 ![]() 123 ![]() 165 ![]() 171 ![]() 71 |