Soffi7bayard
Мне программа пишет, что в 14-й строчке (там, где вы вот это написали arr:=new real[n];) много аргументов передаётся функцией new. Там есть варианты new^^(Object), new^(Object, args...):Object и new^(Object). Какой подходит?
angryfukse
Попробуй заменить arr:=new real[n] на строчку SetLength(arr, n);
angryfukse
Либо скачай PascalABC.NET, там версия программы, которая в ответе должна запуститься
angryfukse
Потому что если ты работаешь в турбо паскале, то придется вручную выделять память для массива
Answers & Comments
Verified answer
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.
TYPE
TArrayT = array[0.. ((xxxxx) div sizeof(T))-1] of T
Далее нужно определить указатель:
PArrayT= ^TArrayT;
И уже после определить переменную:
var
P : PArrayT;
Verified answer
=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