Найти с помощью рекурсии максимальный элемент вектора - Pascal

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

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

Необходимо найти с помощью рекурсии максимальный элемент вектора V, n-размерности.

Решение задачи: «Найти с помощью рекурсии максимальный элемент вектора»

textual
Листинг программы
uses crt;
type mas=array[1..50]of integer;
var a:mas;
    n,i:integer;
function Max(n:integer):integer;
var w:integer;
begin
if n>1 then{пока в массиве больше 1 элемента}
 begin
  w:=Max(n-1);{смотрим предпоследний}
  if a[n]<w then Max:=w{сравниваем с последним, либо предпоследний}
  else Max:=a[n]{либо последний пока максимальные}
 end
else Max:=a[1]{если 1, он максимальный}
end;
 
begin
clrscr;
randomize;
write('Razmer massiva A n=');
readln(n);
writeln('Massiv A:');
for i:=1 to n do
  begin
    a[i]:=random(20);
    write(a[i],' ');
  end;
writeln;
write('max=',Max(n));
readln
end.

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

  1. В начале кода подключается библиотека crt, которая используется для работы с памятью.
  2. Создается тип данных mas, который представляет собой массив целых чисел размером от 1 до 50.
  3. Создается переменная a типа mas, которая будет использоваться для хранения массива.
  4. Создаются две переменные n и i типа integer, которые будут использоваться для итерации по массиву.
  5. Определяется функция Max, которая принимает целочисленный аргумент n и возвращает максимальное значение из массива.
  6. Внутри функции объявляется переменная w типа integer, которая будет использоваться для хранения временного значения максимума.
  7. Используется цикл while для проверки, пока в массиве есть больше одного элемента.
  8. Внутри цикла переменная w инициализируется значением, полученным от функции Max(n-1). Если значение a[n] меньше значения w, то переменная Max обновляется значением w. Если значение a[n] больше или равно значению w, то переменная Max остается без изменений.
  9. Если n равно 1, то переменная Max обновляется значением a[1], так как это единственный элемент в массиве и он является максимальным.
  10. В конце функции Max возвращается значение переменной Max.
  11. В основной части программы с помощью функции randomize инициализируется генератор случайных чисел.
  12. Выводится запрос на ввод размера массива n.
  13. Выводится сообщение «Massiv A:» и затем цикл for выполняется n раз. В каждой итерации цикла переменная a[i] инициализируется случайным числом от 1 до 20.
  14. После завершения цикла выводится сообщение «max=», за которым следует вызов функции Max(n).
  15. Выводится символ новой строки для разделения вывода.
  16. Программа завершается вызовом функции readln.

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


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

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

5   голосов , оценка 4.2 из 5
Похожие ответы