Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Лабы_Ч2.doc
Скачиваний:
5
Добавлен:
09.11.2019
Размер:
2 Mб
Скачать

7.1.19Перестановки элементов матрицы

Есть задачи, в которых требуется менять местами элементы матрицы. Ниже перечислены некоторые из таких задач.

  • Транспонирование матрицы (поворот вокруг главной диагонали).

  • Поворот вокруг вспомогательной диагонали.

  • Поворот вокруг горизонтальной оси.

  • Поворот вокруг вертикальной оси.

Таблица 9.2 – Параметры циклов при перестановках элементов матрицы

Линия симметрии при повороте

Внешний цикл

Внутренний цикл

Индексы элемента

текщ.

симметр.

Главная диагональ

от i=2 до nRow

По элементам строки (индексы столбца)

от j = 1 до i-1

[ i, j ]

[ j, i ]

Вспомога-тельная диагональ

По строкам,

от i=1 до nRow -1

от j = 1 до nCol - i

[ i, j ]

[nRow–j +1, nCol – i+1]

Горизонталь-ная ось

По строкам,

от i=1 до nRow div 2

По элементам строки (индексы столбца)

от j = 1 до nCol

[ i, j ]

[nRow –i+1, j ]

Вертикальная ось

По строкам,

от i=1 до nRow

По элементам строки (индексы столбца)

от j = 1 до nCol div 2

[ i, j ]

[ i,

nCol – j+1 ]

Для решения всех этих задач требуется двойной цикл. Внешний цикл обычно организуется по всем номерам строк или столбцов, иногда, за исключением первого или последнего номера. Внутренний же цикл обеспечивает перебор только половины элементов, которые расположены с одной стороны от оси поворота. Тело цикла содержит операторы, которые обеспечивают обмен значениями между текущим элементом матрицы и симметричным ему. Для организации обмена удобнее всего использовать промежуточную переменную.

Основная трудность, возникающая при решении этих задач, это определение индексов элемента, симметричного текущему элементу.

В таблице 8.1 приведены параметры циклов, обеспечивающих перевороты элементов матрицы вокруг различных осей симметрии. Индексные выражения, приведенные в таблице, составлены в предположении, что нижние индексы строк и столбцов раны единице, верхние индексы столбцов и строк соответственно равны nCol и nRow, а m – имя матрицы.

7.1.20Удаление и вставка элементов матрицы

Здесь подразумевается удаление столбца или стоки матрицы, так как удалять отдельный элемент матрицы мы не можем, не нарушив прямоугольную структуру.

Удаление или вставка строки или столбца подобно удалению или вставке элемента массива. При удалении нужно сдвинуть последующие строки влево или столбцы вверх, на место удаляемого компонента, и уменьшить соответствующий размер. При вставке нужно сдвинуть последующие строки вправо или столбцы вниз, освободив место для вставляемого компонента, и увеличить соответствующую границу матрицы.