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

стр.

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

Другими словами, человеческий язык, в отличие от языка, на котором общаются между собой животные, организован по правилам грамматики.

Что же касается машинных языков, то они строятся так же — по грамматическим правилам.

Две грамматические конструкции — последовательное выполнение команд и разветвление — нам уже известны.

Итак…

Урок третий

ЕЩЕ ОДНА КОНСТРУКЦИЯ ПРОГРАММИРОВАНИЯ — «ЦИКЛ»

На другой день ровно в десять часов стена раздвинулась, шлюпка с клипера ткнулась носом в песок, и на берег сошел Казимир вместе со всей своей компанией.

Он поздоровался с Петей и тут же, повернувшись к гребцам и поднеся ладони раструбом ко рту, зычно протрубил мелодию, довольно известную у военных людей, в которой повторяются только три слова: «Бери ложку, бери бак! Бери ложку, бери бак! Бери ложку, бери бак!»

— Приготовиться к принятию вкусной и здоровой пищи! — скомандовал Великий Магистр.

— Всегда готовы! — дружно ответили гребцы.

— Вы что, опять собираетесь есть? — спросил Петя.

— Опять, — сказал Великий Магистр. И матросам: — Орудие на берег, ребята.

— Казимир, а вам не кажется, что вы слишком часто думаете о еде?

— Кажется. Только почему «слишком часто»? Я думаю об этом всегда.

— А вам не надоедает?

— Милый ты мой! Да как же могут надоесть размышления о предмете, который доставляет столько радости?

— А есть что-нибудь такое, о чем вы не любите думать?

— Есть, — сказал Казимир. — Но вернемся к программированию. На чем мы вчера остановились?

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

— Да. Такой способ называется «цикл».

ПРОГРАММА ДЛЯ ИСПОЛНИТЕЛЯ «ПАРИКМАХЕР»

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

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

— Помнишь, что такое спецификация? — спросил Казимир.

— Да. Это текст программы, который написан «по-человечески».

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

Петя взглянул на текст и легко перевел его:

— До тех пор, пока в парикмахерской очередь, парикмахер должен подстригать клиентов.

— А теперь скажи, каким словом в программе обозначена команда на проверку?

— Я думаю, словом «пока».

— Правильно думаешь. Так вот, вся эта конструкция называется «циклом». Состоит она из слов «пока» и «повторять». Обозначение «пока… повторять…» называется «оператором цикла». А все команды, которые находятся между словами «пока» и «конец цикла», называются «телом цикла».

— Так мало слов и так много работы! — восхищенно сказал Петя.

— Ее может быть еще больше, — сказал Казимир. — Вообрази, что очередь — без конца. Что тогда будет делать Исполнитель?

— Значит, он тоже будет работать без конца?

— Совершенно верно. Будет бесконечно повторять один и тот же приказ. Программисты в таких случаях говорят: «Исполнитель зациклился».

— А если у Исполнителя кончился рабочий день? Если ему вообще нужно устроить перерыв в работе?

Для таких случаев у программистов есть еще один вариант конструкции цикла. Вот такой…

И тут в Петину руку влетел еще один листок бумаги. На нем было написано:

— Переведи, — велел Казимир.

— Пожалуйста. Парикмахер должен подстричь двадцать человек.

— Верно. И это — тоже «конструкция цикла». А оператор цикла здесь обозначен словами «повторять… раз».

— А где в этой программе проверка?

— Сам догадайся.

— В словах «столько-то раз», так?

— Так.

— Значит, в данной программе Исполнитель не проверяет, есть ли в парикмахерской очередь?