Лекция 9 Двумерные массивы

Лекция 9

Двумерные массивы

Рассматривая одномерный массив, его можно сравнивать с вектором, т.е. таблицей, состоящей из одной строки:

Dim A(1 To 5) As integer

A:

8

3

9

7

2

ДВУМЕРНЫЙ массив имеет сходство с таблицей, состоящей из нескольких строк и столбцов:

Dim A(1 To 3, 1 To 5) As integer

8

3

9

7

2

A:

5

4

-8

1

0

-7

2

4

8

-1

Как видно из примера, при описании двумерного массива указывают два диапазона индексов: первый диапазон – это индексы строк, второй диапазон- индексы столбцов.

DimМассив(1 ToКоличество строк, 1 ToКоличество столбцов) AsТип

Для адресации к ячейке двумерного массива используют два индекса: один — для указания номера строки, другой — для указания номера столбца, на пересечении которых находится нужный элемент: А(i,j).

Ввод данных в двумерный массив

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

Наружный цикл перебирает индексы строк, внутренний — индексы столбцов:

Dim A(1 To 3, 1 To 4) As Single, i, j As Byte

FOR i=1 TO 3

FOR j=1 TO 4

A(i, j)=VAL(InputBox(«A( )=», "", ""))

Nextj

Nexti

Наглядный ввод данных в массив

Для наглядности ввода данных в двумерный массив, желательно представленный выше алгоритм заполнения массива изменить:

FOR i=1 TO 3

FOR j=1 TO 4

A(i, j)=VAL(InputBox(«A(»+STR(i)+","+STR(j)+" )=", "", ""))

Nextj

Nexti

В этом случае, в диалоговом окне InputBox при вводе каждого нового значения в массив, будет точно указываться адрес ячейки массива, в которую записывается новое значение:

Вывод данных из двумерного массива

Вывод данных из двумерного массива на экран выводится также с использованием сдвоенного цикла:

Dim A(1 To 3, 1 To 4) As Single, i, j As Byte, S As String

FOR i=1 TO 3

FOR j=1 TO 4

A(i, j)=VAL(InputBox(«A(»+STR(i)+","+STR(j)+" )=", "", ""))

Nextj

Nexti

' Заполнили массив числами, теперь выведем их на экран

S = «МАССИВ:»

For i = 1 To 3

S = S + vbCrLf

For j = 1 To 4

S = S + " " + Str(A(i, j))

Next j

Nexti

MsgBoxS

В результате получаем на экране:

Задача: заполнить числами двумерный массив 3х4. Найти сумму положительных чисел.

OptionExplicit

Sub Primer1( )

Dim A(1 To 3, 1 To 4) As Single,

Dim i, j As Byte, Sum As Single

FOR i=1 TO 3

FOR j=1 TO 4

A(i, j)=VAL(InputBox(«A(»+STR(i)+","+STR(j)+" )=", "", ""))

Next j

Next i

Sum=0

FOR i=1 TO 3

FOR j=1 TO 4

If A(I, j)>0 Then Sum=Sum+A(i, j)

Next j

Next i

MsgBox «Sum=» +STR(Sum)

EndSub

Задача: Заполнить числами двумерный массив 3х4. Подсчитать количество нулевых значений.

OptionExplicit

Sub Primer2( )

Dim A(1 To 3, 1 To 4) As Single, i, j, N As Byte

FOR i=1 TO 3

FOR j=1 TO 4

A(i, j)=VAL(InputBox(«A(»+STR(i)+","+STR(j)+" )=", "", ""))

Next j

Next i

N=0

FOR i=1 TO 3

FOR j=1 TO 4

If A(I, j)=0 Then N=N+1

Next j

Next i

MsgBox «N=» +STR(N)

EndSub

Задача: Заполнить числами двумерный массив 3х4. Отрицательные числа заменить на нули. Вывести массив на экран.

Option Explicit

Sub Primer3( )

Dim A(1 To 3, 1 To 4) As Single, i, j As Byte, S As String

FOR i=1 TO 3

FOR j=1 TO 4

A(i, j)=VAL(InputBox(«A(»+STR(i)+","+STR(j)+" )=", "", ""))

Next j

Next i

FOR i=1 TO 3

FOR j=1 TO 4

If A(i, j)<0 Then A(i, j)=0

Next j

Next i

S = «МАССИВ:»

For i = 1 To 3

S = S + vbCrLf

For j = 1 To 4

S = S + " " + Str(A(i, j))

Next j

Next i

MsgBox S

EndSub

Задача: Заполнить числами двумерный массив 3х4. Переставить местами 1-ю и последнюю строки. Вывести массив на экран.

Option Explicit

Sub Primer4( )

Dim A(1 To 3, 1 To 4) As Single, B As Single, i, j As Byte, S As String

FOR i=1 TO 3

FOR j=1 TO 4

A(i, j)=VAL(InputBox(«A(»+STR(i)+","+STR(j)+" )=", "", ""))

Next j

Next i

FOR j=1 TO 4

B=A(1, j)

A(1, j)= A(3, j)

A(3, j)=B

Next j

S = «МАССИВ:»

For i = 1 To 3

S = S + vbCrLf

For j = 1 To 4

S = S + " " + Str(A(i, j))

Next j

Next i

MsgBox S

End Sub

266
RSS
Нет комментариев. Ваш будет первым!
Загрузка...
Этот сайт использует файлы cookies, чтобы облегчить вам пользование нашим веб-сайтом. Продолжая использовать этот веб-сайт, вы даете согласие на использование файлов cookies. Подробнее о том, как мы пользуемся файлами cookies и как ими управлять, вы можете узнать нажав на ссылку ниже.