Юный техник 1986-11, страница 59Попробуем составить программу, по которой работают простейшие лифты — которые «обслуживают» только один вызов и не останавливаются на промежуточных этажах. Чтобы сделать программу более понятной, мы используем в ней комментарии (см. словарик). А отличать комментарии от выполняемых команд будем по фигурным скобкам. В процессе составления программы нам понадобится изменять естественный порядок ее выполнения, чтобы иногда выполнялась не очередная команда, а некоторая другая, вполне определенная. Чтобы указать эту команду, используются метки (см. словарик). В команде «Перейти к метке» указывается метка того места программы, с которого нужно продолжать выполнять программу. Так, например, команда «Перейти к метке «Свободно» означает: найти в программе «флажок», на котором написано «Свободно», и перейти туда, то есть приступить к выполнению команды, записанной после метки «Свободно». Программе управления придется неоднократно перемещать лифт с одного этажа на другой — по вызову с этажа и по нажатию кнопки внутри кабины. Поэтому мы напишем про цедуру «Движение», выполняющую перемещение лифта с этажа, где он находится, на некоторый заданный этаж. Вот как она выглядит: Движение=процедура (Этаж назначения) {Эта процедура перемещает лифт на Этаж назначения} если Этаж назначения > >Текущий этаж то Вверх иначе Вниз конец условия пока Текущий этаж Этаж назначения выполнять (Лифт продолжает движение, программа ничего не делает} повторить {Здесь Текущий этаж — Этаж назначения} Стоп конец процедуры Движение Движение закончено. Но задача пока не решена. Нужна часть программы, которая будет работать, когда лифт стоит, а стоять он может по разным причинам. Во-первых, лифт может быть свободен. В этом случае программа должна ждать, когда кто-нибудь вызовет лифт или в него кто-то войдет. Лифт останавливается, приехав на этаж, с которого его вызвали. В этом случае программа должна в течение определенного времени — зададим его равным 7 секундам — не реагировать на вызовы и ждать, |