Определение цикла Циклом - называется последовательность действий, выполняемых многократно, каждый раз при новых значениях параметров. Последовательность действий, выполняемых многократно называется – телом цикла. Если заранее известно количество необходимых повторений, то цикл называется арифметическим. Если количество повторений заранее неизвестно, то говорят об итерационном цикле.
Ввод числа Ввод числа Ввод числа Sum = 14 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. Начало i:=1; i>3 Нет Sum:=Sum + a; Ввод а Вывод Sum Конец Да Блок-схема Программный код Экран программы Содержимое памяти a = Sum = неизвестно неизвестно 4 10 0 4 0 4 10 14 0 Sum:=0; i:=i + 1; i = неизвестно 1 2 3 4 Цикл For
Цикл For for переменная := значение-1 to значение-2 do оператор for переменная := значение-1 downto значение-2 do оператор Цикл While while выражение do оператор Цикл Repeat repeat оператор; оператор; ... оператор; until выражение;
Цикл For Сколько раз будут выполнены инструкции между Begin и End? for i:=j to j+1 do Begin … End; k:=0; for i:=2 downto k do Begin … End; Ответ: 2 Ответ: 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вар)
Цикл While Синтаксис: while выражение do оператор Пример. eps:=0.001; while x > eps do x:=x/2; Условие выполняется (true) Да Оператор Нет
Ввод числа Ввод числа Ввод числа Sum = 14 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:=0; a0 Да Sum:=Sum + a; Ввод а Вывод Sum Конец Нет Блок-схема Программный код Экран программы Содержимое памяти a = Sum = неизвестно неизвестно 4 10 0 4 0 4 10 14 0 Цикл While
Цикл While Чему будет равно значение переменной n после выполнения инструкций? n:=0; While n
Задания для индивидуальной работы 1 Вычислить и напечатать таблицу значений функции Y=cosX(X+1)(X-1) X изменяется от -2 до +2 с шагом 0,1 2 Вычислить произведение элементов последовательности четных чисел от 2 до 10 3 Вывести элементы последовательности нечетных чисел от 1 до 9 в обратном порядке. Возвести число А в степень n 5 Написать программу подсчета N!
Ввод числа Ввод числа Ввод числа Sum = 14 Program SumPoz; Var Sum, a: integer; begin Sum:=0; Repeat write(‘Ввод числа’); readln(a); Sum:=Sum + a; Until a=0; writeln(‘Sum = ’, Sum); end. Цикл Repeat Начало Sum:=0; a=0 Нет Sum:=Sum + a; Ввод а Вывод Sum Конец Да Блок-схема Программный код Экран программы Содержимое памяти a = Sum = неизвестно неизвестно 4 10 0 4 0 4 10 14 0
Цикл Repeat Что делают следующие инструкции? n:=0; Repeat write(‘*’); n:=n+1; Until n
Задания для индивидуальной работы Произведение первых K четных чисел равно Pr. Сколько сомножителей взято. 2. Числа Фибоначчи f(n) определяются формулами: f0=f1=1; fn=fn-1=fn-2 при n=2,3,… Составить программу: Определения f– 20- число Фибоначчи; Поиска - первого числа Фибоначчи, большего m(m>1) Вычисления S-суммы всех чисел Фибоначчи, которые не превосходят 10000 3. Ввести с клавиатуры n чисел. Вычислить сумму положительных чисел, порядковые номера которых четные.
Отличия и особенности хорошего стиля работы с циклическими операторами Цикл с предусловием WHILE Цикл с постусловием REPEAT До начала цикла должны быть сделаны начальные установки переменных, управляющих условием цикла, для корректного входа в цикл. В теле цикла должны присутствовать операторы, изменяющие переменные условия так, чтобы цикл через некоторое число итераций завершился. 3. Цикл работает пока условие истинно(покаtrue) 3.Цикл работает пока условие ложно(покаfalse) 4. Цикл завершается, когда условие становится ложным (доfalse) 4. Цикл завершается, когда условие становится истинным (доtrue) 5. Цикл можетне выполнится ни разу, если исходное значение условия при входе в цикл равноfalse 5. Цикл обязательновыполнится как минимум один раз. 6. Если в теле цикла требуется более одного оператора, то необходимо использоватьсоставной оператор 6. Независимо от количества операторов в теле цикла использованиесоставного оператора не требуется
Цикл со счетчиком for 1.Начальная установка переменной счетчика циклов до заголовка не требуется. 2. Изменение в теле цикла значений переменных, стоящих в заголовке цикла, не допускается. 3. Количество итераций цикла неизменно и точно определяется значениями нижней и верхней границ и шага цикла. 4. Нормальный ход работы может быть нарушен оператором goto. 5. Цикл может не выполнится ни разу, если шаг цикла будет изменять значение счетчика от нижней границы в направлении, противоположной верхней границе. ПРИМЕР: Составить программу нахождения произведения чисел от 1 до 10. 1. WHILE S:=1; i:=1; While in; 3. For S:=1; n:=10; For i:=1 to n do s:=s*I;