|
Двумерные массивыDate: 2015-10-07; view: 458. Поясним суть двумерных массивов на простом примере. Пусть на целом ряде метеостанций, расположенных в разных точках земного шара, в течение многих дней измеряли температуру воздуха. Показания термометров свели в таблицу. Ограничимся для экономии места тремя станциями и четырьмя днями.
Требуется (в порядке возрастания трудности): 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: Вычислить разницу между максимальной и минимальной температурой во всей таблице.
|