ц икличе ский а лг оритм – это описание действий, которые в зависимости от исходных данных могут повторяться многократно. последовательность действий, предназначенная для многократного исполнения, называется тело м цикл а.
и терационные циклы – это алгоритмы, в которых тело цикла выполняется в зависимости от какого-либо условия. различают циклы с предусловием и постусловием.
цикл с предусловием – цикл, который выполняется, пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому послед- нее может быть ни разу не выполнено (если условие с самого начала ложно).
цикл с постусловием – цикл, в котором условие проверяется после выполнения тела цикла. отсюда следует, что тело данного цикла всегда выполняется хотя бы один раз.
Пример типовой задачи
вычислить значения функции y = cos (x) – ex/2 при изменении аргумента х на заданном интервале [c, d] с заданным шагом h.
приведена на рис. 3.

рис. 3. блок-схема алгоритма
с использованием цикла с предусловием
program prim3;
var с, d, h, x, y: real;
begin
write('c='); readln(c);
write('d='); readln(d);
write('h='); readln(h); x := c;
d := d + h/2; while x <= d do
begin
y := cos(x) – exp(x/2); writeln('x=', x:6:2, 'y=', y:6:2 ); x := x + h
end; end.
using System;
namespace ConsoleApplication21
{
class Program
{
static void Main(string[] args)
{
Console.Write("введите c=");
double c = double.Parse(Console.ReadLine()); Console.Write("введите d=");
double d = double.Parse(Console.ReadLine()); Console.Write("введите h=");
double h = double.Parse(Console.ReadLine()); double y, x = c;
d = d + h/2; while (x <= d) {
y = Math.Cos(x) – Math.Exp(x/2); Console.WriteLine("x={0}, y={1}", x, y); x = x + h;
}
Console.ReadLine();
}
}
}
приведена на рис. 4
program prim4;
var с, d, h, x, y: real;
begin
write('c='); readln(c);
write('d='); readln(d);
write('h='); readln(h); x := c;
d := d + h/2;
repeat
y := cos(x) – exp(x/2); writeln('x=', x:6:2, 'y=', y:6:2 ); x := x + h
until x > d; end.
![]() |
рис. 4. блок-схема алгоритма
с использованием цикла с постусловием
using System;
namespace ConsoleApplication22
{
class Program
{
static void Main(string[] args)
{
Console.Write("введите c=");
double c = double.Parse(Console.ReadLine()); Console.Write("введите d=");
double d = double.Parse(Console.ReadLine()); Console.Write("введите h=");
double h = double.Parse(Console.ReadLine()); double y, x = c;
d = d + h/2;
do {
y = Math.Cos(x) – Math.Exp(x/2); Console.WriteLine("x = {0}, y = {1}", x, y); x = x + h;
} while (x <= d); Console.ReadLine();
}
}
}
Задачи
1. найти наибольшее целое n такое, что 1) 3n4 – 730n < 5;
2) en – 1000 ln (n) ≤ 10.
2. дано целое число m > 1. получить наибольшее целое k, при котором 4k < m.
3. дано натуральное число n. получить наименьшее число вида 2r, превосходящее n.
4. Числа Фибоначчи определяются формулами:
f0 = f1 = 1; fn = fn − 1 + fn − 2 при n = 2, 3, … .
1) найти f – первое число Фибоначчи, большее заданного m
(m > 1).
2) вычислить S – сумму всех тех чисел Фибоначчи, которые не превосходят 1000.
5. ![]()
вычислить число через разложение в ряд
![]()
p = 1- 1 + 1 - 1 + = å¥ (-1)k +1 1
4 3 5 7
k =1
2k -1
с точностью ε = 10−3. сравнить с точным значением.
6.
составить программу
приближенного вычисления значе-
ния p с точностью
ε = 10−4, используя
формулу
2
p = 2 × 2 × 4 × 4 × 6 × 6 × = Õ¥
(2i)2
.
![]()
2 1 3 3 5 5 7
вычисления заканчивать, если
i =1 (2i -1)(2i +1)
![]()
-1 < e.
сравнить с точным значением.
7.
вычислить бесконечную
сумму с заданной точностью ε
= 10−4.
1) å 1 ;
2) å
1 ;
i=1 i2
i =1 i(i +1)
![]()
3) å
i =1
(-1)i
;
i!
![]()
4) å
i =1
(-2)i
.
i!
8. составить программы вычисления значений функций с помощью разложений в ряд:
x2 x3
¥ k +1 xk
1)
ln (1+ x) = x
- +
2
- = å(-1) ;
![]()
![]()
![]()
k =1
x3 x5
¥ n x2n + 1
![]()
![]()
2) sin (x) = x - 3! + 5! - = å(-1)
;
(2n +1)!
x2 x4 ¥ n x2n
![]()
![]()
3) cos (x) = 1- 2! + 4! - = å(-1)
;
(2n)!
x x x2
¥ xn
4) e
= 1+ + + = å .
![]()
![]()
1! 2!
n = 0 n!
вычислять с точностью до члена ряда, меньшего ε. сравнить с точными значениями функций.
9. определить приближенное (с точностью до 0,1) значение корня уравнения x – arctg (x) = p. изменять x от 2 с шагом h = 0,1; изменение знака функции является признаком пересечения оси Ox.
10. найти корень уравнения F(x) = 0 методом деления отрезка пополам с точностью ε = 10−4. (ниже рядом с каждым уравнением указан отрезок, содержащий корень.)
1) F(x) = lg (x) – 2,1 + x; [1, 3].
2) F(x) = lg (x) – 0,16/x; [1, 10].
3) F(x) = x + ln (x + 0,5) – 0,5; [0, 2].
4) F(x) = x5 – x – 0,2; [1, 1,1].
5) F(x) = x4 + 2x – x – 1; [0, 1].
6) F(x) = x3 – 0,2x2 – 0,2x – 1,2; [1, 1,5].
Метод деления отрезка пополам для уравнения F(x) = 0 состоит в многократном делении отрезка [a, b] точкой с попо- лам и выборе той половины отрезка, на которой остался корень уравнения. вычисления производятся до достижения точно- сти e: |b – a| < e.
11. вычислить приближенное значение корня уравнения x = j(x) методом простой итерации с точностью ε = 10−4. (ниже рядом с каждой функцией j(x) в скобках указано начальное при- ближение x0 к корню.)
1) j(x) =
ex
![]()
4, 7
; (0).
2) j(x) =
1+ x4
6
; (0, 2).
3) j (x) =
sin (x)
![]()
2
+1; (0).
4) j (x) =
1- 2x3
![]()
4
; (0,11).
5) j (x) =
2 - x3
![]()
12
; (0,95).
6) j (x) =
8 + 8ln (x) 5
; (4,32).
Метод простой итерации
для решения уравнения
x = φ(x) состоит в последовательном приближении к корню по формулам
x = φ(x ). вычисления заканчиваются, когда |x –
x | < e.
12. найти корень уравнения F(x) = 0 методом ньютона с точ- ностью e = 10−4. (ниже рядом с каждым уравнением указано начальное приближение x0 к корню.)
1) x3 – 2x2 + x – 3 = 0; (2,2).
2) tg (x) – x = 0; (4,67).
3) 1,8x4 – sin (10x) = 0; (0,22).
4) x3 – 6x2 + 20 = 0; (2,31).
Метод ньютона (касательных) для уравнения F(x) = 0 состоит
в нахождении x = x – F(x )/F¢(x ). вычисления заканчиваются,
k + 1 k k k
когда |xk + 1 – xk| < ε.
13. решить уравнение cos (x) – 4,7x = 0 упрощенным методом
ньютона: x
= x – F(x ) /F¢(x ) с точностью ε = 10−4. вычисления
k + 1 k k 0
заканчиваются, когда |xk + 1 – x |
< e.
14. решить с точностью e = 10−4 уравнение sin (x) – x + 2,7 = 0 методом неподвижных хорд:
xk +1
= xk
- F (xk )(xk - x0 ) .
F (x ) - F (x )
k 0
выбрать x0 и x1. вычисления заканчиваются, когда |xk +1 – xk| < ε.
15.
решить с точностью e = 10−4 уравнение 1,7 cos (x) – ex = 0 методом
подвижных хорд:
x = x
- F (xk )(xk - xk -1 ) .
![]()
k +1
F (xk ) - F (xk -1 )
вычисления заканчиваются, когда | xk + 1 – xk | < ε.
16.
вычислить
приближенно значение квадратного корня из числа
a по формуле ньютона xi + 1 = 0,5 (a/xi + xi), i = 0, 1, 2, …, где x0
–
начальное приближение к корню.
вычисления прекратить при
требуемой точности, т. е. при выполнении условия | x
i + 1
– x | < e.
17. с заданной точностью ε найти предел последовательности
с элементом
an = n
при n → ¥. точность считать достиг-
![]()
нутой, как только выполнится неравенство |an + 1
–
a | < e .
18. задано действительное число a. среди чисел вида
![]()
![]()
1; 1+ 1 ; 1+ 1 + 1 ; ¼
2 2 3
найти первое, большее а.
19. найти предел последовательности { yk }, если y0 = 2(2 -
2),
y = 3 y - 1 xy3 (число x задано) с точностью e.
![]()
k +1 2 k 2 k
20. даны положительные действительные числа a, x, e. в последовательности y0, y1, y2, …, образованной по закону: y0 = 0,
y = 1 æ y
+ x ö,
i = 1, 2, ¼ .
i 2 ç i -1 y ÷
è i -1 ø
найти первый член yn, для которого выполнено неравенство
| yn
– yn – 1
| < e.
21. пусть x0 = 1;
2 - x3
xi =
i -1 , i = 1, 2, ¼ .
5
найти первый член x , для которого
| x – x | < e.
22. пусть y0 = 0;
y = yi -1 +1 , i = 1, 2, ¼
.
![]()
yi -1 + 2
дано действительное число e > 0. найти первый
член y , для
которого выполнено неравенство | yn
– yn – 1
| < e.
23. дано действительное число a > 0. последовательность
![]()

![]()
![]()
![]()
![]()
![]()
![]()
x0, x1, x2, … образована по закону:
x = 4 x
![]()
+ a ,
![]()
n = 1, 2, ¼ .
n 5 n -1
4
n -1
найти первый член xn, для которого
5 a x - x
![]()
< 10-6.
4 n n - 1
24. дано действительное число e (e > 0). последовательность
а1, а2, … образована по следующему закону:
1) an = ;
2) a = æ1- 1 öæ1- 1 ö¼æ1-
![]()
1 ö;
![]()
n ç 2 ÷ç
3 ÷ ç
n +1 ÷
è øè ø è ø
æ 1 öæ 1 ö æ (-1)n ö
![]()
![]()
![]()
3) an = ç1- 2!÷ç1+ 3!÷¼ç1+ (n +1)!÷.
найти первый член аn, для которого выполнено условие:
| a – a | < e.
n n – 1
25. даны действительные числа x, e (e > 0). последователь-
![]()
ность а1, а2, … образована по следующему закону:
а1 = x; далее
для n = 2, 3, …
выполнено:
1) an =
2) a = 16 + x + 3a ;
3) a = 2a + x ;
![]()
4) a = 3 + 1 cos2 (a
![]()
- x).
n n -1
2
n -1
n 2n
n -1
найти первый член аn, для которого выполнено условие:
| a – a | < e.
26.
даны действительные числа a, b,
e (a > b > e > 0). после-
довательности x1, x2, …, y1, y2, … образованы по закону:
x = a; y = b; x = 1 (x
+ y ); y =
1 1 k
2 k -1
k -1 k
найти первое xn такое, что |xn – yn| < ε
27. дано натуральное число n.
1) сколько цифр в этом числе?
2) Чему равна сумма его цифр?
3) выяснить, входит ли цифра 3 в запись числа n.
4) поменять порядок цифр числа n на обратный.
5) переставить первую и последнюю цифры числа n.
6) сколько раз входит 0 в запись этого числа?
7) проверить, будет ли сумма квадратов цифр, составляю- щих это число, больше самого числа.
28. вводится произвольное количество вещественных чисел, за которыми следует –1000. найти среднее арифметическое отри- цательных и среднее арифметическое неотрицательных чисел.
29. вводится произвольное количество натуральных чисел, за которыми следует 0.
1) сосчитать количество четных, нечетных чисел и диапа- зоны их изменения.
2) определить порядковый номер наименьшего из них.
30. дана непустая последовательность вещественных чисел, за которыми следует –100. найти сумму квадратов тех чисел, которые не превосходят число 2.
31. дано не менее трех различных натуральных чисел, за кото- рыми следует 0. определить наибольшее из них.
32. дана непустая последовательность ненулевых целых чисел, за которой следует 0. определить, сколько раз в этой после- довательности меняется знак. например, в последовательности 1, −34, 8, 14, −5 знак меняется 3 раза.
33. вводится произвольное количество натуральных чисел, за которыми следует 0. для каждого из них напечатать разложение на простые множители.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.