Вычисление конечных сумм - Turbo Pascal (29369)
Формулировка задачи:
разработать алгоритм вычисления функции y и суммы для [a,b] (a=0.1, b=1). Шаг изменения значений аргумента x на заданном отрезке h=0.1 , количество членов ряда n= 35
Решение задачи: «Вычисление конечных сумм»
textual
Листинг программы
uses crt;
const a=0.1;
b=1;
h=0.1;
n=35;
function f(x:real):real;
begin
f:=(1-x*x/2)*cos(x)-x*sin(x)/2;
end;
function s(x:real):real;
var t,y:real;
i:integer;
begin
t:=1;
y:=t;
for i:=1 to n do
begin
t:=-t*x*x/2/i/(2*i-1);
y:=y+t*(2*i*i+1);
end;
s:=y;
end;
var x:real;
begin
clrscr;
x:=a;
while x<b+h/2 do
begin
writeln('x=',x:4:1,' f=',f(x):8:4,' s=',s(x):8:4);
x:=x+h;
end;
readln
end.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая обеспечивает функции для работы с числами с плавающей точкой.
- Затем определяются константы: a=0.1, b=1, h=0.1, n=35.
- Далее объявляется функция f(x:real), которая вычисляет конечное значение функции для заданного значения x.
- Внутри функции f используется формула для вычисления значения функции: (1-xx/2)cos(x)-x*sin(x)/2.
- Затем объявляется функция s(x:real), которая вычисляет конечное значение суммы для заданного значения x.
- Внутри функции s объявляются переменные t и y, инициализируются значением 1.
- Затем идет цикл for, который выполняется n раз (где n - это значение переменной n).
- Внутри цикла значение переменной t вычисляется как -txx/2/i/(2i-1), а значение переменной y вычисляется как y+t(2ii+1).
- По завершении цикла значение переменной y сохраняется в переменной s.
- Затем объявляется переменная x, которая инициализируется значением a.
- В цикле while x меньше значения b+h/2 происходит вывод на экран значений переменных x, f(x) и s(x).
- После завершения цикла значение переменной x увеличивается на h.
- В конце кода вызывается функция readln, чтобы пользователь мог ввести данные.