===== PascalABC.NET =====
begin
var (m, n) := ReadInteger2('Число строк и столбцов массива:');
var a := MatrRandom(m, n, -99, 99);
a.Println(4);
var k := ReadInteger('Сколько первых элементов обработать?');
if not k.InRange(1, m * n) then
Println('Введено недопустимое значение')
else
begin // замена построчно
var r := k div n; // число полных строк
if r > 0 then
for var i := 0 to r - 1 do
for var j := 0 to n - 1 do
a[i,j] := -a[i,j];
for var j := 0 to k - r * n - 1 do
a[r,j] := -a[r,j];
a.Println(4)
end
end.
Второй вариант использует более продвинутые возможности PascalABC.NET. Замена выполняется единственным оператором.
a.Transform((p, i, j) -> n * i + j < k ? -p : p);
===== PascalABC.NET =====
begin
var (m, n) := ReadInteger2('Число строк и столбцов массива:');
var a := MatrRandom(m, n, -99, 99);
a.Println(4);
var k := ReadInteger('Сколько первых элементов обработать?');
if not k.InRange(1, m * n) then
Println('Введено недопустимое значение')
else
begin // замена построчно
var r := k div n; // число полных строк
if r > 0 then
for var i := 0 to r - 1 do
for var j := 0 to n - 1 do
a[i,j] := -a[i,j];
for var j := 0 to k - r * n - 1 do
a[r,j] := -a[r,j];
a.Println(4)
end
end.
Второй вариант использует более продвинутые возможности PascalABC.NET. Замена выполняется единственным оператором.
begin
var (m, n) := ReadInteger2('Число строк и столбцов массива:');
var a := MatrRandom(m, n, -99, 99);
a.Println(4);
var k := ReadInteger('Сколько первых элементов обработать?');
if not k.InRange(1, m * n) then
Println('Введено недопустимое значение')
else
begin // замена построчно
a.Transform((p, i, j) -> n * i + j < k ? -p : p);
a.Println(4)
end
end.