КАТЕГОРИИ: Архитектура-(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-й метеостанции за 4-й день и на 3-й метеостанции за 1-й день. 2) Распечатать показания термометров всех метеостанций за 2-й день 3) Определить среднюю температуру на третьей метеостанции 4) Распечатать всю таблицу 5) Распечатать, в какие дни и на каких метеостанциях температура была в диапазоне 24-26 градусов тепла Для этого обозначим показания термометров индексированной переменной с двумя индексами по следующей схеме:
Обратите внимание, что первый индекс в скобках обозначает номер строки (метеостанции), второй - номер столбца (дня) прямоугольной таблицы. Такую таблицу математики называют матрицей. В памяти отводим массив из 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; Просмотров: 776; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |