Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

2.1.4. Объявление локальных статических переменных ‑ Static

Команда имеет вид:

Static <переменная> [(<индексы>) [ As <тип>]]

[,<переменная> [(<индексы>) [ As <тип>]]...

Команда аналогична команде Dim (пп. 2.1.1-2.1.3), но переменные сох­ра­­ня­ют свои значения после выхода из программы, а Dim ‑ переменные заполняются пустыми значениями при повторном входе в программу.

2.1.5. Объявление именованных констант ‑ Const

Команда имеет вид:

[Public|Private] Const <имя константы-1> [As <тип>] = <выражение-1>

[,<имя константы-2> [As <тип>] = <выражение-2>] ...

Команда задает значение именованных констант, используемых вмес­то численных или символьных значений (Const koefnds=0.2).

В отличие от переменных кон­стан­­­ты нельзя изменить во время выпол­не­ния программы. В секции (General)(Declaration) модуля можно объявить глобальную константу, если указатьPublic.

2.1.6. Встроенные именованные константы

Язык Basic имеет ряд встроенных констант (для определения цвета, кода клавиш, типа данных, параметров и др.), которые можно использовать в программе. Чтобы узнать значение нужной константы в VB, щел­кните по кнопке Object Browserи воспользуйтесь окном просмотра объектовObject Browser (F2). Использование встроенных констант повышает наглядность текста программы и уменьша­ет число ошибок в программе.

2.1.7. Перечисленияenum(vb)

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

Объявление производится на уровне модуля и имеет вид:

Enum <имя перечисляемого типа>

<имя 1> [=<значение 1>]

...

<имя N>[=<значение N>]

End Enum

По умолчанию значение первого элемента равно нулю, а значение сле­дую­щего элемента списка на единицу больше.

Пример задания имен сезонам года.

(General)(Declarations) ‘раздел глобальных объявлений формы

EnumSezon‘ объявление перечисляемого типа под именемSezon

Zima= 1 ‘ целому числу 1 присваивается имяZima(зимний сезон)

Vesna= 2 ‘ целому числу 2 присваивается имяVesna(весенний сезон)

Leto= 3 ‘ целому числу 3 присваивается имяLeto(летний сезон)

Osen= 4 ‘ целому числу 4 присваивается имяOsen(осенний сезон)

EndEnum‘ конец объявления типа

PublicSezonOtpuskAsSezon‘объявление глобальной переменой типаSezon

Private Sub Command1_Click()

SezonOtpuska = Leto ‘ присвоение числа 3 переменной SezonOtpuska

If SezonOtpuska = Leto Then Print “Ура! Отпуск летом!“

‘ можно и так: IfSezonOtpuska= 3ThenPrint“Ура! Отпуск летом!“

End Sub

2.1.8. Коллекции данныхCollection(vb)

Коллекция представляет собой специальный динамический массив, оформленный в виде класса Collection, который содержит все нужные свойства и методы для работы с коллекцией. Элементами коллекции могут быть данные различных типов и объекты различных классов. Обычно встроенные коллекцииVisualBasicимеют имена существительные во мно­жест­венном числе.

Объявления коллекциимогут быть трех видов:

Dim <имя> As New Collection ‘ объявление с выделением памяти

Dim <имя> As Collection ‘ объявление без выделения памяти

Set <имя> New Collection ‘ выделение памяти для новой коллекции

Удаление коллекцииреализуется в виде:Set <имя>=Nothing.

Доступ к элементам коллекцииосуществляется методомItem(номер или имя элемента в кавычках) или цикломFor Each(п. 2.4.6).

Удаление элемента из коллекцииреализуется методомRemoveно­мер (нумерация с единицы) или имя элемента (Sotrudniki.Remove1).

Внимание!Для удаления нельзя использовать циклForEach.

Для удаления всех или группы элементов коллекции следует ис­поль­зовать цикл Forв обратной последовательности (Step-1).

Число элементов в коллекции опрeделяется его свойствомCount.Пополнение коллекциивыполняется методомAdd:

<имя коллекции>.Add <элемент> [,<ключевое имя>,[<перед> | <после>]]

<элемент> ‑ добавляемое значение (литерал, переменная, выражение, на­име­нование объекта);

<ключевое имя> ‑ имя элемента для возможности ссылки на него;

<перед>/<после> ‑ элемент размещается перед/после указанного элемента, номер или имя которого задано параметром <перед>/<после>. По умол­ча­нию новый элемент помещается после последнего.

Примерформирования коллекции с фамилиями сотрудников

Private Sub Command1_Click() ‘ процедура формирования и вывода

Dim i, Sotrudniki As New Collection ‘ создание новой коллекции Sotrudniki

Sotrudniki.Add “Иванов“ ‘ добавить фамилию первого сотрудника

Sotrudniki.Add “Петров“, “начальник“ ‘ добавить фамилию начальника

Sotrudniki.Add “Сидоров“ ‘ добавить фамилию третьего сотрудника

For Each i In Sotrudniki: Print i: Next ‘ вывод списка фамилий

‘For i = 1 To Sotrudniki.Count: Print Sotrudniki.Item(i): Next ‘можно и так

Print “начальник отдела“,Sotrudniki.Item(“начальник“) ‘фамилия начальника

SetSotrudniki=Nothing‘удаление коллекции

End Sub