Найти количество положительных элементов массива,используя рекурсию — Pascal(Паскаль)

program Project1;
 
const
  N = 10;
type
  TArr = array[1..N] of Integer;
 
function Count(const aArr : TArr; const aI : Word) : Word;
begin
  if aArr[aI] > 0 then begin
    if aI = N then
      Count := 1
    else
      Count := 1 + Count(aArr, aI + 1)
    ;
  end else begin
    if aI = N then
      Count := 0
    else
      Count := Count(aArr, aI + 1)
    ;
  end;
end;
 
var
  Arr : TArr;
  Cnt, i : Integer;
  StrTmp : String;
begin
  repeat
    Randomize;
    Writeln('Исходный массив:');
    for i := 1 to N do begin
      Arr[i] := -5 + Random(11); //-5..5.
      Write(Arr[i]:4);
    end;
    Writeln;
 
    Cnt := Count(Arr, 1);
 
    Writeln('Количество положительных элементов массива = ', Cnt);
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(StrTmp);
  until StrTmp <> '';
end.

Leave a Comment

66 − = 61