• Предмет: Информатика
  • Автор: valeriaponurovskaya
  • Вопрос задан 6 лет назад

Напишите рекурсивную функцию, которая считает сумму элементов переданного ей динамического массива

Ответы

Ответ дал: ingr
0

var

   d : array of integer;

   n : integer;

   

function arrSumRec(d : array of integer; n : integer) : integer;

begin

   if n > d.Length-1 then exit;

   result := d[n]+arrSumrec(d, n+1);

   n += 1;

end;


begin

   write('введите количество элементов для массива ');

   readln(n);

   d := new integer[n];

   d := arrRandom(n, 1, 100);

   writeln('сгенерирован массив из ', n, ' элементов со значениями в диапозоне 1..100');

   writeln(d);

   writeln('Сумма = ', arrSumRec(d, 0));

end.


функция function arrSumRec(d : array of integer; n : integer) : integer; в качестве первого параметра получает массив сумму которого считаем в качестве второго номер члена начиная с которого считаем сумму. Не забываем что нумерация начинается с нуля. поэтому чтобы посчитать сумму всех членов массива в качестве второго параметра указываем 0.

Вас заинтересует