Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, базовый уровень)



Уроки 21 - 22
Цикл с условием. Цикл с переменной
§58. Циклические алгоритмы




Содержание урока

Как организовать цикл?

Циклы с условием

Цикл с переменной

Вложенные циклы

Вопросы и задания

Задачи (1 - 16)

Задачи (17 - 32)


Циклы с условием


Рассмотрим следующую задачу: определить количество цифр в десятичной записи целого положительного числа. Будем предполагать, что исходное число записано в целую переменную n.

Сначала составим алгоритм решения этой задачи. Чтобы считать что-то в программе, нужно использовать переменную, которую называют счётчиком. Для подсчёта количества цифр нужно как-то отсекать эти цифры по одной, с начала или с конца, каждый раз увеличивая счётчик. Начальное значение счётчика должно быть равно нулю, так как до выполнения алгоритма ещё не найдено ни одно цифры.

Для отсечения первой цифры необходимо заранее знать, сколько цифр в десятичной записи числа, т. е. нужно заранее решить ту задачу, которую мы решаем. Следовательно, этот метод не подходит.

Отсечь последнюю цифру проще — достаточно разделить число нацело на 10 (поскольку речь идёт о десятичной системе). Операции отсечения и увеличения счётчика нужно выполнять столько раз, сколько цифр в числе. Как же «поймать» момент, когда цифры кончатся? Несложно понять, что в этом случае результат очередного деления на 10 будет равен нулю, это и говорит о том, что отброшена последняя оставшаяся цифра. Изменение переменной n и счётчика для начального значения 1234 можно записать в виде таблицы на рис. 8.1.

Рис. 8.1

Рис. 8.1

Псевдокод выглядит так:

счётчик:=0

пока n>0

отсечь последнюю цифру n

увеличить счётчик на 1


Программа на школьном алгоритмическом языке очень похожа на псевдокод, а программа на Паскале почти совпадает с его переводом на английский язык:

Здесь целочисленная переменная-счётчик имеет имя count. Отметим, что в Паскале после ключевого слова do стоит составной оператор, ограниченный ключевыми словами begin ... end. Если в теле цикла нужно выполнить только один оператор, эти операторные скобки можно не ставить.

Обратите внимание, что проверка условия выполняется в начале цикла. Такой цикл называется циклом с предусловием (т. е. с предварительной проверкой условия) или циклом «пока». Если в начальный момент значение переменной n будет нулевое или отрицательное, цикл не выполнится ни одного раза.

В данном случае количество шагов цикла «пока» неизвестно, оно равно количеству цифр введённого числа, т. е. зависит от исходных данных. Цикл этого вида может быть использован и в том случае, когда число шагов известно заранее или может быть вычислено:

Если условие в заголовке цикла никогда не нарушится, цикл будет работать бесконечно долго. В этом случае говорят, что программа зациклилась. Например, если забыть увеличить переменную k в рассмотренном выше примере, программа зациклится:

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

Этот цикл закончится тогда, когда станет истинным условие n>0 в последней строке, т. е. тогда, когда пользователь введёт допустимое значение. Обратите внимание на особенности этого вида цикла:

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

Следующая страница Цикл с переменной



Cкачать материалы урока







Наверх