Используя рекурсию, вычислить выражение с заданной точностью ε>0 - Pascal
Формулировка задачи:
ПАСКАЛЬ!Используя рекурсию, вычислить с заданной точностью ε>0
Решение задачи: «Используя рекурсию, вычислить выражение с заданной точностью ε>0»
textual
Листинг программы
program task9; const eps = 1e-6; function f(x : longint) : real; var z : real; begin z := 1 / (2 * x + 1); if(x mod 2 = 1) then z := (-1) * z; if(abs(z) < eps) then f := 0 else f := z + f(x + 1); end; begin writeln(f(0):0:6); end.
Объяснение кода листинга программы
- Определение константы
epsсо значением1e-6- точность, с которой нужно вычислить выражение. - Объявление функции
fс параметромxтипа longint и возвращаемым значением типа real. - Объявление переменной
zтипа real. - Присвоение переменной
zзначения равного1 / (2 * x + 1). - Проверка условия
x mod 2 = 1(является лиxнечётным). - Если
xнечётное, переменнойzприсваивается значение-1 * z. - Проверка условия
abs(z) < eps(является ли абсолютное значениеzменьше чемeps). - Если абсолютное значение
zменьшеeps, функцииfприсваивается значение0, иначе присваивается значениеz + f(x + 1). - Вывод результата вызова функции
fс аргументом0с точностью до 6 знаков после запятой.