НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




предыдущая главасодержаниеследующая глава

21. Бесконечные дороги черепахи


Мы уже знаем, как заставить черепаху начертить круговую орбиту:

ЭТО ОРБИТА
 ПОВТОРИ 360 [ВПЕРЕД 1 ВПРАВО 1]
КОНЕЦ

Но как заставить ее кружить по этой орбите подобно спутнику? Команда ПОВТОРИ здесь не годится, ибо при ней следует указать число витков. Но в таком случае... нельзя ли так отредактировать процедуру ОРБИТА, чтобы она выполнялась бесконечно? Можно. Для этого после того, как черепаха начертит окружность, она снова должна выполнить процедуру ОРБИТА:

ЭТО ОРБИТА
 ПОВТОРИ 360 [ВПЕРЕД 1 ВПРАВО 1]
 ОРБИТА
КОНЕЦ

ПОНЯТНО, ЧТО ТАКОЕ ОРБИТА.

Выведем теперь черепаху на орбиту:

ОРБИТА


До каких пор она будет кружиться? Нельзя же ждать до бесконечности! Нажмем на клавишу МК - Г.

Если разобраться хорошо в процедуре ОРБИТА, можно заметить, что черепаха должна выполнять бесконечное число раз только два действия: ВПЕРЕД 1 и ВПРАВО 1. Но в таком случае команда ПОВТОРИ не нужна. Процедуру ОРБИТА можно сократить:

ЭТО ОРБИТА 
 ВПЕРЕД 1 
 ВПРАВО 1 
 ОРБИТА
КОНЕЦ

При выполнении процедуры черепаха сделает шар вперед, повернется вправо на один градус и снова выполнит процедуру ОРБИТА, т. е. опять сделает шаг вперед, повернется вправо на один градус и так - до бесконечности.

Проверим:

ОРБИТА


Как мы и ожидали, поведение черепахи не изменилось.

А теперь дадим волю фантазии и представим себе, как будет двигаться черепаха по треугольной, квадратной и пятиугольной орбите:

ЭТО ОРБИТА1 
 ВПЕРЕД 50 
 ВПРАВО 120 
 ОРБИТА 1
КОНЕЦ


ЭТО ОРБИТА2 
 ВПЕРЕД 50 
 ВПРАВО 90 
 ОРБИТА2 
КОНЕЦ


ЭТО ОРБИТА3 
 ВПЕРЕД 50 
 ВПРАВО 72 
 ОРБИТА3
КОНЕЦ


Естественно, что на каждой орбите движение осуществляется по сокращенной процедуре. (Не забывайте, что сигналом аварийного останова служит МК - Г.)

Процедуры ОРБИТА, ОРБИТА 1, ОРБИТА2 и ОРБИТА3 используют сами себя. Такие процедуры называются рекурсивными.

Заметим, что последние три процедуры отличаются только величиной угла, на который поворачивается черепаха. Конечно, можно экспериментировать и с другими углами:

ЭТО ОРБИТА4 
 ВПЕРЕД 50 
 ВПРАВО 160 
 ОРБИТА4 
КОНЕЦ

ПОНЯТНО, ЧТО ТАКОЕ ОРБИТА4. 
ЭТО ОРБИТА5 
 ВПЕРЕД 
 ВПРАВО 144 
 ОРБИТ А5 
КОНЕЦ

ПОНЯТНО, ЧТО ТАКОЕ ОРБИТА5.
Проверим:
ОРБИТ А4


ГРАФИКА 
ОРБИТА5


Ясно, что черепаха может двигаться и по звездообразной орбите.

Сделаем еще один эксперимент:

ЭТО ОРБИТА6 
 ВПЕРЕД 60 
 ВПРАВО 3 
 ОРБИТА6 
КОНЕЦ 

ПОНЯТНО, ЧТО ТАКОЕ ОРБИТА6.
ОРБИТА6


Экран оказался тесным для черепахи, и она совсем запуталась. Возможно, для многих из вас рекурсивные процедуры также сначала покажутся запутанными. Но стоит лишь один раз в них разобраться, как сих помощью вы сможете совершать чудеса.

Упражнения
  1. Которая из следующих процедур позволяет получить фигуру с наибольшей площадью?
    ЭТО ФИГУРА1 
     ВПЕРЕД 20 
     ВПРАВО 120 
     ФИГУРА1 
    КОНЕЦ 
    
    ЭТО ФИГУРА2 
     ВПЕРЕД 20 
     ВПРАВО 30 
     ФИГУР А2 
    КОНЕЦ
    
    ЭТО ФИГУРА3 
     ВПЕРЕД 20 
     ВПРАВО 60 
     ФИГУРА3 
    КОНЕЦ
    
    
  2. В одной из процедур упр. 1 сделайте следующие изменения:
    а) замените команду ВПЕРЕД командой НАЗАД;
    б) замените команду ВПРАВО командой ВЛЕВО;
    в) сделайте одновременно замены а) и б);
    г) поменяйте местами команды, используя все возможные комбинации.
    Что получается в результате действия измененной процедуры?
  3. Сократите процедуру:
    ЭТО ФИГУРА4 
     ВПЕРЕД 20 
     ВПРАВО 25 
     ВЛЕВО 145 
     ВПРАВО 480 
     ВПЕРЕД 10 
     ВПРАВО 20 
     НАЗАД 0 
     ВПРАВО 70 
     ВПЕРЕД 15
    КОНЕЦ
    
    
  4. Напишите рекурсивную процедуру, при выполнении которой черепаха будет двигаться по восьмиконечной звезде.
  5. Заставьте черепаху двигаться по шестиугольной, восьмиугольной и девяти угольной орбитам.
  6. Напишите рекурсивную процедуру, при выполнении которой черепаха будет двигаться подобно секундной стрелке часов.
  7. Напишите рекурсивную процедуру, при выполнении которой черепаха двигается равномерно прямолинейно со скоростью 10 шагов в секунду.
  8. Напишите рекурсивную процедуру, при выполнении которой компьютер будет выводить на экран натуральный ряд чисел.
  9. Напишите рекурсивную процедуру, при выполнении которой черепаха будет многократно писать на экране слово МИР.
  10. Напишите рекурсивную процедуру, при выполнении которой компьютер будет играть многократно мелодию:

  11. Какая фигура получится при выполнении процедуры ФИГУР А5:
    ЭТО ФИГУРА5
     СДЕЛАЙ "СТОРОНА 0 
     СДЕЛАЙ "УГОЛ 60 
     ФИГУРА6 
    КОНЕЦ
    
    ЭТО ФИГУРА6
     ВПЕРЕД :СТОРОНА 
     ВПРАВО :УГОЛ
     СДЕЛАЙ ''СТОРОНА :СТОРОНА+3 
     ФИГУРА6 
    КОНЕЦ
    
    
  12. Измените процедуру ФИГУРА5 (см. упр. 11) таким образом, чтобы получилась другая фигура.
  13. Какую фигуру начертит черепаха при выполнении процедуры ФИГУРА7:
    ЭТО ФИГУРА7 
     КВАДРАТ 
     ВПРАВО 10 
     ФИГУРА7 
    КОНЕЦ
    
    ЭТО КВАДРАТ
     ПОВТОРИ 4 [ВПЕРЕД 40 ВПРАВО 90]
    КОНЕЦ
    
    
  14. Замените в процедуре ФИГУРА7 (см. упр. 13) процедуру КВАДРАТ процедурой вычерчивания другой фигуры.
  15. О каких природных явлениях можно сказать, что они "запрограммированы" при помощи рекурсивной процедуры?
  16. Напишите программу для исполнения грузинской народной песни Сулико:

предыдущая главасодержаниеследующая глава








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь