Программа должна менять две строки в матрице. Другие программы мне не нужно, мне нужно исправить именно эту программу.
 Program lab_2;
const maxX=20;
const maxY=20;
type
m=array [1..maxX,1..maxY] of integer;
var mas:m;
razm:integer;
str1:integer;
str2:integer;
{-------------------------------------------------------------}
{Функция ввода размерности матрицы}
function Vvod_razm(var f_razm:integer);
var s:string;
code:integer;
begin
repeat
writeln('Введите размерность матрицы n,m=');
readln(s);
val(s,f_razm,code);
if (code<>0) then
writeln('Ошибка!Повторите ввод');
until code=0;
Vvod_razm:=f_razm;
end;
{-------------------------------------------------------------}
{Функция ввода номера первой строки для замены}
function Vvod_1_stroki(f_str1:integer):integer;
var s:string;
code:integer;
begin
repeat
writeln('Введите номер 1 строки' );
readln(s);
val(s,f_str1,code);
if (code<>0) then
writeln('Ошибка!Повторите ввод');
until code=0;
Vvod_1_stroki:=f_str1;
end;
{-------------------------------------------------------------}
{Функция ввода второй строки для замены}
function Vvod_2_stroki(f_str2:integer):integer;
var s:string;
code:integer;
begin
repeat
writeln('Введите номер 2 строки' );
readln(s);
val(s,f_str2,code);
if (code<>0) then
writeln('Ошибка!Повторите ввод');
until code=0;
Vvod_2_stroki:=f_str2;
end;
{-------------------------------------------------------------}
{Функция ввода матрицы}
Procedure Vvod_matrix(f_mas:m;f_razm:integer);
var i,j:integer;
begin
writeln('Введите значение матрициы');
for i:=1 to f_razm do
begin
for j:=1 to f_razm do
begin
writeln('элемент',' ',i,' ',j);
readln(f_mas[i,j]);
end;
end;
end;
{-------------------------------------------------------------}
{Процедура вывода матрицы}
Procedure OutputMatrix(n:integer; const f_mas:m;f_razm:integer);
var i,j:integer;
begin
writeln('Введённая матрица:' );
for i:=1 to f_razm do
begin
for j:=1 to f_razm do
begin
write(f_mas[i,j],' ');
end;
writeln;
end;
end;
{-------------------------------------------------------------}
{Функция перестановки двух строк}
Procedure Perestanovka(f_razm:integer; var f_mas:m;f_str1,f_str2:integer);
var i,tmp:integer;
begin
for i:=1 to f_razm do
begin
tmp:=f_mas[f_str1,i];
f_mas[f_str1,i]:=f_mas[f_str2,i];
f_mas[f_str2,i]:=tmp;
end;
end;
{-------------------------------------------------------------}
{Процедура вывода полученной матрицы}
procedure Vyvod ( const f_mas:m;f_razm:integer);
var i,j:integer;
begin
writeln('Результат' );
for i:=1 to f_razm do
begin
for j:=1 to f_razm do
begin
write(f_mas[i,j],' ');
end;
writeln;
end;
end;
{-------------------------------------------------------------}
{Главная программа}
begin
razm:=Vvod_razm();
Vvod_matrix(mas,razm);
str1:=Vvod_1_stroki;
str2:=Vvod_2_stroki;
Perestanovka(razm,mas,str1,str2);
Vyvod(mas,razm);
end.