Получить таблицу значений функции y и суммы (S) на заданном отрезке - Free Pascal
Формулировка задачи:
Задана некоторая функция у=f(х) и
некоторый ряд. Требуется получить таблицу значений данной функции y и суммы (S) на
заданном отрезке.
y=1/4+lnx, S=(x-1)/(x+1)+1/3((x-1)/(x+1))^3+…+((2n+1)/n!)x^2n
[0,2;1]
h=0,1; n=10
Решение задачи: «Получить таблицу значений функции y и суммы (S) на заданном отрезке»
textual
Листинг программы
uses crt;
const a=0.2;
b=1;
h=0.1;
n=10;
function y(x:real):real;
begin
y:=0.5*ln(x);
end;
function s(x:real):real;
var z,t,sm:real;
k:integer;
begin
z:=(x-1)/(x+1);
t:=z;
sm:=t;
for k:=2 to n do
begin
t:=t*z*z;
sm:=sm+t/(2*k-1);
end;
s:=sm;
end;
var x:real;
begin
clrscr;
writeln('------------------------');
writeln('| x | y | s |');
writeln('------------------------');
x:=a;
while x<b+h/2 do
begin
writeln('|',x:4:1,' |',y(x):7:4,' |',s(x):7:4,'|');
x:=x+h;
end;
writeln('------------------------');
readln
end.
Объяснение кода листинга программы
- Объявлены константы a, b, h, n, которые задают параметры функции и диапазон её изменения.
- Объявлены функции y(x) и s(x), описывающие поведение графика функции на заданном интервале.
- В функции y(x) вычисляется значение функции y(x)=0.5*ln(x).
- В функции s(x) вычисляется значение суммы S(x), разбивая интервал на n равных отрезков и вычисляя приближенное значение интеграла по формуле S(x)=t/(2*k-1), где t — значение функции z(x) в середине отрезка.
- В основной программе выводится таблица значений функции y(x), суммы S(x) и аргумента x при заданном шаге h на интервале от a до b.
- После вывода таблицы программа ожидает ввода пользователя для завершения работы.