Выборочная обработка матрицы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Выборочная обработка матрицы



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

– Элементы главной диагонали квадратной матрицы.

– Элементы вспомогательной диагонали квадратной матрицы.

– Элементы некоторого столбца или строки матрицы.

– Элементы матрицы, расположенные по ее кромке.

– Элементы квадратной матрицы, расположение которых соответствует расположению белых или черных клеток шахматной доски.

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

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

Во втором случае, на вспомогательной диагонали, номер столбца j связан с номером строки i соотношением j=nCol–i+1. В этом соотношении nCol это максимальный индекс для столбца.

В случае обработки одного из столбцов матрицы, его номер фиксирован, и единственный цикл достаточно организовать только по элементам строки. Аналогично обрабатывается и отдельная строка.

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

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

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

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

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

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

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

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

Таблица 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 – имя матрицы.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 263; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.80.131.164 (0.024 с.)