Лекция 10.Цикл с предварительным условием. Реализация алгоритмов с использованием повторения. автор: Садовский Ефим Моисеевич1. Повторение. Цикл For. Общий вид. Недостатки.
2. Цикл WHILE. Практически универсальный цикл (может применяться во всех случаях, когда необходим цикл). Чаще всего применяется тогда, когда нельзя использовать For: то есть неизвестно сколько раз выпол-нять цикл или до какого значения изменяется переменная цикла. Общий вид: Переменная цикла:=начальное значение; /Может быть заменено вводом начального значения с клавиатуры/while <условие> do
begin
команды;
переменная цикла:=переменная цикла+шаг;
end; Команды, стоящие между begin и end, выполняются до тех пор, пока условие истинно. ВНИМАНИЕ! В цикле While очень легко допустить ошибку! Цикл WHILE выполняется до тех пор, пока условие цикла истинно, поэтому обязательно в какой-то момент условие должно стать ложным, иначе программа будет выполняться бесконечно (будет зациклена). Прерывание выполнения программы – кнопка Stop. Сравним решение задачи: Пример 1: Найти сумму чисел от 1 до N, кратных 5. С помощью For: | С помощью While: | Program prim1;
var s,i,n:integer;
begin
s:=0;
write('Введите N');
readln(n);
for i:=1 to n do
if i mod 5=0 then
s:=s+i;
writeln('Сумма S=',s);
end. | Program prim1;
var s,i,n:integer;
begin
s:=0;
write('Введите N');
readln(n);
i:=5;
while i<=n do
begin
s:=s+i;
i:=i+5;
end;
writeln('Сумма S=',s);
end. |
Обратите внимание на то, что решение с циклом For проще записать, однако цикл For перебирает все значения от 1 до n с шагом 1 и отбирает кратные 5, а цикл While «перепрыгивает» через 5 (шаг между числами, кратными 5). Поэтому начальное значение i=5, а шаг изменения переменной – тоже 5 (заметьте, что он может быть любым, в том числе и дробным!). Если Вы забудете набрать строку i:=i+5; программа при выполнении «зациклится» (цикл буде выполняться бесконечно!). С помощью цикла While можно решать задачи, которые нельзя решить с помощью цикла For.
Пример 2: Найти сумму чисел от 1, кратных 5. Складывать до тех пор, пока сумма не станет больше N. Program prim2;
var s,i,n:integer;
begin
s:=0;
write('Введите N');
readln(n);
i:=5;
while s<=n do
begin
s:=s+i;
i:=i+5;
end;
writeln('Сумма S=',s);
end. 3. Решение задач. 1. Вычислить сумму 1+2+3+… Складывать до тех пор, пока сумма не станет больше 10000. 2. Найти произведение: 3*7*11*15*... Умножать до тех пор, пока произведение не станет больше N. 3. Найти произведение: П = 23*43*63*83*... Умножение выполнять до тех пор, пока множитель не станет больше 1000.К О Н С П Е К Т Тема: Цикл с предварительным условием. Реализация алгоритмов с использованием повторения. 1. Цикл WHILE (цикл с предварителбным условием). Практически универсальный цикл (может применяться во всех случаях, когда необходим цикл). Общий вид: Переменная цикла:=начальное значение; /Может быть заменено вводом начального значения с клавиатуры/while <условие> do
begin
команды;
переменная цикла:=переменная цикла+шаг;
end; (Перевод: While - пока) Команды, стоящие между begin и end, выполняются до тех пор, пока условие истинно. ВНИМАНИЕ! В цикле While очень легко допустить ошибку! Цикл WHILE выполняется до тех пор, пока условие цикла истинно, поэтому обязательно в какой-то момент условие должно стать ложным, иначе программа будет выполняться бесконечно (будет зациклена). Прерывание выполнения программы – кнопка Stop. Пример 1: Найти сумму чисел от 1 до N, кратных 5.
Program prim1;
var s,i,n:integer;
begin
s:=0;
write('Введите N');
readln(n);
i:=5;
while i<=n do
begin
s:=s+i;
i:=i+5;
end;
writeln('Сумма S=',s);
end. Пример 2: Найти сумму чисел от 1, кратных 5. Складывать до тех пор, пока сумма не станет больше N.Program prim1;
var s,i,n:integer;
begin
s:=0;
write('Введите N');
readln(n);
i:=5;
while i<=n do
begin
s:=s+i;
i:=i+5;
end;
writeln('Сумма S=',s);
end.
pascal, pascal, pascal, pascal while, pascal while, while
|