Similar presentations:
Циклический процесс
1. Циклический процесс
ЦИКЛИЧЕСКИЙПРОЦЕСС
2. Оператор цикла с предусловием
ОПЕРАТОР ЦИКЛА С ПРЕДУСЛОВИЕМОператор
цикла
с
предусловием
используется для программирования
процессов, в которых число повторений
оператора цикла не известно, а задается
некоторое условие его окончания.
Общий
вид
оператора
цикла
с
предусловием выглядит следующим
образом:
While <Условие> Do <Тело цикла>;
While – пока,
Do – делать.
3.
Выполнениеоператора
цикла
с
предусловием начинается с проверки
условия, записанного после слова
While.
Если
оно
истинно,
то
выполняется <Тело цикла>, а затем
вновь проверяется условие и т. д. Как
только условие цикла станет ложным,
цикл закончится.
4. Пример 1. Среди чисел последовательности 3, 5, 7, … найти самое первое число, больше заданного n.
ПРИМЕР 1. СРЕДИ ЧИСЕЛ ПОСЛЕДОВАТЕЛЬНОСТИ 3, 5,7, … НАЙТИ САМОЕ ПЕРВОЕ ЧИСЛО, БОЛЬШЕ ЗАДАННОГО
N.
Program pr1;
Var a, n: integer;
Begin
Writeln(‘Введите n’);
Readln(n);
a:= 3;
While a <= n Do a:= a + 2;
Writeln(‘a=’, a);
End.
5. Пример 2. Вычислить среднее арифметическое членов последовательности 2, 4, 6, …, не превосходящих заданного числа n.
ПРИМЕР 2. ВЫЧИСЛИТЬ СРЕДНЕЕ АРИФМЕТИЧЕСКОЕЧЛЕНОВ ПОСЛЕДОВАТЕЛЬНОСТИ 2, 4, 6, …, НЕ
ПРЕВОСХОДЯЩИХ ЗАДАННОГО ЧИСЛА N.
Program pr2;
Var x, s, n, k: integer; sr: real;
Begin
Writeln(‘Введите n’);
Readln(n);
x:= 2; s:= 0; k:= 0;
While x <= n Do
Begin
s:= s + x;
k:= k + 1;
x:= x + 2;
End;
sr:= s / k;
Writeln(‘среднее арифметическое = ’, sr:6:2);
End.
6. Пример 3. Вычислить произведение и сумму цифр произвольного числа n.
ПРИМЕР 3. ВЫЧИСЛИТЬ ПРОИЗВЕДЕНИЕ И СУММУЦИФР ПРОИЗВОЛЬНОГО ЧИСЛА N.
Program pr3;
Var n, k, c, s, p: integer;
Begin
Writeln(‘Введите n’); Readln(n);
k:= n; {запоминаем исходное число в переменной k}
While n <> 0 Do
Begin
c:= n mod 10; {вычисляем последнюю цифру в числе}
s:= s + c;
{вычисляем сумму цифр}
p:= p * c;
{вычисляем произведение цифр}
n:= n div 10; {отбрасываем последнюю цифру в числе}
End;
Writeln(‘Сумма цифр числа ’, k, ‘ равна ’, s);
Writeln(‘Произведение цифр числа ’, k, ‘ равно ’, p);
End.
7. Пример 4. Вычислить и вывести на экран значения функции y при каждом значении x, изменяющемся от –2 до 2 с шагом 0,2.
ПРИМЕР 4. ВЫЧИСЛИТЬ И ВЫВЕСТИ НА ЭКРАНЗНАЧЕНИЯ ФУНКЦИИ Y ПРИ КАЖДОМ ЗНАЧЕНИИ X,
ИЗМЕНЯЮЩЕМСЯ ОТ –2 ДО 2 С ШАГОМ 0,2.
Program pr4;
Var x, y: real;
Begin
x:= –2;
While x <= 2 Do
Begin
y:= Sin(x) + 2 * Sqr(x);
Writeln(‘x=’, x:4:2, ’ y=’, y:4:2);
x:= x + 0.2;
End;
End.
8. Оператор цикла с постусловием
ОПЕРАТОР ЦИКЛА С ПОСТУСЛОВИЕМДля программной реализации циклических
процессов с неизвестным числом повторений
существует еще один оператор – оператор
цикла с постусловием, который имеет
следующий вид:
9.
Repeat<Оператор 1>;
<Оператор 2>;
…
<Оператор n>;
Until <Условие>;
Repeat – поторять,
Until – до тех пока.
10.
Этот оператор работает следующим образом:выполняется тело цикла, затем проверяется
условие, записанное после слова Until, если оно
ложное, то тело цикла повторяется еще раз и
снова проверяется условие и т. д., как только
условие станет истинным, цикл закончится.
Поскольку проверка условия осуществляется после
выполнения тела цикла, то хотя бы один раз тело
цикла выполнится в любом случае. Данный
оператор
цикла
предполагает
наличие
нескольких операторов в теле цикла, поэтому
служебные слова Begin и End не нужны.
11. Пример 1. Составить программу, позволяющую вводить с клавиатуры целые числа до тех пор, пока не будет введено число, кратное 6,
ПРИМЕР 1. СОСТАВИТЬ ПРОГРАММУ, ПОЗВОЛЯЮЩУЮВВОДИТЬ С КЛАВИАТУРЫ ЦЕЛЫЕ ЧИСЛА ДО ТЕХ ПОР,
ПОКА НЕ БУДЕТ ВВЕДЕНО ЧИСЛО, КРАТНОЕ 6, И
ВЫЧИСЛИТЬ КОЛИЧЕСТВО ВВЕДЕННЫХ ЧИСЕЛ (ВМЕСТЕ
С ПОСЛЕДНИМ).
Program pr1;
Var x, kol: integer;
Begin
kol:= 0;
Repeat
Writeln(‘Введите число’);
Readln(x);
Kol:= kol + 1;
Until x mod 6 = 0;
Writeln(‘количество = ‘, kol);
End.
12. Пример 2. Составить программу, вычисляющую сумму членов арифметической прогрессии –1, 3, 7, … до тех пор, пока она (сумма) не
ПРИМЕР 2. СОСТАВИТЬ ПРОГРАММУ, ВЫЧИСЛЯЮЩУЮСУММУ ЧЛЕНОВ АРИФМЕТИЧЕСКОЙ ПРОГРЕССИИ –1, 3, 7,
… ДО ТЕХ ПОР, ПОКА ОНА (СУММА) НЕ ПРЕВЫСИТ
ЗАДАННОЕ ЧИСЛО X.
Program pr2;
Var x, sum, a: integer;
Begin
sum:= 0;
a:= –1;
Writeln(‘Введите число’);
Readln(x);
Repeat
sum:= sum + a;
a:= a + 4;
Until sum > x;
Writeln(‘сумма = ‘, sum);
End.
13. Пример 3. Вычислить и вывести на экран значения функции y при каждом значении x, изменяющемся от –10 до 10 с шагом 2.
ПРИМЕР 3. ВЫЧИСЛИТЬ И ВЫВЕСТИ НА ЭКРАНЗНАЧЕНИЯ ФУНКЦИИ Y ПРИ КАЖДОМ ЗНАЧЕНИИ X,
ИЗМЕНЯЮЩЕМСЯ ОТ
–10 ДО 10 С ШАГОМ 2.
Program pr3;
Var x: integer; y: real;
Begin
x:= –10;
Repeat
If x <> 2 Then
Begin
y:=1 / (x – 2) + x;
Writeln(‘x=’, x:4:2, ’ y=’, y:4:2);
x:= x + 2;
End
Else
Writeln(‘При x=2 функция не определена’);
Until x > 10;
End.
14. Задачи
ЗАДАЧИ1.
2.
3.
Составить программу, позволяющую вводить
целые числа до тех пор, пока не будет
введено отрицательное число, и вычислить
произведение введенных чисел.
Вычислить произведение членов
последовательности 2, 5, 8, 11, …, меньших
числа К.
Дано натуральное число. Найти
произведение цифр числа.