Laboratornaya_rabota_8_Tsikl_s_predusloviem_Tsikl_s_postusloviem
.docЛабораторная работа №4
Цикл с предусловием. Цикл с постусловием
Разработать блок-схему и программу вычисления суммы элементов ряда с заданной точностью e = 0,00001. Условием окончания вычислений считать Sn <= e. Значение x задать самостоятельно.
Блок-схема и программа задачи
Рис.8.
Program Project1;
var
x,e,a,s,s1,delta:real;
n,c:integer;
f:longint;
begin //начало раздела операторов
write('введите x=');
readln(x);
write('введите точность вычислений e=');
readln(e);
//начальные значения a, f, c, n, s
a:=x; c:=1;
f:=1*2*3;
n:=0;
s:=0;
repeat //начало суммирования
s1:=s; //в s1 хранится значение s для сравнения
n:=n+1; //счетчик слагаемых
c:=-c; //значение (-1) для n-го слагаемого
a:=a*sqr(x); //вычисление х в степени (2n+1) n-го слагаемого
f:=f*(2*n+2)*(2*n+3); // факториала n-го слагаемого
s:=s+c*a/f * sin(n*x); //добавление n-го слагаемого к общей сумме
delta:=abs(s-s1); //проверка условия окончания цикла
until delta<=e;
//вывод результата на экран
writeln('при x=',x:4:2,' сумма', n:2,' элементов',s:7:5);
readln;
end.
Особенностью итерационного цикла является то, что заранее невозможно определить число необходимых итераций или приближений. Поэтому при программировании циклов в таких задачах применяется не цикл со счетчиком (или с параметром), а цикл с постусловием.
Программа выполняет расчет каждого элемента ряда по общим формулам. Для уменьшения количества вычислений при расчете х2n+1 и факториала (2n+3)! используются их значения из предыдущих слагаемых (переменные a, f). Для правильного расчета первого элемента ряда задаются начальные условия. Им нужно уделить особое внимание.
Программа снабжена комментариями и дополнительных объяснений не требует.
Варианты заданий в табл. 1
Вычислить сумму элементов бесконечного ряда с заданной точностью
e = 0,00001. Условием окончания вычислений считать Sn <= e.
Значение x задать самостоятельно.
Таблица 1
1 |
|
9 |
|
2 |
|
10 |
|
3 |
|
11 |
|
4 |
|
12 |
|
5 |
|
13 |
|
6 |
|
14 |
|
7 |
|
15 |
|
8 |
|
16 |
|