1. Сформировать двумерный массив размера 5×6, заполненный случайными числами из диапазона [–10,10]. Определить в нём количество отрицательных, нулевых и положительных элементов.
1 балл
2. Сформировать двумерный массив размера 5×6, заполненный случайными числами из диапазона [1,100]. Найти в нём наибольший и наименьший элементы (указать их индексы).
2 балла
3. Сформировать двумерный массив размера 5×9, заполненный случайными числами из диапазона [–3,5]. Подсчитать количество положительных элементов в каждой строке.
Ответы
===== PascalABC.NET =====
begin
// 1
var a := MatrRandom(5, 6, -10, 10);
a.Println(4);
var (kn, kz, kp) := (0, 0, 0);
for var i := 0 to a.RowCount - 1 do
for var j := 0 to a.ColCount - 1 do
if a[i, j] > 0 then
kp += 1
else if a[i, j] = 0 then
kz += 1
else
kn += 1;
Println('Отрицательных', kn, ' нулевых', kz,
' положительных', kp);
// 2
var b := MatrRandom(5, 6, 1, 100);
b.Println(5);
var s := b.ElementsWithIndices;
var imin := s.MinBy(p -> p[0]);
var imax := s.MaxBy(p -> p[0]);
Writeln('Индексы минимального элемента [',
imin[1] + 1, ',', imin[2] + 1, ']');
Writeln('Индексы максимального элемента [',
imax[1] + 1, ',', imax[2] + 1, ']');
// 3
var c := MatrRandom(5, 9, -3, 5);
c.Println(3);
Print('Количество положительных по строкам:');
c.Rows.Select(r -> r.Count(p -> p > 0)).Println
end.