Юный техник 1986-11, страница 59

Юный техник 1986-11, страница 59

Попробуем составить программу, по которой работают простейшие лифты — которые «обслуживают» только один вызов и не останавливаются на промежуточных этажах. Чтобы сделать программу более понятной, мы используем в ней комментарии (см. словарик). А отличать комментарии от выполняемых команд будем по фигурным скобкам.

В процессе составления программы нам понадобится изменять естественный порядок ее выполнения, чтобы иногда выполнялась не очередная команда, а некоторая другая, вполне определенная. Чтобы указать эту команду, используются метки (см. словарик). В команде «Перейти к метке» указывается метка того места программы, с которого нужно продолжать выполнять программу. Так, например, команда «Перейти к метке «Свободно» означает: найти в программе «флажок», на котором написано «Свободно», и перейти туда, то есть приступить к выполнению команды, записанной после метки «Свободно».

Программе управления придется неоднократно перемещать лифт с одного этажа на другой — по вызову с этажа и по нажатию кнопки внутри кабины. Поэтому мы напишем про

цедуру «Движение», выполняющую перемещение лифта с этажа, где он находится, на некоторый заданный этаж. Вот как она выглядит:

Движение=процедура (Этаж назначения)

{Эта процедура перемещает лифт на Этаж назначения} если Этаж назначения > >Текущий этаж то Вверх иначе Вниз конец условия

пока Текущий этаж Этаж назначения выполнять (Лифт продолжает движение, программа ничего не делает} повторить

{Здесь Текущий этаж — Этаж

назначения}

Стоп

конец процедуры Движение

Движение закончено. Но задача пока не решена. Нужна часть программы, которая будет работать, когда лифт стоит, а стоять он может по разным причинам. Во-первых, лифт может быть свободен. В этом случае программа должна ждать, когда кто-нибудь вызовет лифт или в него кто-то войдет. Лифт останавливается, приехав на этаж, с которого его вызвали. В этом случае программа должна в течение определенного времени — зададим его равным 7 секундам — не реагировать на вызовы и ждать,