Разработать алгоритм и составить программу вычисления таблицы значений функции - Pascal

Формулировка задачи:

Разработать алгоритм и составить программу вычисления таблицы значений функции, заданной в виде разложения в ряд. Значение функции вычислять с точностью ε>0, т.е., вычисление суммы членов ряда необходимо прекратить, когда абсолютная величина очередного члена ряда разложения окажется меньше ε: |ak|<ε. При вычислении очередного члена ряда целесообразно воспользоваться рекуррентным выражением: ak+1=ckak; k = 0, 1, 2, ..., где ak - некоторый k-ый член ряда; ak+1 - следующий k+1-ый член ряда; ck - коэффициент, определяемый номером k. При создании программы необходимо по возможности воспользоваться операторами организации циклов WHILE, REPEAT, FOR. Границы интервала вычисления функции a и b, величина шага изменения аргумента h и точность вычисления функции ε задаются при вводе. На печать выводится номер по порядку, значение аргумента, соответствующее еьу, значение функции и номер члена ряда, на котором закончилось вычисление значения функции, в форме таблицы:
x f(x) №чл.р.
1      
2      
3      
...      


textual

Код к задаче: «Разработать алгоритм и составить программу вычисления таблицы значений функции - Pascal»

uses crt;
//процедура вычисления суммы ряда(s) и числа итераций(i)
procedure F(x,e:real;var s:real;var i:longint);
var t,x1:real;
begin
t:=1;//начальные значения при i=1
s:=t;
x1:=x/2;
i:=0;
while abs(t)>e do//пока модуль очередного члена ряда больше точности
 begin
   i:=i+1;//наращиваем счетчик
   t:=-t*x1*x1/sqr(i);//менякм знак, домножаем на x1^2 и делим на квадрат индекса
   s:=s+t;//и суммируем
 end;
end;
var a,b,h,e,s:real;
    i,n:integer;
begin
write('Введите начало интервала a=');
readln(a);
repeat
write('Введите конец интервала b>',a:0:1,' b=');
readln(b);
until b>a;
repeat
write('Введите точность в интервале (0,1) e=');
readln(e);
until(e>0)and(e<1);
repeat
write('Введите шаг табуляции, положительное число меньше ',b-a:0:2,' h=');
readln(h);
until (h<b-a)and(h>0);
clrscr;
writeln('Таблица табулирования функции, представленной разложением в ряд');
writeln('на интервале ',a:0:2,'  ',b:0:2,' с шагом ',h:0:2,' с точностью ',e:0:6);
writeln('----------------------------');
writeln('| №пп |  x  |  f(x)  |  n  |');
writeln('----------------------------');
i:=0;
while a<b+e do
 begin
  i:=i+1;
  F(a,e,s,n);
  writeln('|',i:4,' |',a:5:2,'|',s:8:4,'|',n:4,' |');
  a:=a+h;
 end;
writeln('----------------------------');
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

5   голосов, оценка 4.000 из 5

Источник