Вычислить значение выражения - 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.

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

  1. Объявляется функция sum, которая принимает целочисленный аргумент m и возвращает вещественное значение.
  2. Внутри функции sum с помощью условного оператора if проверяется равенство аргумента m единице.
  3. Если m равно 1, то переменной sum присваивается значение 1, делённое на синус экспоненты exp(m) минус 1.
  4. В противном случае переменной sum присваивается значение, возвращаемое вызовом функции sum с аргументом m-1, плюс 1, делённое на синус экспоненты exp(m) минус 1. Это рекурсивный вызов функции.
  5. Объявляются переменные m и p как целые числа и переменная s как вещественное число.
  6. Считывается значение для переменной m.
  7. Инициализируется переменная s нулём.
  8. В цикле for переменная p принимает значения от 1 до m, выполняются следующие действия:
    • Переменной s прибавляется значение 1, делённое на синус экспоненты exp(p) минус 1.
  9. Выводится значение переменной s с точностью до трёх знаков после запятой и значение функции sum с аргументом m с точностью до трёх знаков после запятой.
  10. Завершается выполнение программы.

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

9   голосов , оценка 4.444 из 5