Дан массив действительных чисел, размерность которого N. Подсчитайте, сколько в нём отрицательных, положительных и нулевых элементов.

Ответы

Ответ дал: angryfukse
0

var

 arr: array of real;

 n, null_elem, negative, positive, i: integer;

begin

 randomize;

 writeln('Введите размерность массива: ');

 readln(n);

 arr:=new real[n];

 null_elem := 0;

 negative := 0;

 positive := 0;

 writeln('Сгенерированный массив: ');

 for i := 0 to n-1 do  

 begin

   arr[i] := random * 98 - 44;

   if (arr[i] = 0) then inc(null_elem);

   if (arr[i] < 0) then inc(negative);

   if (arr[i] > 0) then inc(positive);

   write(arr[i]:10:2);

 end;

 writeln(#10, #10, 'Нулевых элементов: ', null_elem, #10, 'Отрицательных элементов: ', negative, #10, 'Положительных элементов: ', positive);

end.

Ответ дал: angryfukse
0
Попробуй заменить arr:=new real[n] на строчку SetLength(arr, n);
Ответ дал: angryfukse
0
Либо скачай PascalABC.NET, там версия программы, которая в ответе должна запуститься
Ответ дал: angryfukse
0
Потому что если ты работаешь в турбо паскале, то придется вручную выделять память для массива
Ответ дал: angryfukse
0
к примеру так:

TYPE
TArrayT = array[0.. ((xxxxx) div sizeof(T))-1] of T

Далее нужно определить указатель:
PArrayT= ^TArrayT;

И уже после определить переменную:

var
P : PArrayT;
Ответ дал: Soffi7bayard
0
Спасибо, всё заработало)
Ответ дал: answer2020
0

=sgncalc(диапазон ячеек, -1) - число отрицательных элементов

=sgncalc(диапазон ячеек, 0) - число нулевых элементов

=sgncalc(диапазон ячеек, 1) - число положительных элементов

Function sgncalc(a As Range, signum As Integer) As Integer

Dim r As Range

Dim b(-1 To 1) As Integer

For Each r In a

b(Sgn(r)) = b(Sgn(r)) + 1

Next

sgncalc = b(signum)

End Function

Excel VBA

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