Тема
Циклічні обчислювальні процеси
Мета
Навчитись обчислювати суми знакозмінних рядів із заданою
точністю, використовуючи оператори циклу.
Теоретичні відомості
Цикл - це процес виконання
певного набору команд деяку кількість разів. Є три види команд
циклів: з лічильником, з передумовою та
з післяумовою.
Команда циклу з лічильником
(for) має вигляд
for
(оператор1;
<логічний вираз>; оператор2) {оператори3;}
Дія команди. Команди оператори3
виконуються в циклі, доки значення логічного
виразу істинне. Оператор1 задає початкові значення лічильника циклу, оператор 2 задає крок лічильника.
Істинний логічний вираз задає умову
виходу з циклу.
Команда циклу з передумовою
(while) має вигляд
while
<логічний вираз> do {оператори;}
Дія команди. Доки значення логічного
виразу істинне, виконується оператори.
Істинний логічний вираз описує умову продовження процесу виконання команди
циклу.
Команда циклу з післяумовою (do-while) має вигляд
do {оператори;}
while
<логічний вираз>;
Дія команди. Команди виконуються в циклі, доки значення логічного виразу не стане істинним. Істинний логічний вираз задає
умову виходу з циклу.
Приклад виконання
Завдання
Скласти програму для обчислення суми ряду з точністю ε. Під
наближеними значеннями суми ряду з точністю ε тут розуміється сума тих
доданків, для яких виконується умова ε .
x=0.34 E=0.001
#include
<iostream.h>
#include
<math.h>
#include
<conio.h>
int main()
{
const float E=0.001;
float x, a, s, fact;
int n=1;
cout<<"Input x:";
cin>>x;
fact=2;
a=-(2*x)/fact;
while (fabs(a)>E)
{
s++=a; n++;
fact*=(2*n)*(2*n-1);
a=pow(-1,n)*pow(2*x,n)/fact;
}
cout.precision(3);
cout<<"S="<<s<<"\n";
coun<<"n="<<n<<"\n";
return 0;
}
Завдання
Скласти
програму для обчислення суми ряду з точністю ε. Під наближиними значеннями суми ряду з точністю ε
тут розуміється сума тих доданків, для яких виконується умова .
№ |
Ряд |
|
x |
1. |
|
0,001 |
0,25 |
2. |
|
0,001 |
0,65 |
3. |
|
0,001 |
0,45 |
4. |
|
0,001 |
0,54 |
5. |
|
0,001 |
0,41 |
6. |
|
0,001 |
1,25 |
7. |
|
0,001 |
0,6 |
8. |
|
0,001 |
0,58 |
9. |
|
0,001 |
-1,34 |
10 |
|
0,001 |
0,45 |
11. |
|
0,001 |
0,8 |
12. |
|
0,001 |
0,34 |
13. |
|
0,001 |
0,65 |
14. |
|
0,001 |
1,12 |
15. |
|
0,001 |
0,52 |
16. |
|
0,001 |
0,2 |
17. |
|
0,001 |
0,3 |
18. |
|
0,001 |
0,4 |
19. |
|
0,001 |
1,04 |
20. |
|
0,001 |
0,46 |
21. |
|
0,001 |
0,91 |
22. |
|
0,001 |
1,45 |
23. |
|
0,001 |
1,67 |
24. |
|
0,001 |
-0,44 |
25. |
|
0,001 |
0,25 |
26. |
|
0,001 |
1,5 |
27. |
|
0,001 |
0,9 |
28. |
|
0,001 |
0,5 |
29. |
|
0,001 |
0,4 |
30. |
|
0,001 |
1,72 |
Контрольні запитання
1.
Яке призначення оператора циклу з
передумовою?
2.
Чим відрізняється оператори циклу з
передумовою від оператора з післяумовою?
3.
Який з операторів може ні разу не виконатися?
4.
Чи можливе зациклювання у
циклі з післяумовою чи з передумовою?
5.
Що означає поняття рекурентне співвідношення?
6.
Чим відрізняється оператор циклу з післяумовою від інших
операторів циклу?
7.
Коли закінчується процес обчислення суми знакозмінного ряду?