> if условие_выхода_из_цикла then Break;
Внимание: вызов процедуры BREAK допустим только внутри циклов!
Посмотрите, как изменится блок-схема с оператором BREAK (рис. 30), здесь оператор принятия решения я заменил пунктирным прямоугольником.
Рис.30 – Блок-схема циклической программы с оператором Break
Согласно схеме, оператор BREAK передаст управление в точку, следующую за UNTIL. Применительно к нашей программе условие досрочного выхода из цикла будет таким.
> if S=’’ then break;
Слегка изменив предыдущую версию программы, я получил вариант, показанный ниже.
>{ P_12_3 – часовой с досрочным выходом из цикла }
>var S : string;
>begin
> repeat
> Writeln(’Пароль?’); Readln(S);
> { если строка пуста, то выход из цикла }
> if S=’’ then break;
> if S = ’pascal’
> then Writeln(’Проходите!’)
> else Writeln(’Стойте!’)
> until S=’’;
> Writeln(’До встречи! Нажмите Enter’); Readln;
>end.
Досрочный выход из цикла упрощает программу, но пользоваться им надо аккуратно, с умом. Не забывайте, что после BREAK программа переходит к оператору, следующему за UNTIL.
Итоги
• Оператор цикла REPEAT-UNTIL организует многократное повторение операторов, вставленных между этими ключевыми словами.
• Условие выхода из цикла следует за ключевым словом UNTIL, цикл повторяется до тех пор, пока условие НЕ соблюдается.
• Оператор BREAK выполняет досрочный выход из цикла с обходом условия в UNTIL.
А слабо?
А) Сколько операторов можно вставить между REPEAT и UNTIL?
Б) Будет ли проверяться условие в UNTIL при досрочном выходе из цикла?
В) Возьмите за основу программу «P_11_1» и переделайте ее в циклический вариант. Или слабо?
Г) Напишите программу для угадывания слова. Она должна запрашивать от пользователя строки, пока тот не введет слово, предусмотренное в программе.
Что приятней, получать подарки или дарить их? Сейчас узнаем: вот вам автомобиль – дарю! Будете в школу на нём гонять. Впрочем, мой подарок не бескорыстен, и взамен я жду вашей помощи.
«Автомобиль – не роскошь, а средство передвижения» – утверждал персонаж книги Ильфа и Петрова. Что бы сказал он сегодня, томясь в унылых пробках? Теперь и вы за рулем, значит, дорожные пробки – наша общая напасть. Так будем бороть её вместе! Ведь все для этого есть, – в каком веке то живем! Что ни автомобиль – то бортовой компьютер, а космос ломится от спутников! Создадим программу для бортового компьютера автомобиля. Компьютер будет принимать сигналы от спутников системы ГЛОНА́СС (это ГЛОба́льная НАвигацио́нная Спу́тниковая Систе́ма) и сообщать о дорожных пробках. К деталям этого проекта обратимся позже, а начнем, как водится, издалека – из космоса.
Есть ли жизнь на Марсе?
Об этом все ещё спорят ученые, не находя ответа. «Спросите что попроще, – скажете, – например, мой возраст». Но если бы здесь отвечал компьютер, то вопрос о Марсе он счел бы простым, а вопрос о возрасте – сложным. Почему?
А потому, что о марсианской жизни можно ответить односложно: «да» или «нет». А сообщая возраст, надо указать какое-то число или дату рождения. Ещё сложнее растолковать компьютеру, как выглядит, к примеру, цветок или бабочка, тут не отделаться одним числом, а тем паче ответом «да» или «нет». Такие вопросы требуют сложного ответа, несущего много информации. Стоп! Я упомянул информацию? Вот о ней – об информации – потолкуем подробней.
Информация и её мерило
Компьютер обрабатывает информацию, – это все знают. Только почему, соорудив столько программ, мы все ещё не знаем, что такое информация? Её трактуют по-разному, одно из определений таково: «информация – это то, что устраняет неопределенность». В самом деле, задавшись неким вопросом, мы испытываем неопределенность, а получив ответ, избавляемся от неё, и на душе становится легче.
Получить ответ – это значит получить информацию. А сколько мы при этом её получаем, чем измерить это количество? Математики догадались, что меньше всего информации заключено в односложном ответе: «да» или «нет». Это количество взято за мерило и названо битом (по-английски «BIT»). Крупные единицы информации содержат много битов: байт – восемь битов, 1 Кбайт (читается «кибибайт») – 1024 байта и так далее, – об этом можно прочитать в школьных учебниках. Стало быть, ответ на вопрос «быть или не быть?» содержит всего один бит информации, – компьютер считает такие вопросы простыми. Ответы на сложные вопросы (например, как выглядит то, или это) могут содержать миллионы байтов. В этом легко убедиться по размеру файла с какой-нибудь фотографией или фильмом.