Вычислить значение выражения - Pascal (80317)
Формулировка задачи:
Разработать программу по алгоритму с использованием рекурсивной функции и без использования рекурсивной функции.
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
function sum(m : integer) : real; begin if m = 1 then sum := 1/(sin(exp(m)-1)) else sum := sum(m - 1) + 1/(sin(exp(m)-1)); end; var m, p : integer; s : real; begin write('m = '); readln(m); s := 0; for p := 1 to m do begin s := s + 1/(sin(exp(p)-1)); end; writeln(s:0:3,' ',sum(m):0:3); readln; end.
Объяснение кода листинга программы
- Объявляется функция
sum
, которая принимает целочисленный аргументm
и возвращает вещественное значение. - Внутри функции
sum
с помощью условного оператораif
проверяется равенство аргументаm
единице. - Если
m
равно 1, то переменнойsum
присваивается значение 1, делённое на синус экспонентыexp(m)
минус 1. - В противном случае переменной
sum
присваивается значение, возвращаемое вызовом функцииsum
с аргументомm-1
, плюс 1, делённое на синус экспонентыexp(m)
минус 1. Это рекурсивный вызов функции. - Объявляются переменные
m
иp
как целые числа и переменнаяs
как вещественное число. - Считывается значение для переменной
m
. - Инициализируется переменная
s
нулём. - В цикле
for
переменнаяp
принимает значения от 1 доm
, выполняются следующие действия:- Переменной
s
прибавляется значение 1, делённое на синус экспонентыexp(p)
минус 1.
- Переменной
- Выводится значение переменной
s
с точностью до трёх знаков после запятой и значение функцииsum
с аргументомm
с точностью до трёх знаков после запятой. - Завершается выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д