Вычислить значение суммы - Free Pascal (645)
Формулировка задачи:
Вычислить значение суммы(значение n вводиться с клавиатуры)
1+x/1!+x2/2!+x3/3!+...+xn/n!
(x задано)
Через рекурсивные алгоритмы
Решение задачи: «Вычислить значение суммы»
textual
Листинг программы
- uses crt;
- function expx(x:real;n:integer):real;
- function t(x:real;n:integer):real;
- begin
- if n=0 then t:=1
- else t:=t(x,n-1)*x/n;
- end;
- begin
- if n=0 then expx:=t(x,0)
- else expx:=expx(x,n-1)+t(x,n);
- end;
- var x:real;
- n:integer;
- begin
- clrscr;
- write('x=');
- readln(x);
- write('n=');
- readln(n);
- writeln('S=',expx(x,n):0:4);
- write('exp(x)=',exp(x):0:4);
- readln
- end.
Объяснение кода листинга программы
- Объявлены две функции:
expx
иt
. - В функции
t
проверяется базовый случай: еслиn
равно 0, то возвращается 1. - В функции
t
для остальных случаев рекурсивно вызывается функцияt
с аргументамиx
иn-1
, умноженными наx/n
. - В функции
expx
проверяется базовый случай: еслиn
равно 0, то возвращается результат функцииt
с аргументамиx
и 0. - В функции
expx
для остальных случаев рекурсивно вызывается функцияexpx
с аргументамиx
иn-1
, к которому добавляется результат функцииt
с аргументамиx
иn
. - Объявлены две переменные:
x
иn
. - В основной части программы происходит считывание значений
x
иn
с помощью функцийreadln
. - Вызывается функция
expx
с аргументамиx
иn
, и результат выводится на экран с помощью функцииwriteln
, с указанием формата вывода числа с плавающей точкой и количеством знаков после запятой. - Вызывается функция
exp
с аргументомx
, и результат выводится на экран с помощью функцииwriteln
, с указанием формата вывода числа с плавающей точкой и количеством знаков после запятой. - Программа ожидает ввода с помощью функции
readln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д