Алгоритмы обработки двухмерных массивов
Двухмерный массив — это некоторая матрица с определенным числом строк и столбцов. Каждый элемент такого массива определяется двумя индексами: первый из них указывает номер строки, а второй номер столбца, на пересечении которых размещен данный элемент. Например, в системе линейных алгебрагических уравнений
совокупность неизвестных величины x1, x2,..., x10 и правых частей b1, b2,..., b10 образует одномерные массивы (векторы), так как положение элементов в них определяется одним индексом. Матрица коэффициентов ai,j (i=1.. 10, j=1..10) этой системы уравнений служит примером двухмерного массива, который состоит из 10 строк и 10 столбцов.
Пример. Для матрицы целых чисел B(5,4) найти произведение отрицательных (P) и сумму положительных (S) элементов.
Исходный массив B содержит 5 строк и 4 столбца. Решение этой задачи сводится к проверке в цикле знака элемента исходного массива и накоплению произведения, если этот элемент отрицательный, накоплению суммы, если он положительный. Для данной задачи можно организовать просмотр массива по строкам (внешний цикл по первому индексу, внутренний по второму индексу) или по столбцам (наоборот).
Блок-схема этого алгоритма изображена на рис. 6.
Здесь блоки 2, 3, 4 организуют ввод элементов массива B (поэлементно, по строкам). В блоке 5 присваиваются начальные значения сумме и произведению элементов. Блоки 6, 7 организуют вложенный цикл, параметрами которого являются номер строки и номер столбца элементов массива В. В блоке 8 проверяется знак элемента массива, в блоке 9 накапливается произведение, если он отрицательный, а в блоке 10 - накапливается сумма положительных элементов (и нулевых, так как на результат S они не влияют). Блок 11 выводит результаты расчета.
Рисунок 6 - Блок-схема алгоритма обработки двухмерного массива