На реке. Совет по программированию

Есть разные способы запрограммировать черепашек, представляющих собой плот и кораблик. Самый простой способ состоит в том, чтобы попросить черепашек постоянно выполнять следующие инструкции:

для черепашки с именем плот

вп река

для черепашки с именем катер

если_иначе курс = 90 [вп кораблик + река][вп кораблик - река]

Или на листе Программ написать примерно такую процедуру:

это плыви
плот, всегда   [вп река]
катер, всегда [если_иначе курс = 90
				[вп кораблик + река]
				[вп кораблик - река]]
конец

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

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

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

Такой погрешности можно избежать, если движением как плота, так и кораблика будет управлять один и тот же процесс. Попробуйте написать процедуру, в которой кораблик и плот делают по одному шагу в течение программного цикла:

это плыви
плот, вп река
катер, если_иначе курс = 90 [вп кораблик + река][вп кораблик - река]
конец

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

Учителю Закрыть это окно