Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольные работы ТП.doc
Скачиваний:
4
Добавлен:
08.11.2019
Размер:
781.31 Кб
Скачать

Лабораторная работа 2 двумерные массивы

Цель работы: Изучение средств работы с двумерными массивами и приемов их обработки.

Краткие теоретические сведения

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

Статический двумерный массив декларируется в Visual Basic (VB) следующим образом:

Dim <имя массива> (<нижняя граница первого индекса массива> To <верхняя граница первого индекса массива >, <нижняя граница второго индекса массива> To <верхняя граница второго индекса массива >) As  <тип элементов массива>

Dim <имя массива> (<верхняя граница первого индекса массива>, <верхняя граница второго индекса массива >) As  <тип элементов массива>

Например, массив, содержащий 6 строк и 5 столбцов вещественных чисел, объявляется следующим образом Dim m(1 To 6, 1 To 5) As Double или Dim m(5, 4) As Double. Во втором случае элементы двумерного массива нумеруются с нуля.

Объявление динамического двумерного массива осуществляется аналогично объявлению одномерного массива. С помощью команды ReDim выделяется память под элементы массива. При использовании конструкции ReDim Preserve может быть изменена только верхняя граница первого индекса массива. Это связано с последовательным способом представления двумерного массива в памяти компьютера.

Для обращения к элементу массива m, расположенного в третьей строке и втором столбце, необходимо записать m(3, 2).

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

Функция UBound (<имя массива>, i) возвращает верхнюю границу i-го индекса массива; а функция LBound (<имя массива>, i) — нижнюю границу i-го индекса.

Задание. Сформировать в массиве матрицу и вывести ее на экран.

1.  2.  3. 

4.  5. 6.  7.  8.  9. 

10.  11. 12.

13.  14.  15. 

16.  17.  18. 

19. 20. 21.

22.  23. 

24.  25. 

Пример выполнения задания

Построить массив размерности n×n вида и вывести его на экран.

Заметим, что в элементы массива a(i, j) и a(ni + 1, j) (i = [1, (n + 1) \ 2; j = [i, n – i + 1]) необходимо записать число i. В остальные позиции необходимо записать нули.

Пример реализации программы

Private Sub Form_Load()

Const n = 7 'количество строк и столбцов в массиве

Dim a(1 To n, 1 To n) As Double

Dim i As Integer, j As Integer 'Счетчик цикла

For i = 1 To (n + 1) \ 2 'Организация цикла по строкам:

' c 1-ой по среднюю включительно

For j = 1 To n ' Цикл по столбцам

If (j >= i) And (j <= n – i + 1) Then

a(i, j) = i: a(n – i + 1, j) = i

Else

a(i, j) = 0: a(n – i + 1, j) = 0

End If

Next j

Next i

For i = 1 To n ′Вывод массива на форму с помощью оператора Print

Print ′Для перевода курсора на следующую строку

For j = 1 To n

Print a(i, j); ′точка с запятой предназначена для избежания перевода

′курсора на следующую строку после вывода элемента a(i, j)

Next j

Next i

End Sub