Faq прочел ( но не смог решить). В поиске похожую тоже не нашел.
Составить программу перестановки четных и нечетных столбцов элементов матрицы. Перестановку столбцов оформить в виде процедуры
for i := 1 to (size_col div 2) do begin { size_col - число столбцов !!! }
swap_cols(mx, 2*i - 1, 2*i);
end;
program smena;
uses crt;
const
size_row = 4;
size_col = 7;
type
trow = array[1..size_row] of integer;
tmatrix = array[1..size_col] of trow;
procedure swap_cols(var mx: tmatrix;
const i; j:integer);
var T: trow;
begin
T:= mx[i]; mx[i] := mx[j]; mx[j] := T
end;
var
mx:tmatrix;
i,j:integer;
n,z :integer;
begin
for i:=1 to (size_col div 2) do begin
swap_cols(mx,2*i-1,2*i);
end.
begin
for i := 1 to size_col do
for j := 1 to size_row do begin
write('mx[', j:2, i:2, '] = '); readln(mx[i, j]); { <--- матрица вводится по столбцам !!! }
end;
print(mx); { До обмена }
for i:=1 to (size_col div 2) do
swap_cols(mx,2*i-1,2*i);
writeln;
print(mx); { После обмена }
end.
program smena;
uses crt;
const
size_row = 4;
size_col = 7;
type
trow = array[1..size_row] of integer;
tmatrix = array[1..size_col] of trow;
procedure swap_cols(var mx: tmatrix;
const i; j:integer);
var T: trow;
begin
T := mx[i]; mx[i] := mx[j]; mx[j] := T
end;
procedure print(var mxL tmatrix);
var i,j:integer;
begin
for i:=1 tp size_row do
begin
for j:=1 to size_col do
write(mx[j][i]:4);
writeln
end;
end;
var
mx:tmatrix;
i,j:integer;
n,z :integer;
begin
for i:=1 to size_col do
for j:=1 to size_row do begin
write('mx[',j:2,i:2,']=');
readln(mx[i,j];
end;
print(mx);
for i:=1 to (size_col div 2) do
swap_cols(mx,2*i-1,2*i);
writeln;
print(mx);
end.
T := mx[i]; mx[i] := mx[j]; mx[j] := T
procedure swap_cols(var mx: tmatrix;
const i, j:integer); { <--- Между I и J должна быть запятая, а не точка с запятой... }
procedure print(var mx: tmatrix); { а здесь - двоеточие а не L }Ты что, перепечатываешь вручную текст? Скопировать нельзя было? Ошибки же вносишь...