Книга: Пять уроков Великого Магистра, или повесть о том, как Петя Бочкин изучал программирование
ПРОГРАММА ДЛЯ ИСПОЛНИТЕЛЯ «ПАРИКМАХЕР»
ПРОГРАММА ДЛЯ ИСПОЛНИТЕЛЯ «ПАРИКМАХЕР»
— Представьте себе Исполнителя под названием, ну, скажем, «Парикмахер». Он выполняет только одну стандартную команду «подстричь клиента» и только одну стандартную проверку: «есть ли в парикмахерской очередь?» Тогда многократное выполнение команды будет достигнуто вот таким образом…
Казимир, демонстрируя свое могущество, щелкнул пальцами, откуда-то выпорхнул лист бумаги и влетел прямо в Петину руку. Вот что было написано там:
— Помнишь, что такое спецификация? — спросил Казимир.
— Да. Это текст программы, который написан «по-человечески».
— Правильно. А сейчас попробуй перевести на «человеческий» язык программу, которая у тебя в руках.
Петя взглянул на текст и легко перевел его:
— До тех пор, пока в парикмахерской очередь, парикмахер должен подстригать клиентов.
— А теперь скажи, каким словом в программе обозначена команда на проверку?
— Я думаю, словом «пока».
— Правильно думаешь. Так вот, вся эта конструкция называется «циклом». Состоит она из слов «пока» и «повторять». Обозначение «пока… повторять…» называется «оператором цикла». А все команды, которые находятся между словами «пока» и «конец цикла», называются «телом цикла».
— Так мало слов и так много работы! — восхищенно сказал Петя.
— Ее может быть еще больше, — сказал Казимир. — Вообрази, что очередь — без конца. Что тогда будет делать Исполнитель?
— Значит, он тоже будет работать без конца?
— Совершенно верно. Будет бесконечно повторять один и тот же приказ. Программисты в таких случаях говорят: «Исполнитель зациклился».
— А если у Исполнителя кончился рабочий день? Если ему вообще нужно устроить перерыв в работе?
Для таких случаев у программистов есть еще один вариант конструкции цикла. Вот такой…
И тут в Петину руку влетел еще один листок бумаги. На нем было написано:
— Переведи, — велел Казимир.
— Пожалуйста. Парикмахер должен подстричь двадцать человек.
— Верно. И это — тоже «конструкция цикла». А оператор цикла здесь обозначен словами «повторять… раз».
— А где в этой программе проверка?
— Сам догадайся.
— В словах «столько-то раз», так?
— Так.
— Значит, в данной программе Исполнитель не проверяет, есть ли в парикмахерской очередь?
— Не проверяет.
— А почему вы мне об этом не сказали?
— А зачем я должен тебе все разжевывать? По тексту программы ты и сам догадался, что в данном случае Исполнитель осуществляет другую проверку, чем в первый раз. Кстати, какую? Скажи об этом понятнее.
— В данном случае… — сказал Петя, размышляя, — в данном случае… Исполнитель может СЧИТАТЬ клиентов. То есть он все время проверяет, сколько человек ему осталось подстричь перед тем, как прекратить работу.
— Как видишь, — сказал Казимир, — имеется два варианта конструкции цикла. В одном из них используется оператор «пока (не выполнено какое-то условие) — повторять (какое-то действие)». А в другом варианте можно использовать оператор «повторять… (сколько-то) раз». Выбор конструкции зависит от того, каким будет исходный алгоритм.
— А что такое — исходный алгоритм? — спросил Петя.
— Об этом мы поговорим когда-нибудь после. А сейчас ты должен запомнить еще одно. Операторы цикла, как и условные операторы, можно записывать в программах не только по-русски, но и по-английски. Оператор «пока… повторять…» можно записать английскими словами «While…» «do…». А русское слово «раз» программисты часто заменяют словом «step» (шаг).[2]
- НОВАЯ ПРОГРАММА ДЛЯ КУЛИНАРНО-АРТИЛЛЕРИЙСКОЙ УСТАНОВКИ
- Задание a1 для исполнителя Робот
- Программа «Тайный покупатель»
- Программа Victoria
- Подпрограмма обработки прерывания
- Магическая программа, или Беспорядок по расписанию
- Что делать, если вместо русских букв в программах – непонятные символы?
- Как называется программа, которая устанавливает Windows за 5 минут?
- Программа shmget
- Какая программа позволяет создавать документы формата PDF?
- Удаляю Windows Messenger из автозапуска, но после перезагрузки программа снова запускается. С другими приложениями таког...
- При установке Windows ХР с загрузочного диска после тестирования программа установки сообщает, что не найден ни один жес...