Написать два варианта программы: с рекурсией и без - PascalABC.NET
Формулировка задачи:
Нужны два варианта программы.
Решение задачи: «Написать два варианта программы: с рекурсией и без»
textual
Листинг программы
const e=0.00001; //точность function Summa(x,sn,st:real;n:integer):real; //параметры: х, начальный член ряда(1), начальный текущий член ряда(x^(2*n+1)), счетчик итераций(от 1)} var t:real; // изменяющийся текущий член ряда begin Summa:=sn; t:=st*x*x/(2*n)/(2*n-1); if abs(t)<e then exit; Summa:=Summa(x,sn+t,t,n+1); end; var x,t,s:real; n:integer; begin write('x='); readln(x); writeln ('Сумма рекурсией=',Summa(x,1,1,1):0:5); n:=0; t:=1; s:=t; while abs(t)>e do begin n:=n+1; t:=t*x*x/(2*n)/(2*n-1); s:=s+t; end; writeln('Сумма итеративно=',s:0:5); writeln('ch(x)=',(exp(x)+exp(-x))/2:0:5); end.
Объяснение кода листинга программы
Список элементов кода:
- Объявление константы e, которая представляет собой требуемую точность вычислений.
- Объявление функции Summa, которая принимает входные параметры x, sn, st и n.
- Значение переменной t инициализируется как произведение st на x в квадрате, деленное на (2n)/(2n-1).
- Если абсолютное значение t меньше или равно e, то функция немедленно возвращает значение Summa.
- Если условие выхода из функции не выполнено, то значение переменной Summa присваивается новое значение, равное сумме значений sn и t.
- Значение переменной t обновляется в соответствии с новым значением n.
- Значение переменной s инициализируется как t.
- Цикл while выполняется до тех пор, пока абсолютное значение t больше или равно e.
- Внутри цикла значение переменной n увеличивается на 1.
- Значение переменной t обновляется в соответствии с новым значением n.
- Значение переменной s увеличивается на значение t.
- После окончания цикла выводится значение переменной s с заданной точностью.
- Выводится значение функции ch(x).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д