Ж) Программа запрашивает в цикле два числа: вертикаль и горизонталь шахматной доски (числа от 1 до 8), а затем печатает цвет клетки на их пересечении. Если хотя бы одно из чисел равно нулю, цикл завершается. Если числа выходят за указанные пределы, сообщает об ошибке и повторяет запрос чисел.

Подсказка: на пересечении 1-й строки и 1-го столбца находится чёрная клетка.

Глава 17

И вновь за парту

Натешившись глупой игрушкой, сотворенной нами в предыдущей главе, с новыми силами набросимся на экзаменатора, ведь он ещё не совсем настоящий. Настоящий экзаменатор выставляет оценку, не так ли? Пусть наша программа оценивает ученика по количеству допущенных ошибок. Ответив, к примеру, на 15 вопросов, ученик получит:

• «отлично» – за ноль ошибок;

• «хорошо» – за 1-2 ошибки;

• «удовлетворительно» – за 3-5 ошибок;

• «неуд» – за 6 ошибок и более.

Цикл со счетчиком

Очевидно, что новая версия экзаменатора будет циклической (рис. 39), только условие выхода из цикла будет теперь другим.

Рис. 39 – Блок-схема экзаменатора, выставляющего оценку

Основное отличие этой версии от предыдущих состоит в применении счетчиков. Один из них подсчитывает количество заданных вопросов (то есть проходов цикла), а другой – количество ошибок. Что такое счетчик? Это числовая переменная, наращиваемая по ходу выполнения программы. Сначала рассмотрим тонкости, связанные с подсчетом вопросов.

Зададимся простой задачей: распечатать на экране числа от 1 до 10. Вот как это делается оператором REPEAT-UNTIL.

var N : integer;       { счетчик }

begin

      N:=1;

      repeat

      Writeln(N);

      N:= N+1;

      until N>10

end.

Первый из выделенных операторов устанавливает счетчик цикла в единицу, – программисты называют это инициализацией цикла. Другой выделенный оператор наращивает счетчик. Эта пара операторов, как принято говорить, организует цикл. Слабость такой организации в том, что действуют операторы порознь, а это таит две неприятности.

Человеку свойственно ошибаться, и программисты забывают порой вставить в программу ту или иную строчку. Что случится, если пропустить инициализацию? Значение счетчика N останется неопределенным, и цикл выполнится непонятно сколько раз. А если проворонить второй оператор? Счетчик наращиваться не будет, и цикл станет повторяться вечно, – программа, как говорят, зациклится! Во избежание таких ошибок в Паскале предусмотрен цикл со счетчиком.

Цикл со счетчиком объединяет в одной конструкции три действия: инициализацию счетчика, его приращение и проверку условия завершения цикла. Если б написать его по-русски, то оператор выглядел бы так:

Вы читаете Песни о Паскале
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату