Вычисление функции с заданной точностью - Pascal ABC

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

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

Вариант №21 в прикрепленном изображении Помогите найти ошибку, пишет "Программа завершена из-за переполнения программного стека"

Решение задачи: «Вычисление функции с заданной точностью»

textual
Листинг программы
program p1;
 
var
  n: integer;
  p: integer;
  x, e, f, f1: real;
 
function fac(p: integer): integer;
begin
  if p = 1 then fac := 1 else fac := p * fac(p - 1); 
end;
 
begin
  writeln('Введите х');
  readln(x);
  writeln('Введите e');
  readln(e);
  f := pi / 2;
  f1 := 0;
  n := 1;
  while (abs(f1 - f) > e) do
  begin
    f1 := f;
    f := f - ((fac(2 * n) * exp(ln(x) * (2 * n + 1))) / (exp(ln(4) * n) * fac(n) * (2 * n + 1)));
    n := n + 1;
  end;
  writeln(f);
end.

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

  1. Создается программа p1.
  2. Определяются переменные: n, p, x, e, f, f1 типа integer, real.
  3. Определяется функция fac(p: integer) типа integer.
  4. Вычисляется значение функции fac при p = 1 и присваивается переменной fac.
  5. Задаются начальные значения переменных n, p, x, e, f, f1.
  6. Выводится запрос на ввод значения x.
  7. Читается значение x.
  8. Выводится запрос на ввод значения e.
  9. Читается значение e.
  10. Инициализируется переменная f значением pi / 2.
  11. Инициализируется переменная f1 значением 0.
  12. Инициализируется переменная n значением 1.
  13. Запускается цикл while, который выполняется, пока abs(f1 - f) > e.
  14. Внутри цикла вычисляется значение f1.
  15. Вычисляется значение f.
  16. Увеличивается значение n на 1.
  17. Вычисляется значение f.
  18. Повторяются шаги 14-17 до тех пор, пока abs(f1 - f) <= e.
  19. Выводится значение f.
  20. Программа завершается.

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

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