Другие языки программирования и технологии

кто может решить задачу в турбо паскале, по двумерным массивам

Составить программу преобразования матрицы таким образом, что 1 столбец меняется с последним 2 с предпоследним и т д. Сделать нужно в одном массивы... За ранее огромное спасибо
Можете приступать, что вас останавливает?
Андрей Секачев
Андрей Секачев
13 767
Лучший ответ
Вот так:

const Rows = 10; Cols = 10;
var A : array [1..Rows, 1..Cols] of Integer;

procedure Swap(var N1, N2 : Integer);
var tmp : Integer;
begin
tmp := N1; N1 := N2; N2 := tmp;
end;

procedure SwapCols(Col1, Col2 : Byte);
var Row : Byte;
begin
for Row := 1 to Rows do Swap(A[Row, Col1], A[Row, Col2]);
end;

var Row, Col : Byte;
begin { основная программа }
… { ввести или заполнить случайными числами массив }
… { вывести на экран исходный массив }
for Col := 1 to Cols div 2 do SwapCols(Col, Cols + 1 - Col); { меняем колонки местами }
… { вывести на экран полученный массив }
end. { конец основной программы }

… Уж надеюсь, заполнение массива и вывод на экран сама сделаешь ;-)
$$$ Азат $$$
$$$ Азат $$$
62 477
Ну народ накрутил! Всё проще делается, и короче, даже с объявлением переменных и выводом результатов.
var A : array of array of real;
var k, j, m, n, p : integer
BEGIN
readln ('Vvedite kol-vo strok');
writeln (n);
readln ('Vvedite kol-vo stolbcov');
writeln (m);
setlength (A, n, m)
for k := 1 to n do
begin
for j := 1 to m do read (A[k, j]);
writeln;
end;
for k := 1 to n do
begin
if m mod 2 = 0 then p := m/2 else p := (m-1)/2;
for j := 1 to p do
begin
Q := A[k, j];
A[k, j] := A[k, m-j+1];
A[k, m-j+1] := Q;
end;
for j := 1 to m do write (A[k, j]);
writeln;
end;
END.
Коля Лифман
Коля Лифман
71 835
const
n = 7;
m = 5;
var
a: array [1..n, 1..m] of integer;
r, c, tmp: integer;
begin
randomize;
writeln('исходный массив: ');
for r := 1 to n do begin
for c := 1 to m do begin
a[r][c] := random(100);
write(a[r][c]:4);
end;
writeln;
end;
for r := 1 to n div 2 do
for c := 1 to m do begin
tmp := a[r][c];
a[r][c] := a[n - r + 1][c];
a[n - r + 1][c] := tmp;
end;
writeln('преобразованный массив: ');
for r := 1 to n do begin
for c := 1 to m do
write(a[r][c]:4);
writeln;
end;
end.