Цикл – пока (с предусловием)

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

Выполняется следующим образом:

Сначала проверяется условие. Если оно истинно, то выполняется тело цикла. Если условие становится ложным, то тело цикла не выполняется, а выполняется следующий за END оператор. Таким образом, если условие с самого начала ложно, то тело цикла не выполнится ни разу.

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

Тело цикла с предусловием выполняется пока условие истинно

 ПРИМЕР 1. 

ПРИМЕР 2. Пары неотрицательных вещественных чисел вводятся с клавиатуры. Посчитать произведение для каждой пары и сумму всех чисел.

program cycle_while;
var x,y,sum:real;
otv:char;
begin
sum:=0;
otv=’Д’;
while (otv=’Д’) or (otv=’д’) do
begin
write(‘Введите числа x,y > 0 ‘);
readln(x,y);
writeln(‘Их произведение = ‘,x*y:8:3);
sum:=sum+x+y;
write(‘Завершить программу (Д/Н)? ‘);
readln(otv);
end;
writeln(‘Общая сумма = ‘,sum:8:3);
readln
end.

ПРИМЕР 3. Нахождение наибольшего общего делителя двух целых чисел с помощью Алгоритма Эвклида.

program Evklid;
var a,b,c:integer;
begin
write(‘введите два целых числа : ‘);
readln(a,b);
while b<>0 do
begin
c:=a mod b;
a:=b;
b:=c;
end;
writeln(‘наибольший общий делитель = ‘,a);
readln
end.

ПРИМЕР 4. Подсчитать количество нечетных цифр в записи натурального числа n.

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

1. Ввести число n
2. K := 0 {подготавливаем счётчик}
3. Если n = 0, переход к шагу 7
4. Если n mod 10 mod 2 = 1, то K := K +1
5. n := n div 10
6. Переход к шагу 3
7. Вывод K
8. Конец

ПРИМЕР 5. Дана последовательность, общий член которой определяется формулой an=(n-1)/(n*n). Вычислить при n>2 сумму тех ее членов, которые больше заданного числа k. При решении задачи находится очередной член последовательно и, если он больше k, добавляется к сумме.

Решение:

1. Ввести k
2. S := 0
3. A := 1/4
4. n := 3
5. Сравнить А с k. Если A>= k, переход к шагу 10
6. S := S + A
7. A := (n-1)/(n*n)
8. n := n + 1
9. Переход к шагу 5
10. Вывод S
11. Конец
Добавить комментарий