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
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.
=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
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.
=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