{
Пример 3.3 В заданной матрице А(N,M) поменять местами
строки с номерами Р и Q (1<=P<=N, 1<=Q<=N).
Тест
╔════════════════════╦═══════════════════╗
║ Данные ║ Результат ║
╠════════════════════╬═══════════════════╣
║ N=3 M=3 P=1 Q=3 ║ ║
║ ║ 3 1 3 ║
║ 1 2 1 ║ A = 2 2 2 ║
║ A = 2 2 2 ║ 1 2 1 ║
║ 3 1 3 ║ ║
╚════════════════════╩═══════════════════╝
}
Program Exchange;
Uses Crt;
Type Mas = Array [1..10, 1..10] of Real;
Var A : Mas;
N, M, P, Q, i, j : Integer;
Tmp : Real;
{------------------------------------------}
Procedure InputOutput(Var A:Mas); {описание процедуры ввода-вывода}
Begin
ClrScr;
Write('Количество строк - '); ReadLn(N);
Write('Количество столбцов - '); ReadLn(M);
For i := 1 to N do
For j := 1 to M do
begin Write('A[' , i , ', ' , j , '] = ? ');
Read(A[i, j])
end; WriteLn;
WriteLn('Номера строк, которые нужно поменять местами :');
Write('P = '); ReadLn(P); Write('Q = '); ReadLn(Q); WriteLn;
ClrScr; WriteLn('Исходная матрица : ' ) ;
For i := 1 to N do
begin
For j := 1 to M do Write(A[i, j] : 5 : 1);
WriteLn
end; WriteLn
End; { of InputOutput }
{--------------------------------------------------------}
Procedure Change(P, Q: Integer); {описание процедуры замены строк }
Begin
For j := 1 to M do
begin Tmp:=A[P, j]; A[P, j]:=A[Q, j]; A[Q, j]:=Tmp end;
End; { of Change }
{--------------------------------------------------------}
Procedure OutRes(Var A:Mas); {описание процедуры вывода результатов}
Begin
WriteLn('Матрица-результат :');
For i := 1 to N do
begin
For j := 1 to M do Write(A[i, j] : 5 : 1) ;
WriteLn
end; ReadLn
End; { of OutRes }
{--------------------------------------------------------}
BEGIN
InputOutput(A); {вызов процедуры ввода-вывода исходных данных}
Change(P, Q); {вызов процедуры замены строк }
OutRes(A) {вызов процедуры вывода результатов}
END.