Вычислить максимальный по модулю элемент массива (рекурсивной функцией) - 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 и результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д