// PascalABC.NET 3.2, сборка 1478 от 10.06.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; Writeln('Положительных ',a.Where(x->x>0).Count, ', отрицательных ',a.Where(x->x<0).Count) end.
Var A:array[1..10000] of shortint; N,i,p,o:integer; Begin Randomize; O:=0; P:=0; Write('N = ');ReadLn(N); Write('Исходный массив:'); For i:= 1 to N do Begin A[i]:=random(21)-10; Write(' ',A[i]); if A[i] < 0 then O:=O+1 else if A[i] > 0 then P:=P+1; End; WriteLn; WriteLn('Количество положительных: ',p); WriteLn('Количество отрицательных: ',o); ReadLn End.
Язык не задан, поэтому я напишу только алгоритм. 1) Вводим массив A(10, 10) 2) Открываем пустой массив из одной строки B(10) 3) flag = 0 4) Цикл по i от 1 до 9 4.1) Цикл по k от 1 до 10 (по столбцам) 4.1.1) Копируем i-ую строку из массива А в массив В 4.2) Конец цикла по k 4.3) Цикл по j от i + 1 до 10 (по строкам) 4.3.1) Цикл по k от 1 до 10 (по столбцам) 4.3.1.1) Сравниваем j-ую строку массива А и массив В 4.3.2) Конец цикла по k 4.3.3) Если строки равны, то выводим их на экран. 4.4) Конец цикла по j 5) Конец цикла по i 6) Конец Коротко говоря, алгоритм такой. Сравниваем 1 строку со всеми от 2 до 10. Если строки совпали - выводим их на экран. Можно вывести только номера, можно сами строки. Переходим ко 2 строке. Ее сравниваем от 3 до 10. И так далее. Последнюю 9 строку сравниваем только с 10.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
Writeln('Положительных ',a.Where(x->x>0).Count,
', отрицательных ',a.Where(x->x<0).Count)
end.
Пример
n= 15
-41 -3 -7 9 10 33 -6 -16 30 -47 -23 22 3 -14 -38
Положительных 6, отрицательных 9