Массивы

Циклы

Функция. Процедура.

Некоторые свойства кнопок.

Appearance Трёхмерный эффект
BackColor Цвет фона
Cancel Кнопка реагирует на нажатие «Esc»
Caption Надпись
Default Кнопка реагирует на нажатие «Enter»
Draglcon Пиктограмма при перемещении
DragMode Ручной или автоматический режим перетаскивания
Enabled Доступность элементов
Font Вид шрифта
Height Высота шрифта
HelpContextId Привязка к собственному справочному файлу
Index Индекс элемента управления в массиве
Left Левый верхний угол
MouseIcon Изображение указателя мыши на кнопке
MousePointer Форма указателя мыши на кнопке
Name Имя элемента управления
TabIndex Порядок перемещения фокуса при нажатии Tab
TabStop Возможность перехода элемента управления с помощью кнопки «Tab»
Tag Содержит любую необходимую дополнительную информацию
Top Левый верхний угол, координата «Y»
True/False Разрешить/Запретить
Visible Видимость (True/False)
WhatThisHelpID Привязка к собственному справочному файлу
Width Ширина объекта

Процедура – это подпрограмма, она начинается с оператора Sub и заканчивается End Sub, между которыми помещается текст процедуры. Такие процедуры могут вызываться самим VB или другими процедурами.

Private Sub Command1_Click()

Тело процедуры

End Sub

Вызов процедуры. Для вызова процедуры используется оператор Call: Call имя_процедуры.

Функция.

Функция построена точно также, как процедура, однако есть отличие: как и в математике, результатом функции является возвращаемое ею значение. Примером функции являются программа поиска минимального значения массива:

Function minlarr() As Integer, num As Integer, left As Integer, As Variant

Dim mh As Variant

Mh = Arr(left): num = left

For i = left + 1 To right

If Arr(i)<mh Then mh=Arr(i): num = 1

Next

min = mh

End Function

(ищет минимальное значение массива)

For…To…Next. For счётчик=начальное_значение To конечное_значение [Step(шаг)].

Пример программы:

For i=1 To 100

Print i*100

Next i ‘закрытие цикла

For L=100 To 5 Step -0.5

x=y*L

Next

For i=1 To 5

For j=10 To 20

Print i+j

Next j,i

Оператор цикла For Each…Next

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

Синтаксис оператора:

For Each Имя объекта In Имя коллекции

Операции над объектом

Next Имя объекта

Пример

( изменяется свойство BackColor у всех этикеток «Label», лежащих на форме)

Dim x As Object

For Each x In Form.Controls

IF TypeName (x)= «Label» Then

X BackColor=0

End IF

Next x

Оператор цикла Do While…Loop / Do…Loop While

Эти 2 разновидности цикла тесно взаимосвязаны. Их часто рассматривают как один из базовых видов цикла. Циклы For…Next применяют в тех случаях, когда количество проходов и диапазон изменения счетчика заранее известны. Циклы While предназначены для ситуаций, когда количество проходов цикла заранее не известно, но зато известно условие выхода из цикла.

Синтаксис цикла While:

Do While Условие выхода

Группа операторов Цикл с предусловием

Loop

Do

Группа операторов Цикл с постусловием

Loop While Условие выхода

Отличие между ними в том, что условие выхода проверяется в одном случае перед очередным проходом (с предусловием), а в другом случае – после выхода (с постусловием).

Если в цикле опустить условие выхода или это условие выполняется всегда, то получится бесконечный цикл(выход из такого цикла – Ctrl+Break)

Пример

Do While 2>1

Print «Вечный цикл:-Р»

Loop

Оператор цикла Do Until…Loop/ Do… Loop Until

По своей цикл Until подобен циклу While лишь с той разницей, что проходы цикла выполняются до тех пор, пока условие выхода не выполнится.

Пример

Dim N As Integer

N=100

Do

N=N-1

Print N

Loop Until N<11

Выход из цикла Exit For / Exit Do

C помощью оператора Exit… можно осуществить досрочный выход из цикла вне зависимости от значения, которое имеет в данный момент условие выхода.

Пример

Dim N As Integer

N=10

Do While N>1

N=N-1

Dobug.Print N

IF N=5 Then Exit Do

Loop

Условный оператор IF…End IF

Синтаксис:

If логическое выражение Then оператор

End If

If a=5 Then c=7:b=20

End If

Условный оператор IF,,,Else,,,Else IF… End IF

IF логическое выражение1 Then

Группа операторов

Else IF логическое выражение2 Then

Else

Группа операторов

End IF.

Пояснение – если не выполнилось выражение 1, начинает проверять на 2.

IF a=b or c<>d Then

B=d

a=20

Else

C=d

End IF

Условный оператор Select Case…End Select

Конструкция Select Case «принимает решения» на основе анализа значения одного выражения, при этом это выражение указывается в строке Select Case.

Select Case анализируемое выражение

Case значение1

Группа операторов

Case значение2

Группа операторов

Case значениеN

Группа операторов

Case Else

Группа операторов

End Select.

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

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

Количество элементов массива может быть бесконечным. Ограничения накладываются конкретным языком программирования и операционной системой.

Элементы массива обладают непрерывной номерацией определенного диапазона.

Различают статистические и динамические массивы. Границы статистического массива устанавливаются на этапе разработки и не могут изменяться в течении выполнения программы. Динамические массивы могут изменять свои размеры в ходе выполнения программы.

Статистические массивы.

Для объявления массива используется оператор Dim:

Dim имя_массива (начальное_значение To конечное_значение) (Dim A (15 To 30))

Dim имя_массива (размерность) (Dim A (50))

Указание верхней и нижней границ можно задать любым диапазоном индекса. По умолчанию (если задана только размерность) начальный индекс равен нулю. Option Base позволяет задать индексацию массива с единицы (Option Base 1). Этот оператор должен находиться в секции General Declaration. Допустимое значение Option Base только «0» или «1».

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

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

При объявлении многомерного массива можно задавать только верхние границы размерности, которые разделяются запятыми.

Dim a (2 To 5, 1 To 5, 1 To 5, 1)

Dim b (1, 2, 3, 4, 5, 6, 7)

Динамический массив.

Если при решении задач количество входных данных заранее неизвестно, то в этом случае можно объявить динамический массив, что позволяет изменять его размер или размерность во время выполнения приложения. Динамический массив создаются в два этапа.

1) Сначала массив определяется в секции General Declaration (формы, модуля, класса) без указания размера:

Dim arrays () As Integer.

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

Private Sub Command1_Click()

ReDim arrays (50, 100)

End Sub

В отличие от Dim, оператор ReDim используется только в процедурах. При этом указывать тип данных необязательно, особенно, если он определён оператором Dim. Для того, чтобы не потерять содержимое массива при изменении его размерности, нужно использовать ReDim совместно с оператором Preserve. Использование совместно с ReDim Preserve позволяет сохранять содержимое массива при изменении его размерности или размера.

22. Окно InputBox

Окно InputBox состоит из:

1) Строка заголовка;

2) Приглашение к вводу;

3) Поле ввода со значением, предлагаемое по умолчанию;

4) Две кнопки: OK/Cancel.

InputBox (promt!, [title], [,default] [,xpos] [,ypos] [,help, context])

promt определяет текст, отображающийся в диалоговом окне как приглашение;

title отвечает за надпись заголовка, если этот параметр не указан, то отображается название приложения;

default определяет значение по умолчанию, отображаемое в строке ввода;

xpos и ypos указывают координаты верхнего левого угла окна, по умолчанию окно отображается в середине экрана.

A = InputBox («Подсказка», «Заголовок», Значение_default).

23. Окно MsgBox

Окно MsgBox:

MsgBox Promt [,Buttons], [Title] [,Helpfile, Context].

MsgBox «Здравствуй, мир», VbExclamation, «Приветствие».

Ответ = MsgBox («Закончить?», VbCritical, «End»).

TabIndex – передача фокуса после загрузки формы:

Private Sub Form_Load()

Command1.TabIndex=0

Command2.TabIndex=1

Command3.TabIndex=3

End Sub


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: