Пять уроков Великого Магистра, или повесть о том, как Петя Бочкин изучал программирование | страница 25



— Да, но ведь в следующую секунду скорость ракеты снова повысится?

— И тогда компьютер вызовет из памяти старое значение скорости и снова скажет: «переменной «скорость» присваивается такое-то значение». Например, два километра двадцать метров в секунду. И, что интересно, компьютер будет действовать по программе, которую ввел в него программист. А программа, если сильно упрощать дело, будет выглядеть так:

Или так:

— Ну что? — спросил Казимир. — Знакомые конструкции?

— Да, — сказал Петя. — Первая — это разветвление. А вторая — цикл.

— Прекрасно, — сказал Казимир. — Тогда последнее. Команду «присвоить значение» в текстах программы словами не записывают. Вместо слов употребляют вот такой знак.

И Казимир нарисовал шпагой на песке:

— Это все равно, как если соединить вместе два знака — «разделить» и «равняется», — сказал Петя. — Правда, Казимир?

— Да, — ответил Великий Магистр. — Те, кто его придумали, долго себе голову не ломали. Творили, так сказать, из подручного материала. Запомни: этот знак называется «оператор присваивания».

Казимир приблизился к орудию.

— А теперь вернемся к нашему обеду. Можешь ли ты сразу дать спецификацию для Исполнителя?

— Значит, так. Три матроса любят сгущенку, а три — тушенку. Поэтому Кристина должна выстрелить три раза сгущенкой и три раза — тушенкой. Всего шесть раз.

— Как бы ты назвал переменную, которая будет фигурировать в программе?

— Я бы назвал ее «заряд».

— Можно и так, — сказал Казимир. — Пиши программу.

И Петя написал:

ПОДОЙТИ К ОРУДИЮ
ЗАРЯД:= СГУЩЕНКА
ПОВТОРЯТЬ 3 РАЗА
 ЕСЛИ
 ОРУДИЕ НЕ ЗАРЯЖЕНО
  ЗАРЯДИТЬ ОРУДИЕ
  ВЫСТРЕЛИТЬ
 КОНЕЦ ЦИКЛА
КОНЕЦ УСЛОВИЯ
ЗАРЯД:= ТУШЕНКА
ПОВТОРЯТЬ 3 РАЗА
 ЕСЛИ
 ОРУДИЕ НЕ ЗАРЯЖЕНО
  ЗАРЯДИТЬ ОРУДИЕ
  ВЫСТРЕЛИТЬ
 ИНАЧЕ
  ВЫСТРЕЛИТЬ
КОНЕЦ ЦИКЛА
КОНЕЦ УСЛОВИЯ
КОНЕЦ

МЕТКА. ОПЕРАТОР ПЕРЕХОДА

— Правильно? — спросил Петя.

— Правильно.[3]

— Можно вводить?

— Погоди. Не кажется ли тебе, что программа несколько длинновата?

— Ну и что? Зато правильно.

— После операторов присваивания идут совершенно одинаковые блоки, состоящие из конструкций разветвления и цикла…

— Я и сам вижу.

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

— Подождите, Казимир! Я ничего не понимаю. Как — пометить? Что это за «оператор перехода»?

— Меткой обычно служит какая-нибудь буква латинского алфавита, чаще всего «L». Ее ставят перед той командой, к которой нужно вернуться в ходе выполнения граммы. А приказом к возвращению к помеченной команде служит оператор перехода. Обозначается он так: «перейти к…». Или по-английски: «go to». Если в тексте граммы имеется выражение: «перейти к…» (или «go to…»), то Исполнитель прервет последовательный порядок выполнения команд, отыщет в своей памяти команду, помеченную «L», и выполнит именно эту команду.