ОРГАНИЗАЦИЯ ЦИКЛОВ ОПЕРАТОРЫ ПОВТОРЕНИЯ
• WHILE • REPEAT • FOR
Оператор WHILE (цикл с предусловием) Общий вид оператора цикла с предусловием: While <условие> do <оператор>;
Блок - схема
Рекомендации • в условии, как в логическом выражении, должны обязательно фигурировать переменные, изменяющие свои значения в теле цикла; • во избежание зацикливания лучше сначала написать условие прекращения цикла и взять потом его отрицание; • переменные логического выражения должны получить свои исходные значения до входа в оператор WHILE.
Оператор REPEAT (цикл с постусловием) Общий вид оператора цикла с постусловием: Repeat <тело цикла > Until <условие>;
Блок - схема
Различия между WHILE и REPEAT • В операторе REPEAT проверка условия выхода из цикла выполняется в конце, а не в начале цикла, как в операторе WHILE. Поэтому в операторе REPEAT тело цикла выполняется хотя бы один раз. • В REPEAT выход из цикла осуществляется по истинности условия, а в WHILE - по ложности.
Оператор FOR (цикл с параметром) Общий вид оператора цикла с параметром: For I : = N 1 to N 2 do <оператор>;
Работа оператора FOR • Вычисляются начальное и конечное значения. • Параметр цикла получает начальное значение. • Проверяется условие Параметр цикла Конечное значение. • Если условие истинно, то выполняется тело цикла, в противном случае работа цикла прекращается. • параметр цикла увеличивается на единицу. • Переходим к п. 3.
Примеры. Условие задачи. • Ученик в первый день выучил 5 английских слов. В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий. Сколько английских слов выучит ученик в десятый день занятий? Введем следующие переменные: • A – количество слов, выученных в текущий день, • D – счетчик дней. • Начальные значения A = 5.
Решение задачи с помощью оператора WHILE Program English 1; Var A, D: integer; Begin A: =5; D: =2; While D<=10 do Begin A : = A+2; D: =D+1; End; Writeln (A); Readln End.
Решение задачи с использование оператора REPEAT Program English 2; Var A, D: integer; Begin A: =5; D: =2; repeat A : = A+2; D: =D+1 Until D>10; Writeln (A); Readln End.
Решение задачи с использование оператора FOR Program English 3; Var A, D: integer; Begin A: =5; For D : = 2 to 10 do A : = A+2; Writeln (A); Readln End.
Для самостоятельного выполнения • В условиях предыдущей задачи вычислите сколько английских слов выучит ученик за десять дней занятий? • Каждая бактерия в банке делится на две через каждые 3 минуты. В начальный момент времени имеется 1 бактерия. Сколько их будет через 15 минут? Через N минут?