Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Какие бывают массивы




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

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

  1-й день 2-й день 3-й день 4-й день
Метеостанция 1 -8 -14 -19 -18
Метеостанция 2        
Метеостанция 3        

Требуется (в порядке возрастания трудности):

1) Распечатать температуру на 2-й метеостанции за 4-й день и на 3-й метеостанции за 1-й день.

2) Распечатать показания термометров всех метеостанций за 2-й день

3) Определить среднюю температуру на третьей метеостанции

4) Распечатать всю таблицу

5) Распечатать, в какие дни и на каких метеостанциях температура была в диапазоне 24-26 градусов тепла

Для этого обозначим показания термометров индексированной переменной с двумя индексами по следующей схеме:

t(1,1) t(1,2) t(1,3) t(1,4)
t(2,1) t(2,2) t(2,3) t(2,4)
t(3,1) t(3,2) t(3,3) t(3,4)

Обратите внимание, что первый индекс в скобках обозначает номер строки (метеостанции), второй - номер столбца (дня) прямоугольной таблицы. Такую таблицу математики называют матрицей.

В памяти отводим массив из 3*4=12 ячеек под значения типа Integer индексированной переменной t. Будем называть его двумерным массивом:

Dim t (1 To 3, 1 To 4) As Integer

Программа:

Dim t(1 To 3, 1 To 4) As Integer

Private Sub Command1_Click()

'Зададим значения элементов массива примитивным присваиванием:

t(1, 1) = -8: t(1, 2) = -14: t(1, 3) = -19: t(1, 4) = -18

t(2, 1) = 25: t(2, 2) = 28: t(2, 3) = 26: t(2, 4) = 20

t(3, 1) = 11: t(3, 2) = 18: t(3, 3) = 20: t(3, 4) = 25

 

'Выполняем 1 пункт задания:

Debug.Print t(2, 4), t(3, 1)

 

'А теперь распечатаем второй столбец массива (2 пункт задания):

For i = 1 To 3: Debug.Print t(i, 2): Next

 

'Определим среднее значение элементов третьей строки (3 пункт задания):

i = 3

s = 0

For j = 1 To 4: s = s + t(i, j): Next

Debug.Print s / 4

 

'Распечатаем всю таблицу (4 пункт задания):

For i = 1 To 3

For j = 1 To 4

Debug.Print t(i, j),

Next j

Debug.Print

Next i

 

'Распечатаем станции и дни с температурой 24-26 градусов (5 пункт задания):

For i = 1 To 3

For j = 1 To 4

If t(i, j) >= 24 And t(i, j) <= 26 Then Debug.Print "Станция"; i; "день"; j

Next j

Next i

End Sub

 

Задание 120: Вычислить разницу между максимальной и минимальной температурой во всей таблице.

Массивы бывают не только числовые, но и строковые и типа Date и прочие. Подходит любой известный нам тип. Например:

Dim s(1 To 50) As String

Это означает, что в каждой из 50 ячеек должно находиться не число, а произвольная строка. Вот элементарный пример использования строкового массива:

Dim s(1 To 50) As String

Private Sub Command1_Click()

s(21) = "Привет": Debug.Print s(21)

End Sub

Вот пример работы с массивами других типов:

Dim b(1 To 30, 1 To 6) As Boolean

Dim DT(1 To 10) As Date

Private Sub Command1_Click()

b(2, 3) = False: Debug.Print b(2, 3)

DT(2) = #1/15/2156 11:59:42 PM#: Debug.Print DT(2)

End Sub

Еще пример:

Private Enum типРуль

вверх

влево

вниз

вправо

End Enum

Dim Руль(1 To 300) As типРуль

Private Sub Command1_Click()

Руль(200) = вправо: Debug.Print Руль(200)

Руль(220) = влево: Debug.Print Руль(220)

End Sub

Здесь будут напечатаны числа 3 и 1, так как элементы перечислимого типа пронумерованы по порядку от 0.

 

Границы индексов в круглых скобках тоже могут быть разными, например:

Dim a(20 To 60) As Integer

Здесь под числа отводится 41 ячейка. Еще пример:

Dim b(0 To 9, -20 To 30) As Integer

Здесь под числа отводится 10*51=510 ячеек.

Раз вы объявили границы индексов, то должны их придерживаться. Так, неправильно было бы теперь написать a(15) = 0.

 

Если нижняя граница индекса вашего массива равна нулю, то вы можете сэкономить усилия и вместо

Dim f (0 To 9) As Integer

писать

Dim f (9) As Integer

так как Visual Basic по умолчанию считает нижней границей индекса всех массивов число 0. Если же вам хочется, чтобы эта льгота касалась массивов с нижней границей равной не 0, а 1, то наверху программы напишите




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 745; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.