Программа
поэлементной перестановки
двух строк заданной целочисленной
матрицы максимального размера 10x10.
|
Program
P76 (Input, Output);
|
Объявление
имени программы
|
Var
|
Блок
объявления глобальных переменных
|
S
:
Integer;
|
Переменная
S - целочисленный "буфер",
используемый при перестановке строк
|
X
:
Array [1..10, 1..10] Of Integer;
|
Переменная
X - целочисленная матрица максимального
размера 10x10
|
M,
N :
Integer;
|
M
- число столбцов, а N - число строк
вводимой матрицы
|
Q,
P
:
Integer;
|
Переменные
Q и P - номера переставляемых строк
|
i,
j
:
Integer;
|
Переменные
i, j - параметры циклов
|
|
|
Begin
|
Начало
тела программы
|
|
|
WriteLn
('PASCAL: Перестановка двух строк матрицы.');
|
Формулировка
цели алгоритма
|
WriteLn
('Введите входные данные:');
|
Вывод
запроса входных данных
|
Write
('Число строк таблицы (массива) N = '); ReadLn
(N);
|
Вывод
запроса и ввод N - числа строк исходной
матрицы
|
Write
('Число столбцов таблицы (массива) M = ');
ReadLn (M);
|
Вывод
запроса и ввод M - числа столбцов
исходной матрицы
|
WriteLn
('Введите таблицу (массив) X:');
|
Запрос
ввода элементов самой исходной матрицы
|
For
i := 1 To N Do
|
Цикл
для i от 1 до N, где i - номер очередной
строки
|
For
j := 1 To M Do
|
Цикл
для j от 1 до M, где j - номер очередного
столбца
|
Begin
|
Начало
тела цикла
|
Write
('X[', i: 2, ',', j: 2, ']', ' = ');
|
Вывод
удобной подсказки
|
Read
(X [i, j] );
|
Ввод
очередного элемента - X[i,j]
|
End;
|
Конец
тела цикла
|
|
|
WriteLn
('Введите номера переставляемых строк:');
|
Запрос
номеров переставляемых строк
|
Write
('Q = '); ReadLn (Q);
|
Запрос
и ввод номера первой переставляемой
строки
|
Write
('P = '); ReadLn (P);
|
Запрос
и ввод номера второй переставляемой
строки
|
|
|
For
i := 1 To M Do
|
Цикл
для i от 1 до M перестановки местами
элементов Q-ой и P-ой строк
|
Begin
|
Начало
тела цикла
|
S
:= X [Q, i];
|
В
"буфер" заносим i-ый элемент Q-ой
строки
|
X
[Q, i] := X [P, i];
|
i-ому
элементу Q-ой строки присваиваем i-ый
элемент P-ой строки
|
X
[P, i] := S;
|
i-ому
элементу P-ой строки присваиваем
содержимое "буфера"
|
End;
|
Конец
тела цикла
|
|
|
WriteLn
('Таблица после перестановки:');
|
Сообщение
пользователю о выводе полученной
матрицы
|
For
i := 1 To N Do
|
Цикл
для i от 1 до N, где i - номер строки
|
Begin
|
Начало
тела цикла
|
For
j := 1 To M Do
|
Цикл
для j от 1 до N, где j - номер выводимого
элемента в i-ой строке
|
Write
(X [i, j] : 4);
|
Вывод
элемента матрицы X в позиции [i,j]
|
WriteLn;
|
Переход
на следующую строку
|
End;
|
Конец
тела цикла
|
|
|
ReadLn;
|
Ожидание
нажатия клавиши Enter для завершения
|
End.
|
Конец
программы.
|