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