Итерационные циклы - PascalABC.NET (251632)

Узнай цену своей работы

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

Для всех значений X, задаваемых параметрами из набора: начальное значение A, конечное значение В, шаг Dx, количество ша-гов Nx, ограничение на число итераций Nmax, вычислить функцию F(x) как сумму S бесконечного числа слагаемых, заканчивая суммирование для каж-дого значения x при достижении заданной точности EPS. Вывести в выводной текстовый файл исходные данные A,B,Dx,EPS и результаты расчета: значения x,F(x),S и количество слагаемых K, обес-печивающих требуемую точность. Результаты выводить в форме таблицы с рамками. F(x) = arctg(x) начальное значение A = -0.5 конечное значение В = (нет) шаг Dx 0.1 число шагов Nx = 10* число итераций Nmax = (нет) точность вычисле-ния EPS * = 1e-6 цикл через if, он должен работать с goto Как это делается?

Решение задачи: «Итерационные циклы»

textual
Листинг программы
const a=-0.5;
      dx=0.1;
      n=10;
      e=0.000001;
function F(x:real):real;
begin
F:=arctan(x);
end;
function S(x:real;var k:integer):real;
Label 1,2;
var t,y:real;
begin
k:=0;
t:=x;
y:=t;
1:if abs(t)/(2*k+1)<=e then goto 2;
  k:=k+1;
  t:=-t*x*x;
  y:=y+t/(2*k+1);
  goto 1;
2:k:=k+1;
  S:=y;  
end;
Label 1,2;
var x,y:real;
    i,k:integer;
    t:text;
begin
assign(t,'arctg.txt');
rewrite(t);
writeln(t,'Значения функции arctg(x) и ее разложения в ряд Тейлора');
writeln(t,'A=0.5 Dx=0.1 Nx=10 Eps=0.000001');
writeln(t,'---------------------------------');
writeln(t,'|  x  |   F(x)   |   S(x)   | K |');
writeln(t,'---------------------------------');
i:=0;
x:=a-dx;
1:if i>n then goto 2;
  i:=i+1;
  x:=x+dx;
  y:=S(x,k);
  writeln(t,'|',x:5:1,'|',F(x):10:6,'|',y:10:6,'|',k:3,'|');
  goto 1;
2:writeln(t,'---------------------------------');
  close(t);
  write('Вычисления окончены, результаты записаны в файл arctg.txt');
end.

Объяснение кода листинга программы

  1. Объявлены константы: a=-0.5, dx=0.1, n=10, e=0.000001.
  2. Объявлены функции: F(x:real):real и S(x:real;var k:integer):real.
  3. В функции S(x:real;var k:integer):real происходит вычисление функции arctg(x) и ее разложения в ряд Тейлора методом итерации.
  4. В основной программе происходит заполнение таблицы значений функции arctg(x) и ее разложения в ряд Тейлора в файл arctg.txt.
  5. В функции S(x:real;var k:integer):real используется цикл while, который выполняется до тех пор, пока значение переменной k не станет больше n.
  6. При каждой итерации цикла, значение переменной x увеличивается на dx, а значение переменной k увеличивается на 1.
  7. Значение функции arctg(x) вычисляется с помощью функции F(x:real):real.
  8. Значение разложения функции arctg(x) в ряд Тейлора вычисляется с помощью функции S(x:real;var k:integer):real.
  9. Значения переменных x, F(x) и S(x) записываются в файл arctg.txt.
  10. Значение переменной k записывается в файл arctg.txt.
  11. После окончания цикла, выводится сообщение о завершении вычислений и закрытии файла arctg.txt.

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы