Слайд 1Циклические алгоритмы
Презентация 10-27
Слайд 2 Цикл – это последовательность операторов, которая может выполняться более одного раза.
Циклический
алгоритм – это алгоритм, содержащий один или несколько циклов.
Слайд 3Виды циклов:
цикл с предусловием;
цикл с постусловием;
цикл со счетчиком.
Слайд 4Оператор цикла
с предусловием while
Циклы с предусловием используются тогда, когда
выполнение цикла связано с некоторым логическим условием. Оператор цикла с
предусловием имеет две части: условие выполнения цикла и тело цикла.
При выполнении оператора while определенная группа операторов выполняется до тех пор, пока определенное в операторе while булево условие истинно. Если условие сразу ложно, то оператор не выполнится ни разу.
Слайд 5Общая форма записи оператора цикла с предусловием while
while do
begin
группа операторов
end;
пока выполняется это условие делай
от начала
группа операторов
до конца;
Слайд 6При использовании цикла
с предусловием надо помнить:
значение условия выполнения цикла
должно быть определено до начала цикла;
если значение условия истинно, то
выполняется тело цикла, после чего повторяется проверка условия. Если условие ложно, то происходит выход из цикла;
хотя бы один из операторов, входящих в тело цикла, должен влиять на значение условия выполнения цикла, иначе цикл будет повторяться бесконечное число раз.
Слайд 7Пример Найти сумму некоторого количества чисел, задаваемых пользователем.
Исходными данными в
этом случае являются переменная N - количество чисел и сами
эти числа. Значение очередного числа обозначим переменной Х. Результатом работы алгоритма станет сумма этих чисел, которую обозначим переменной S.
S=x1+x2+x3+...+xn
Допустимые значения переменной N должны удовлетворять условию N>0, так как количество слагаемых не может быть числом отрицательным.
Слайд 8Пример
Program Summa_1;
var i, N: integer; x, S: real;
begin
cls;
write ('Сколько чисел для сложения? ');
readln (N);
S:=0;
i:=1;
while i<=N do
begin
write ('Введите ',i,'-е число ');
readln (x);
S:=S+x;
i:=i+1;
end;
write ('Сумма введенных чисел равна ', s);
End.
Слайд 9Оператор цикла
с постусловием repeat
Оператор повтора repeat аналогичен оператору while,
но отличается от него, во-первых, тем, что условие проверяется после
очередного выполнения операторов тела цикла и таким образом гарантируется хотя бы однократное выполнение цикла, а во-вторых, тем, что критерием прекращения цикла является равенство выражения константе True, т.е. если результат булевского выражения равен False, то тело цикла активизируется еще раз; если результат равен True, то происходит выход из цикла.
Слайд 10Общая форма записи оператора цикла с постусловием repeat
repeat
оператор
until условие;
повтор
оператор
до
выполнения условия;
Слайд 11Общая форма записи оператора цикла с постусловием repeat
В операторе repeat
не нужны операторные скобки begin - end для нескольких операторов:
repeat
оператор 1;
оператор 2;
оператор 3;
...........
оператор N
until условие;
Слайд 12Пример
Вводить с клавиатуры числа до тех пор, пока их
сумма не превысит заданное ранее число.
Program Summa_2;
var x, M, sum:
real;
Begin
write('Введите контрольное число ');
readln(M);
sum := 0;
repeat
readln(x);
sum := sum + x
until sum > M;
writeln('Результат: ', sum)
end.
Слайд 13Задания
1. Запишите число, которое будет напечатано в результате выполнения программы.
var
s, n: integer;
begin
s := 47;
n := 1;
while
s > 0 do
begin
s := s - 9;
n := n + 4
end;
writeln(n)
end.
Слайд 14Задания
2. Запишите число, которое будет напечатано в результате выполнения программы.
var
n, s: integer;
begin
n := 1;
s := 0;
while
n <= 100 do
begin
s := s + 30;
n := n * 3
end;
write(s)
end.
Слайд 15Задания
3. Запишите число, которое будет напечатано в результате выполнения программы.
var
n, s: integer;
begin
n := 4;
s := 15;
while s
do
begin
s := s + 12;
n := n + 2
end;
write(n)
end.
Слайд 16Задания
4. Запишите число, которое будет напечатано в результате выполнения программы.
var
s, n: integer;
Begin
s := 0;
n := 0;
while 2*s*s < 123 do
begin
s := s + 1;
n := n + 3
end;
writeln(n)
end.
Слайд 17Задания
5. Запишите число, которое будет напечатано в результате выполнения программы.
var
k, s: integer;
begin
s:=1;
k:=0;
while k
< 13 do
begin
s:=s+2*k;
k:=k+4;
end;
write(s+k);
end.
Слайд 18Задания
6. Запишите число, которое будет напечатано в результате выполнения программы.
var
k, s: integer;
begin
s:=3;
k:=1;
while k
< 25 do
begin
s:=s+k;
k:=k+2;
end;
write(s);
end.
Слайд 19Задания
7. Построить и записать в виде программы алгоритм вычисления суммы
квадратов десяти произвольных чисел, водимых с клавиатуры в процессе выполнения
программы.
8. Вводятся 15 чисел. Определить, сколько среди них отрицательных чисел.
9. Составить программу нахождения суммы чётных чисел, находящихся в промежутке от 26 до 88.
10. Вывести все чётные числа начиная с числа N и до числа M. Числа N и M задает пользователь.
Слайд 20Задания
11. Спортсмен в первый день пробежал 10 км. Каждый следующий
день он увеличивал норму на 10% от нормы предыдущего дня.
а)
Определить через сколько дней спортсмен пробежит суммарный путь более 100 км.
б) Определить через сколько дней спортсмен будет пробегать более 20 км.
в) Какой путь пробежит спортсмен на 7-й день.
Слайд 21Домашнее задания
§ 21(оператор while и repeat), задания из презентации