Перетворити стовпці матриці а(nxn) так: якщо кількість елементів у стовпці , які перевищують мінімальне додатне значення цього стовця ,більша за 3 , то всі додатні елементи відповідного стовця розділити на 2
// PascalABC.NET 3.2, сборка 1485 от 15.06.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк/столбцов в матрице:'); Writeln('*** Исходная матрица [',n,',',n,'] ***'); var a:=MatrRandom(n,n,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); var j:=0; var nr:=ArrFill(n,False); foreach var c in a.Cols do begin var s:=c.Where(x->x>0); if s.Count>0 then begin var min:=s.Min; var k:=c.Where(x->x>min).Count; nr[j]:=k>3; j+=1 end end; Writeln('*** Результирующая матрица ***'); for var i:=0 to n-1 do if nr[i] then a.SetCol(i,a.Col(i).Select(x->(x>0?x div 2:x)).ToArray); a.Println(4) end.