Вычислить и вывести на экран в виде таблицы значения функции - Pascal (80435)
Формулировка задачи:
Помогите пожалуйста! целую неделю ломаю голову(((( никак не получается сделать. заранее спасибо!!!
весь этот ужас надо сделать на Паскале(
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от xнач до xкон с шагом dx с точностью ε. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
Решение задачи: «Вычислить и вывести на экран в виде таблицы значения функции»
textual
Листинг программы
var n: integer;
xnac, xkon, dx, x, a, s, eps: real;
begin
write(' Начальное значение аргумента: ');
readln(xnac);
write(' Конечное значение аргумента: ');
readln(xkon);
if xnac > xkon
then begin
writeln('Начальное больше конечного, значения обменяны местами.');
x := xnac;
xnac := xkon;
xkon := x
end;
repeat
write('Шаг изменения аргумента (dx > 0): ');
readln(dx)
until dx > 0;
if xkon - xnac < dx then writeln('Шаг слишком большой, будет выведено только одно значение функции.');
repeat
write(' Точность вычислений (eps > 0): ');
readln(eps)
until eps > 0;
writeln;
writeln('Таблица значений ряда Тейлора для функции f(x)=ln((x+1)/(x-1))');
writeln('на интервале от ', xnac, ' до ', xkon);
writeln('с шагом ', dx, ' с точностью ', eps);
writeln;
writeln('+------------------------+------------------------+------------------------+');
writeln('| x | S(x) | Просуммировано членов |');
writeln('+------------------------+------------------------+------------------------+');
x := xnac;
xkon := xkon + dx / 2;
eps := eps / 2;
while x < xkon do
begin
write('| ', x:22, ' | ');
if abs(x) <= 1
then writeln('не определено':22, ' | ', 'не определено':22, ' |')
else begin
a := 1 / x;
s := a;
n := 1;
while abs(a) >= eps do
begin
a := a * (n - 0.5) / (n + 0.5) / x / x;
s := s + a;
inc(n)
end;
writeln(2 * s:22, ' | ', n:22, ' |')
end;
x := x + dx
end;
writeln('+------------------------+------------------------+------------------------+');
readln
end.
Объяснение кода листинга программы
- Объявляется переменная
nтипаinteger. - Объявляются переменные
xnac,xkon,dx,x,a,s,epsтипаreal. - Вводится начальное значение аргумента и присваивается переменной
xnac. - Вводится конечное значение аргумента и присваивается переменной
xkon. - Проверяется условие, если
xnacбольшеxkon, то значения переменных меняются местами. - Вводится шаг изменения аргумента и присваивается переменной
dx. - Проверяется условие, если разность
xkon - xnacменьшеdx, выводится сообщение о том, что шаг слишком большой. - Вводится точность вычислений и присваивается переменной
eps. - Выводится заголовок таблицы с информацией о функции и интервале значений аргумента.
- Идет цикл вывода значений функции для каждого
xиз заданного интервала. - Расчет значений с использованием ряда Тейлора для функции
f(x)=ln((x+1)/(x-1)). - Выводится результат в виде таблицы с колонками для
x,S(x)иПросуммировано членов. - Цикл завершается, и таблица закрывается.
- Приложение ожидает ввода пользователя для закрытия.