Слайд 1ПРОГРАММИРОВАНИЕ ЦИКЛОВ
УРОК 33
Слайд 2В процессе решения множества задач часто требуется повторять те или
иные действия. При этом бывают разные ситуации.
Например:
количество повторений известно
до выполнения тела цикла;
до выполнения тела цикла количество повторений неизвестно;
тело цикла должно выполниться хотя бы один раз.
Слайд 3Для разных ситуаций существуют различные циклические конструкции.
В языке программирования
Паскаль их три, в соответствии с пунктами, описанными выше.
Самой универсальной
и поэтому чаще других используемой конструкцией цикла является второй вариант (цикл while).
Слайд 4Цикл while является циклом с предусловием, while do
begin группа операторов end;
В заголовке цикла находится логическое выражение. Если
оно истинно, то тело цикла выполняется, если ложно — то нет. Если тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения).
Слайд 5Тело цикла выполнится столько раз, сколько раз логическое выражение вернет
true.
Поэтому очень важно в теле цикла предусмотреть изменение переменной,
фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false.
Иначе произойдет так называемое зацикливание.
Слайд 6Например, нужно распечатать n звездочек
Решение:
Var i, n: integer;
begin
write('Количество
знаков: '); readln(n);
i:=l;
while i
Слайд 8Задание 1. Найдите сумму всех натуральных чисел из промежутка [1,
m]
Решение:
Program Summa;
Var i, m: integer; x, S: real;
Begin
write('Сколько чисел для сложения?');
readln(m); S:=l; i:=l;
while i<=m do begin S:=S+i; i:=i+l; end;
write('Cyммa равна ',s:5:2);
End.
Слайд 9Задание 2. Найдите сумму n чисел, вводимых с клавиатуры
Решение:
Program Summa;
Var
i, N : integer; x, S : real;
Begin
write('Сколько чисел для
сложения?'); readln(N);
S:=0; i:=1;
while i<=N do begin
write('Введите ‘, i ,’-e число’);
readln(x); S:=S+x; i:=i+l; end;
write('Сумма введенных чисел равна ',s:5:2);
End.
Слайд 10Задание 3. Выведите квадраты натуральных чисел, не превосходящих 50
Решение:
var
x, n: integer;
begin
write('n='); readln(n);
x:=l;
while sqr(x)
'); x:=x+l
end; end.
Слайд 11Задание 4.
Возведите число в степень
Решение:
Var num, deg: integer; res:
real; i: byte;
begin
write('Число'); readln(num);
write('Cтепень'); readln(deg);
res:=l; i:=0;
while i
res:=res*num; i:=i+1
end;
if deg<0 then
res:=l/res;
writeln(res:10:5);
end.
Слайд 12Как программируется цикл с предусловием на языке Паскаль?
Слайд 13Домашнее задание
Вывести все четные числа, начиная с числа N и
кончая числом М. Числа N и М задает пользователь.
Вводятся 14
чисел. Определить, сколько среди них положительных (включая 0) и сколько отрицательных. (Числа вводятся в одну переменную в цикле.)
Слайд 141. Program dz1;
var х, n, m: integer;
begin
write('n='); readln(n); write('m=');
readln(m);
x:=n;
while x
Слайд 152. Program dz2;
Var i, N : integer; x, S :
real;
Begin
S1:=0; S2:=0; i:=l;
while i
x>=0 then sl:=sl+l else s2:=s2+l; i:=i+l;
end;
write('пoлoжитeльныxчисел', sl:5, 'отрицательных чисел', s2:5);
End.