Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по VBasic.doc
Скачиваний:
10
Добавлен:
17.09.2019
Размер:
1.16 Mб
Скачать

Многомерный массив

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

Таблица данных – это последовательность списков одинаковой длины, которые называются строками таблицы; элемент строки называется ячейкой таблицы; элементы всех строк с одинаковым номером образуют столбец таблицы.

Для хранения таблицы данных используется двумерный массив.

Набор таблиц данных – это последовательность таблиц данных с одинаковым числом строк и столбцов. В этом случае используется трехмерный массив (чисто теоретически и большая размерность).

Массивы могут быть локальными и глобальными, аналогично переменным, и разного типа. Примеры объявления многомерных массивов:

Dim FFF(1 to 10, -10 to 19) As String*10 - 2-х мерный массив строк длиной 10 символов. Всего элементов в массиве <=300.

Option Base 1

Dim VVV(20,5,10) As Integer – 3-х мерный массив целых чисел (всего 1000 элементов)

Удобнее использовать при объявлении массива только верхнюю границу, но тогда нумерация начинается с 0. Если хотим, чтобы она начиналась с 1, то в начале программы надо написать команду Option Base 1.

Для обработки двумерных массивов чаще всего применяют вложенные циклы.

Например, создание двумерного массива (8 строк, 10 столбцов):

For I = 1 to 8

For J = 1 to 10

A( I, J ) = Int( RND*1000)

Next J

Next I

Сначала заполняется 1 строка (I=1) – 10 элементам присваивается случайное число в интервале от 0 до 1000 ( выполняется внутренний цикл). Потом по очереди заполняются все 8 строк.

Задание 1. На форме 3 кнопки. По одной создается двумерный массив (5х4), по другой он печатается (по строчкам), при нажатии на третьей подсчитывается и печатается сумма всех элементов.

Задание 2. Заполните с помощью окна ввода два массива: один одномерный – фамилии учеников, один двумерный - оценки учащихся по 3 предметам. Еще один массив (названия предметов) заполните в программе. Подсчитайте количество двоечников и выведите их фамилии и названия предметов, по которым получили двойки.

Массив объектов

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

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

cmd_Ris(1), cmd_Ris(2), cmd_Ris(3), cmd_Ris(4)

Для массивов объектов можно написать одну процедуру обработки события с обязательным входным параметром Index, получается существенная минимизация программы.

Private Sub cmd_Ris_Click(Index As Integer)

сmd_Ris( Index ).BackColor = vbRed

End Sub

При нажатии на каждую кнопку cmd_Ris из массива объектов она станет красной. VB знает, на какую кнопку нажали (это передает входной параметр Index), и именно ей меняет цвет. Программа написана один раз, а действует на любое количество кнопок.

Очень часто массив кнопок связан с массивом других элементов управления.

Задание 3. В проекте две формы, одна сначала пустая, на второй несколько командных кнопок. По нажатию на кнопку, на первой форме появляется соответствующая картинка.

Работа всех кнопок абсолютна одинакова: сделать предыдущую картинку невидимой, а свою картинку – видимой. Программа проста, но если кнопок много, для каждой надо создать событие-процедуру, состоящую из 6-10 операторов (зависит от количества кнопок). Для проекта с 4 кнопками это будет 34 строчки. Если мы объединим кнопки и картинки в массивы объектов, весь программный код будет состоять из 4 операторов, причем для любого количества кнопок и картинок.

Private Sub cmd_Click(Index As Integer)

Static nom As Integer

Form1.OLE(nom).Visible = False

Form1.OLE(Index).Visible = True

nom = Index

End Sub

Примените для картинок элемент управления – контейнер OLE.

В VB имеется возможность использовать элементы из стандартных приложений Windows. Это значительно облегчает создание и использование пользовательских программ. Элементы приложений Windows могут быть связаны или внедрены в программу. При внедрении объекта он содержится в пользовательском приложении и не может быть изменен с помощью других приложений. Связанный объект существует независимо от пользовательского приложения, содержится в специальном файле, может быть изменен. Для объекта OLE надо установить свойство SizeMode равным Stretch или AutoSize.

Для выбора альтернативы в среде VB есть очень удобный инструмент – Option Buttonкнопка-переключатель. Иногда их называют радиокнопками. Эти кнопки надо обязательно объединять в группу. Для объединения их лучше всего поместить на объект, который называется рамкой – Frame. Если кнопки объединены в группу, то нажата может быть только одна из них, при нажатии на одну другие становятся автоматически не нажатыми. Свойство Value у нажатой кнопки равно True. Кнопки-переключатели могут иметь вид кружочка с текстом или вид обычной кнопки. Это определяет свойство Style. При графическом стиле можно на кнопку поместить картинку. Свойство Caption определяет надпись у (или на) кнопки.

Рамка – Frame по-другому называют еще объект-контейнер, так как она является хранилищем объектов, находящихся на ней. Объекты вместе с рамкой перемещаются, уничтожаются. Свойство Visible делает видимым или невидимым рамку вместе с находящимися на ней объектами.

А свойство BorderStyle = 0 делает невидимым только рамку.

Задание 4. На форме – 6 кнопок – переключателей (массив объектов) и один объект Shape. При выборе кнопки меняется фигура. Свойство Shape становится = Index. Программа состоит всего из одной процедуры-события, и в ней один оператор.

Домашнее задание.

  1. Создайте двумерный массив и определите его максимальный элемент. Вывести на форму значение максимального элемента и его индексы (номер строки и номер столбца).

  2. На форме 9 кнопок переключателей для каждой цифры и 10 меток. При выборе одного переключателя появляется таблица умножения для выбранной цифры. Переключатели и метки объединить в массивы объектов. Правильно созданный проект будет содержать 3 строки программного кода.

Контрольные вопросы:

  1. Что такое двумерный массив и как его описать?

  2. Что такое массив объектов, как его создать, как можно применить?

  3. Какой объем памяти компьютер выделит для массива 10х10 чисел, тип короткие целые?

  4. Основные свойства объекта Option Button.

УРОК 21

Цель урока. Научить студентов создавать собственные процедуры и функции, задавать необходимые параметры, правильно вызывать процедуры и функции. Ознакомить студентов с понятием программного модуля, научить добавлять его к проекту, сохранять.