Информатика: Сборник лабораторных работ по программированию в среде Visual Basic for Applications, страница 18

1).  Рассмотрим первоначально решение этой задачи для одного города, например, для Лондона.

Примечание: Исходные числовые данные  в таблице  записаны в блоке  ячеек  B3 : E9.

Блок-схемa 1:

Овал:   КОНЕЦ                          

Программа 1:

Sub pr1()

k = 0

For i = 3 To 9

If Cells(i, 2).Value > 0 Then                           ‘ Исходные числовые данные

k = k + 1                                               ‘ записаны в блоке  ячеек  B3 : E9

ElseIf Cells(i, 2).Value < 0 Then

Cells(i, 2).Interior.ColorIndex = 20  

End If

Next i

Cells(10, 2) = k

End Sub

Сложные циклы

Циклы, которые содержат внутри себя (в теле цикла) один или несколько других циклов, называются сложными или вложенными циклами.

При этом циклы, охватывающие другие циклы, называются внешними, а циклы, входящие во внешние, – внутренними циклами

На каждом шаге внешнего цикла внутренний цикл «прокручивается» полностью.

2).  Блоки ForNextмогутбыть вложены друг в друга.

Пример 2.

Рассмотрим вложенный цикл для решения  первого примера для всей таблицы 7.

Блок-схема 2:

В блок-схеме 2 представлен вложенный цикл.

Программа 2:

Sub pr2()

Dim i, j, k As Integer

For j = 2 To 5                                              ‘ Исходные числовые данные

k = 0                                                            ‘ записаны в блоке  ячеек  B3 : E9.

For  i = 3 To 9

If Cells(i, j).Value > 0 Then

k = k + 1

ElseIf Cells(i, j).Value < 0 Then

Cells(i, j).Interior.ColorIndex = 20  

End If

Next i

Cells(10, j) = k

Next j

End Sub

Пример 3.

В ячейках H1:H10 записаны числа.

Составить блок-схему и написать программу сортировки этого массива по возрастанию.

Блок-схема 3:

                     

Программа 3:

Sub pr3()

Dim i, j As Integer, d As Single

For i = 1 To 9

For j = 1 To 10 - i

If Cells(j, 8) > Cells(j + 1, 8) Then

d = Cells(j, 8) :   Cells(j, 8) = Cells(j + 1, 8)

Cells(j + 1, 8) = d

End If

Next j

Next i

End Sub

Массив – это упорядоченный набор однотипных значений – элементов массива. Массив имеет:

имя, которое записывается по тем же правилам, что и имена переменных;

размер – количество элементов в массиве;

базовый тип, который определяется типом элементов массива.

Имя массива задает имя каждому элементу массива: каждый элемент массива обозначается этим именем и индексом, который определяет номер (место) этого элемента в массиве.

Имя, размер и базовый тип массива задаются при описании массива.

Массивы могут быть одномерными и многомерными. Мы будем рассматривать только одномерные и двумерные массивы.

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

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

Значения индексов можно задать непосредственно числом (прямая адресация) или косвенно, указав в индексе идентификатор переменной, которая позволит вычислить индекс, (косвенная адресация).

Прямая адресация элементов массива: для одномерных массивов – a(1), a(2), a(3), a(4),…;

для двумерных массивов –  a(1,1), a(1,2), a(1,3),  a(2,1), a(2,2), a(2,3), …

Косвенная адресация элементов массива:

для одномерных массивов –  a(i), a(i+1), …;

для двумерных массивов – a(i,j), a(i+1, j),…

Описание массивов

При работе с массивами в программе они должны быть объявлены (описаны), т.е. указано имя массива, тип элементов массива, его размерность.

Оператор описания массива:

Dim <имя>(<размерность>) As <тип>

В качестве размерности указывается либо верхняя граница изменения индекса, либо конкретный диапазон изменения значений индексов: IнTOIк: