Написать программу в pascal'e. если матрица квадратная, то поменять местами минимальный и максимальный элементы побочной диагонали. в противном случае-заменить элементы четных строк нулями.
var a: array[1..nm, 1..nn] of integer; i, j, m, n, k, imin, imax, nmin, nmax: integer;
begin Write('Введите число строк и столбцов матрицы: '); Readln(m, n); Randomize; Writeln('Исходная матрица'); for i := 1 to m do begin for j := 1 to n do begin a[i, j] := Random(101) - 50; Write(a[i, j]:4) end; Writeln end; if m = n then begin imax := 1; imin := 1; nmax := a[1, n]; nmin := nmax; for i := 2 to n do begin k := a[i, n - i + 1]; if nmax < k then begin imax := i; nmax := k end; if nmin > k then begin imin := i; nmin := k end end; a[imax, n - imax + 1] := nmin; a[imin, n - imin + 1] := nmax end else begin i := 2; while i <= m do begin for j := 1 to n do a[i, j] := 0; i := i + 2 end; end; Writeln('Матрица-результат'); for i := 1 to m do begin for j := 1 to n do Write(a[i, j]:4); Writeln end; Writeln end.
nm = 20;
nn = 20;
var
a: array[1..nm, 1..nn] of integer;
i, j, m, n, k, imin, imax, nmin, nmax: integer;
begin
Write('Введите число строк и столбцов матрицы: ');
Readln(m, n);
Randomize;
Writeln('Исходная матрица');
for i := 1 to m do
begin
for j := 1 to n do
begin
a[i, j] := Random(101) - 50;
Write(a[i, j]:4)
end;
Writeln
end;
if m = n then begin
imax := 1; imin := 1; nmax := a[1, n]; nmin := nmax;
for i := 2 to n do
begin
k := a[i, n - i + 1];
if nmax < k then begin imax := i; nmax := k end;
if nmin > k then begin imin := i; nmin := k end
end;
a[imax, n - imax + 1] := nmin; a[imin, n - imin + 1] := nmax
end
else begin
i := 2;
while i <= m do
begin
for j := 1 to n do a[i, j] := 0;
i := i + 2
end;
end;
Writeln('Матрица-результат');
for i := 1 to m do
begin
for j := 1 to n do Write(a[i, j]:4);
Writeln
end;
Writeln
end.
Тестовые решения:
Введите число строк и столбцов матрицы: 5 5
Исходная матрица
29 40 -24 34 16
32 -45 9 -10 27
-45 30 -50 -24 -50
15 33 3 12 36
46 -46 0 2 43
Матрица-результат
29 40 -24 34 16
32 -45 9 -10 27
-45 30 46 -24 -50
15 33 3 12 36
-50 -46 0 2 43
Введите число строк и столбцов матрицы: 5 6
Исходная матрица
27 3 -18 36 -48 22
-27 -19 4 -36 -50 -9
-48 -25 9 -36 10 26
10 -22 -15 -40 -42 38
-31 32 41 -17 -26 22
Матрица-результат
27 3 -18 36 -48 22
0 0 0 0 0 0
-48 -25 9 -36 10 26
0 0 0 0 0 0
-31 32 41 -17 -26 22