Вычислить максимальный по модулю элемент массива (рекурсивной функцией) - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

В одномерном массиве, вводимом с клавиатуры и состоящем из N вещественных элементов, вычислить максимальный по модулю элемент массива (использовать рекурсивную функцию для вычисления).

Решение задачи: «Вычислить максимальный по модулю элемент массива (рекурсивной функцией)»

textual
Листинг программы
  1. const
  2.   N = 10;
  3.  
  4. var
  5.   a: array[1..N] of real;
  6.  
  7. function max_elem(index: integer): real;
  8. begin
  9.   Result := a[index];
  10.   if index < n then
  11.   begin
  12.     var tmp := max_elem(index + 1); {Чтобы не вызывать 2 раза}
  13.     if abs(Result) < abs(tmp) then max_elem := tmp;
  14.   end;
  15. end;
  16.  
  17. begin
  18.   for var i := 1 to N do read(a[i]);
  19.   write(max_elem(1))
  20. end.

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

  1. Объявлены константа N равная 10 и переменная a типа массив из 10 элементов типа real.
  2. Рекурсивная функция max_elem с параметром index типа integer и результатом типа real.
  3. Внутри функции происходит следующее:
    • Результат присваивается элементу a[index].
    • Если index меньше N, то происходит следующее:
    • Объявляется временная переменная tmp, которая инициализируется значением, возвращаемым функцией max_elem, вызванной с аргументом index + 1.
    • Если абсолютное значение Результата меньше абсолютного значения tmp, то Результат присваивается tmp.
  4. В основной части программы происходит следующее:
    • Происходит цикл, в котором считываются значения элементов массива a.
    • Вызывается функция max_elem с аргументом 1 и результат выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы