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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

— Так.

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

— Не проверяет.

— А почему вы мне об этом не сказали?

— А зачем я должен тебе все разжевывать? По тексту программы ты и сам догадался, что в данном случае Исполнитель осуществляет другую проверку, чем в первый раз. Кстати, какую? Скажи об этом понятнее.

— В данном случае… — сказал Петя, размышляя, — в данном случае… Исполнитель может СЧИТАТЬ клиентов. То есть он все время проверяет, сколько человек ему осталось подстричь перед тем, как прекратить работу.

— Как видишь, — сказал Казимир, — имеется два варианта конструкции цикла. В одном из них используется оператор «пока (не выполнено какое-то условие) — повторять (какое-то действие)». А в другом варианте можно использовать оператор «повторять… (сколько-то) раз». Выбор конструкции зависит от того, каким будет исходный алгоритм.

— А что такое — исходный алгоритм? — спросил Петя.

— Об этом мы поговорим когда-нибудь после. А сейчас ты должен запомнить еще одно. Операторы цикла, как и условные операторы, можно записывать в программах не только по-русски, но и по-английски. Оператор «пока… повторять…» можно записать английскими словами «While…» «do…». А русское слово «раз» программисты часто заменяют словом «step» (шаг).[2]

Оглавление книги


Генерация: 3.187. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз