Двумерные массивы и алгоритмы их обработки.
В дисциплине «Информатика» при изучении Visual Basic были рассмотрены одномерные массивы (соответствует последовательности или ряду данных), в которых каждый элемент определяется одним индексом. Современные языки программирования позволяют работать также с многомерными массивами (таблицы – 2х мерная, куб 3-х мерная и т д.), в которых элементы определяются несколькими индексами. Мы будем использовать двумерные массивы – каждый элемент определяется двумя индексами (соответствуют матрице – один индекс определяет номер строки, второй – столбца).
В Visual Basic Script все массивы должны быть определены оператором Dim. Двумерный массив с именем matrix, состоящий из трех элементов по одному измерению и двух элементов по другому измерению (матрица из трех строк и двух столбцов) определяется оператором:
Dim matrix(2,1)
В Visual Basic для определения массивов мы использовали, например, оператор Dim A (1 To 5) As Integer для определения целочисленного массива из пяти элементов (индексы элементов могут принимать значения от 1 до 5). В данном случае мы использовали явный способ задания диапазона значений индексов элементов массива от 1 до 5.
При неявном определении массива индексом первого элемента является 0. Оператор Dim A (5) определяет массив из 6 элементов (индексы 0, 1,2, 3, 4, 5).
В Visual Basic Script не допускается использование явного определения массивов. Таким образом, оператор Dim matrix(2,1) определяет двумерный массив, состоящий из трех элементов по одному измерению и двух элементов по другому измерению. Соответствующая такому массиву матрица из трех строк и двух столбцов показана на рисунке 18, в элементах матрицы указаны их индексы (первый индекс – номер строки, второй – номер столбца).
0,0 | 0,1 |
1,0 | 1,1 |
2,0 | 2,1 |
Рис. 18.
Оператор определения массива выделят ячейки (область) оперативной памяти для его размещения. Такие области всегда одномерны независимо от размерности массива. В разных языках программирования многомерные массивы упорядочиваются по-разному.
В Visual Basic и Visual Basic Script многомерные массивы упорядочиваются таким образом, что быстрее всего меняется левый индекс (для приведенной на рисунке матрицы это будет означать, что она упорядочивается по столбцам – сначала первый столбец, затем второй). Приведенный в примере массив matrix(2,1) в памяти будет храниться в следующей последовательности (рис. 19):
0,0 | 1,0 | 2,0 | 0,1 | 1,1 | 2,1 |
Рис. 19.
Для работы с многомерными массивами обычно применяются алгоритмы содержащие несколько циклов (один цикл по каждому измерению). Для суммирования значений всех элементов двумерного массива (суммируются все элементы матрицы) можно написать следующий фрагмент программы:
|
For i = 0 to 2
For j = 0 to 1
Sum = Sum + matrix (i,j)
Next j
Next i
Оператор суммирования Sum = Sum + matrix (i,j) выполняется 6 раз. Внешний и вложенный циклы работают в следующей последовательности:
· для первого значения параметра внешнего цикла i = 0 последовательно меняются значения параметра вложенного цикла (0,1), т.е. полностью выполняется внутренний цикл;
· параметр внешнего цикла i принимает следующее значение i = 1 и опять последовательно меняются значения параметра вложенного цикла (0,1), опять полностью выполняется внутренний цикл;
· и т.д.
Дата добавления: 2015-08-11; просмотров: 877;