ОПЕРАТОРЫ ЦИКЛА
Автор: Юркова Татьяна Яковлевна
Учитель информатики
Г.Ростов-на-Дону МБОУ СОШ№97
СОДЕРЖАНИЕ
- Понятие цикла
- Оператор цикла с параметром
- Оператор цикла с предусловием
- Оператор цикла с постусловием
- Обобщение работы операторов цикла
Определение цикла
Циклом - называется последовательность действий, выполняемых многократно, каждый раз при новых значениях параметров.
Последовательность действий, выполняемых многократно называется – телом цикла .
Если заранее известно количество необходимых повторений, то цикл называется арифметическим .
Если количество повторений заранее неизвестно, то говорят об итерационном цикле.
Цикл For
Синтаксис:
for переменная := значение-1 to значение-2 do оператор
for переменная := значение-1 downto значение-2 do оператор
Пример 1. Квадраты чисел от 2-х до 10-и.
for x:=2 to 10 do WriteLn(x*x);
Пример 2. Латинский алфавит.
for ch:='A' to 'Z' do Writeln(ch);
Пример 3. Использование цикла с downto.
for i:=10 downto 1 do WriteLn(i);
Пример 4. Использование составного оператора.
for x:=1 to 10 do
begin
y:=2*x+3;
WriteLn('f(',x,')=',y);
end;
счетчик:=нач. значение;
счетчик:=нач. значение;
Счетчик меньше
Да
конечн. знач.
Да
Счетчик больше
конечн. знач.
Нет
Нет
Оператор
Оператор
счетчик:=счетчик - 1;
счетчик:=счетчик + 1;
3 Нет Ввод а Содержимое памяти Sum:=Sum + a; a = 0 неизвестно 4 10 i:=i + 1; 14 Sum = неизвестно 4 0 Вывод Sum i = 3 4 неизвестно 2 1 Конец " width="640"
Цикл For
Блок-схема
Программный код
Экран программы
Program SumPoz;
Var Sum, a, i: integer;
begin
Sum:=0;
For i:=1 to 3 do
begin
write(‘Ввод числа’);
readln(a);
Sum:=Sum + a;
end;
writeln(‘Sum = ’, Sum);
end.
Ввод числа
Ввод числа
Ввод числа
Sum = 14
4
10
0
Начало
Sum:=0;
i:=1;
Да
i3
Нет
Ввод а
Содержимое памяти
Sum:=Sum + a;
a =
0
неизвестно
4
10
i:=i + 1;
14
Sum =
неизвестно
4
0
Вывод Sum
i =
3
4
неизвестно
2
1
Конец
Цикл For
Сколько раз будут выполнены инструкции между Begin и End ?
for i := j to j+1 do
Begin
…
End;
Ответ: 2
k := 0 ;
for i := 2 downto k do
Begin
…
End;
Ответ: 3
Задания для индивидуальной работы
- Ввести с клавиатуры 10 произвольных чисел. Подсчитать и напечатать количество положительных, отрицательных и нулевых чисел
- Дана последовательность Y=n*x+(x-n)
Х – изменяется от 2 до 10 с шагом 1, n –ввести с клавиатуры.
Напечатать X и Y
3. Вывести таблицу умножения на 5 от 9 до 4 (1вар)
4.С клавиатуры ввести 10 чисел. Вычислить и напечатать среднее арифметическое этих чисел .(2 вар)
5.Найти площади прямоугольников со сторонами а и в=4,5,6,7,8 (3вар)
eps do x:=x/2; " width="640"
Цикл While
Синтаксис:
while выражение do оператор
Условие
выполняется
( true )
Нет
Да
Оператор
Пример.
eps:=0.001;
while x eps do
x:=x/2;
Цикл While
Блок-схема
Программный код
Экран программы
Program SumPoz;
Var Sum, a: integer;
begin
write(‘Ввод числа ’);
readln(a);
Sum:=0;
while a0 do
begin
Sum:=Sum + a;
write(‘Ввод числа’);
readln(a);
end;
writeln(‘Sum = ’, Sum);
end.
Ввод числа
Ввод числа
Ввод числа
Sum = 14
4
10
0
Начало
Ввод а
Sum:=0;
Нет
a0
Да
Sum:=Sum + a;
Содержимое памяти
Ввод а
неизвестно
a =
0
4
10
Sum =
неизвестно
4
14
0
Вывод Sum
Конец
Цикл While
Чему будет равно значение переменной n после
выполнения инструкций?
n:=0;
While ndo
n:=n+1;
Ответ: 5
Задания для индивидуальной работы
1 Вычислить и напечатать таблицу значений функции Y=cosX(X+1)(X-1)
X изменяется от -2 до +2 с шагом 0,1
2 Вычислить произведение элементов последовательности четных чисел от 2 до 10
3 Вывести элементы последовательности нечетных чисел от 1 до 9 в обратном порядке.
- Возвести число А в степень n
5 Написать программу подсчета N!
0; " width="640"
Цикл Repeat
Синтаксис:
repeat
оператор;
оператор;
...
оператор;
until выражение ;
Оператор
Условие
выполняется
( true )
Да
Нет
Пример.
repeat
WriteLn('Введите положительное число');
ReadLn(x);
until x0;
Цикл Repeat
Блок-схема
Программный код
Экран программы
Program SumPoz;
Var Sum, a: integer;
begin
Sum:=0;
Repeat
write(‘Ввод числа’);
readln(a);
Sum:=Sum + a;
Until a=0;
writeln(‘Sum = ’, Sum);
end.
Ввод числа
Ввод числа
Ввод числа
Sum = 14
4
10
0
Начало
Sum:=0;
Ввод а
Sum:=Sum + a;
Да
a=0
Содержимое памяти
Нет
0
неизвестно
a =
4
10
неизвестно
Sum =
4
14
0
Вывод Sum
Конец
Цикл Repeat
Что делают следующие инструкции?
n:=0;
Repeat
write(‘*’);
n:=n+1;
Until n
Ответ: Выводят
одну звездочку
Что нужно изменить в условии окончания цикла
для предыдущего примера, чтобы было выведено
5 звездочек?
Ответ: n=5
1) Вычисления S-суммы всех чисел Фибоначчи, которые не превосходят 10000 3. Ввести с клавиатуры n чисел. Вычислить сумму положительных чисел, порядковые номера которых четные. " width="640"
Задания для индивидуальной работы
- Произведение первых K четных чисел равно Pr . Сколько сомножителей взято.
2. Числа Фибоначчи f(n) определяются формулами: f 0 =f 1 =1; f n =f n-1 =f n-2 при n=2,3,…
Составить программу:
- Определения f– 20- число Фибоначчи;
- Поиска - первого числа Фибоначчи, большего m(m1)
- Вычисления S-суммы всех чисел Фибоначчи, которые не превосходят 10000
3. Ввести с клавиатуры n чисел. Вычислить сумму положительных чисел, порядковые номера которых четные.
Цикл For
for переменная := значение-1 to значение-2 do оператор
for переменная := значение-1 downto значение-2 do оператор
Цикл While
while выражение do оператор
Цикл Repeat
repeat
оператор;
оператор;
...
оператор;
until выражение ;
Отличия и особенности хорошего стиля работы с циклическими операторами
Цикл с предусловием WHILE Цикл с постусловием REPEAT
- До начала цикла должны быть сделаны начальные установки переменных, управляющих условием цикла, для корректного входа в цикл.
- В теле цикла должны присутствовать операторы, изменяющие переменные условия так, чтобы цикл через некоторое число итераций завершился.
3. Цикл работает пока условие истинно (пока true)
3. Цикл работает пока условие ложно ( пока false)
4. Цикл завершается, когда условие становится ложным
(до false)
4. Цикл завершается, когда условие становится истинным
5. Цикл может не выполнится ни разу , если исходное значение условия при входе в цикл равно false
(до true)
5. Цикл обязательно выполнится как минимум один раз.
6. Если в теле цикла требуется более одного оператора, то необходимо использовать составной оператор
6. Независимо от количества операторов в теле цикла использование составного оператора не требуется
n; " width="640"
Цикл со счетчиком for
1.Начальная установка переменной счетчика циклов до заголовка не требуется.
2. Изменение в теле цикла значений переменных, стоящих в заголовке цикла, не допускается.
3. Количество итераций цикла неизменно и точно определяется значениями нижней и верхней границ и шага цикла.
4. Нормальный ход работы может быть нарушен оператором goto.
5. Цикл может не выполнится ни разу, если шаг цикла будет изменять значение счетчика от нижней границы в направлении, противоположной верхней границе.
ПРИМЕР:
Составить программу нахождения произведения чисел от 1 до 10.
1 . WHILE
S:=1;
2.REPEAT
i:=1;
3. For
S:=1; n:=10;
While i
i:=1;
S:=1;
s:=s*I;
Repeat
n:=10;
For i:=1 to n do
i:=i+1;
s:=s*I;
s:=s*I;
i:=i+1;
Until in;