Вычислить максимальный по модулю элемент массива (рекурсивной функцией) - PascalABC.NET
Формулировка задачи:
В одномерном массиве, вводимом с клавиатуры и состоящем из N вещественных элементов, вычислить максимальный по модулю элемент массива (использовать рекурсивную функцию для вычисления).
Решение задачи: «Вычислить максимальный по модулю элемент массива (рекурсивной функцией)»
textual
Листинг программы
const N = 10; var a: array[1..N] of real; function max_elem(index: integer): real; begin Result := a[index]; if index < n then begin var tmp := max_elem(index + 1); {Чтобы не вызывать 2 раза} if abs(Result) < abs(tmp) then max_elem := tmp; end; end; begin for var i := 1 to N do read(a[i]); write(max_elem(1)) end.
Объяснение кода листинга программы
- Объявлены константа N равная 10 и переменная a типа массив из 10 элементов типа real.
- Рекурсивная функция max_elem с параметром index типа integer и результатом типа real.
- Внутри функции происходит следующее:
- Результат присваивается элементу a[index].
- Если index меньше N, то происходит следующее:
- Объявляется временная переменная tmp, которая инициализируется значением, возвращаемым функцией max_elem, вызванной с аргументом index + 1.
- Если абсолютное значение Результата меньше абсолютного значения tmp, то Результат присваивается tmp.
- В основной части программы происходит следующее:
- Происходит цикл, в котором считываются значения элементов массива a.
- Вызывается функция max_elem с аргументом 1 и результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д