Полная версия

Главная arrow Информатика arrow Базовые средства программирования на Visual Basic в среде VisualStudio. Net

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>

Программирование алгоритмов формирования и обработки двумерных массивов

Средства описания и работы с двумерными массивами данных

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

Из предыдущей темы известно, что массив представляет собой последовательность переменных одинакового типа, объединенных общим именем.

Количество индексов (измерений) указывает на размерность (ранг) массива. Например: двумерный массив Ь(3, 2) :

Ь(0,0) Ь(0,1) Ь(0,2)

Ь(1,0) Ь(1,1) Ь(1,2)

Ь(2,0) Ь(2,1) Ь(2,2)

Ь(3,0) Ь(3,1) Ь(3,2)

Так, в приведенном выше примере размерность массива Ь(3, 2) - 2, т. е. массив двумерный (имеет два измерения). В нашем примере количество элементов массива Ь(3,2) равно 12 (4 строки и 3 столбца).

Перед использованием двумерного массива в программе его необходимо объявить с помощью оператора Dim, который выделяет место в памяти для размещения элементов статического массива. Например:

I Dim Ь(3»2) As Single I

Необходимо обратить внимание на то, что как при описании - А(т, п), так и при обращении - A(i,j) к элементам двумерного массива в скобках сначала указывается номер строки, а затем номер столбца.

Для определения параметров двумерного массива могут использоваться свойство класса Array - Rank и метод класса Array Get Length ( ). Свойство Rank спользуется для определения количества измерений (ранга) массива (для двумерного массива ранг равен 2). Причем каждое измерение в массиве может иметь свою длину. Метод

Прямоугольная и квадратные матрицы

Рис. 8.1-1. Прямоугольная и квадратные матрицы

Get Length ( ) используется для определения количества элементов в

заданном измерении массива (для первого измерения используется значение 0, для второго - 1 и т.д.). Необходимо обратить внимание, что метод Get Length ( ) возвращает значение, которое на единицу больше, чем

указанное в объявлении Dim, так как индексация элементов массива в VB всегда начинается с нуля, а метод Get Length ( )определяет количество элементов, считая от единицы.

Так, для определения параметров массива Мас1( ) , описанного как |Dim Macl(4,7) As Integer I

можно воспользоваться следующими выражениями:

ArrayRank = Macl.Rank

RawCount = Macl.GetLength(ArrayRank-2)

ColumnCount= Macl.GetLength(ArrayRank-l)_

где ArrayRank - ранг матрицы (равен 2);

RawCount - количество строк (равно 5);

ColumnCount - количество столбцов (равно 8).

Таким образом, ArrayRank, RawCount, ColumnCount являются переменными целочисленного типа, которые принимают значения 2, 5 и 8 соответственно.

Кроме того, для определения параметров двумерного массива можно использовать метод Get Upper Bound ( ), который находит верхнюю границу (максимальный индекс) заданного измерения. В качестве параметра этот метод принимает значения аналогично методу Get Length ( ), т.е. для первого измерения (строк) используется значение 0, для второго (столбцов) -1.

Например, для массива Мае2:

Dim Мас2(4,7) As Double

Dim Строка1, Столбец2 As Integer

Строка1 = Mac2.GetUpperBound(0) 'Значение Строка1 'равно 4 Столбец2 = Мас2.GetUpperBound(l)_

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

Пример 8.1-1. Написать процедуры ввода/вывода, которые могут использоваться в алгоритмах обработки двумерных массивов.

Некоторые процедуры ввода и вывода приведены в Темах 3, 4, 5, 6 и 7. Остальные процедуры ввода и вывода, которые можно использовать при написании базовых алгоритмов формирования и обработки двумерных массивов, представлены на рис. 8.1-2, 8.1-3, 8.1-4 и 8.1-5.

На рис. 8.1-4 представлен пример процедуры вывода целочисленной матрицы в Text Box. Напомним, что для того, чтобы в элементе управления Text Box можно было записать несколько строк текста, необходимо присвоить его свойству Multi Line значение True.

Процедура ввода элементов массива wodSngMacl8() Пример 8.1-1

Рис. 8.1-2. Процедура ввода элементов массива wodSngMacl8() Пример 8.1-1

Процедура формирования массива vvod2( ) случайными числами Пример 8.1-1

Рис. 8.1-3. Процедура формирования массива vvod2( ) случайными числами Пример 8.1-1

Процедура форматированного вывода массива vivodSngMacl9() Пример 8.1-1

Рис. 8.1-4. Процедура форматированного вывода массива vivodSngMacl9() Пример 8.1-1

Процедура форматированного вывода массива vivodIntMac20 в TextBox Пример 8.1-1

Рис. 8.1-5. Процедура форматированного вывода массива vivodIntMac20 в TextBox Пример 8.1-1

 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>