// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('*** Исходный массив 8x7 ***');
var a:=MatrRandom(8,7,-99,99);
a.Println(5); Writeln(5*a.ColCount*'-'); // исходный массив
// заменить все элементы первых трех столбцов на их квадраты
for var i:=0 to 2 do
a.SetCol(i,a.Col(i).Select(x->x*x).ToArray);
Writeln('*** После замены в 3х первых столбцах ***');
a.Println(5); Writeln(5*a.ColCount*'-');
// вставить между средними строками первую строку
SetLength(a,9,7);
for var i:=7 downto 4 do
a.SetRow(i+1,a.Row(i));
a.SetRow(4,a.Row(0));
Writeln('*** После вставки первой строки в середину ***');
a.Println(5); Writeln(5*a.ColCount*'-');
// удалить все столбцы, в которых 1-й элемент больше последнего
var d:=0;
for var i:=0 to 6 do
if a[0,i]>a[8,i] then d+=1
else
if d>0 then a.SetCol(i-d,a.Col(i));
SetLength(a,9,7-d);
Writeln('*** После удаления столбцов ***');
a.Println(5); Writeln(5*a.ColCount*'-');
// поменять местами первую и последнюю строку
a.SwapRows(0,a.RowCount-1);
Writeln('*** Результирующий массив ***');
a.Println(5)
end.
Пример
*** Исходный массив 8x7 ***
-42 10 -92 -23 51 -50 31
62 -75 25 -37 87 -9 63
-99 67 61 -19 -27 17 -96
-45 -7 83 -34 33 35 -95
29 86 -85 -94 43 -89 63
-38 64 -93 55 -53 -56 98
-34 -20 34 -2 -89 92 85
-11 48 -75 -81 -38 73 -97
-----------------------------------
*** После замены в 3х первых столбцах ***
1764 100 8464 -23 51 -50 31
3844 5625 625 -37 87 -9 63
9801 4489 3721 -19 -27 17 -96
2025 49 6889 -34 33 35 -95
841 7396 7225 -94 43 -89 63
1444 4096 8649 55 -53 -56 98
1156 400 1156 -2 -89 92 85
121 2304 5625 -81 -38 73 -97
-----------------------------------
*** После вставки первой строки в середину ***
1764 100 8464 -23 51 -50 31
3844 5625 625 -37 87 -9 63
9801 4489 3721 -19 -27 17 -96
2025 49 6889 -34 33 35 -95
1764 100 8464 -23 51 -50 31
841 7396 7225 -94 43 -89 63
1444 4096 8649 55 -53 -56 98
1156 400 1156 -2 -89 92 85
121 2304 5625 -81 -38 73 -97
-----------------------------------
*** После удаления столбцов ***
100 -50
5625 -9
4489 17
49 35
100 -50
7396 -89
4096 -56
400 92
2304 73
----------
*** Результирующий массив ***
2304 73
5625 -9
4489 17
49 35
100 -50
7396 -89
4096 -56
400 92
100 -50