Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция «visual Basic For Application» По Информатике (Петрова В. В.).ppt
Скачиваний:
29
Добавлен:
07.10.2014
Размер:
2.43 Mб
Скачать

3) Условие False в начале цикла.

Структура:

Do Until <условие> <блок операторов>

Exit Do

<блок операторов>

Loop

Цикл выполняется до тех пор, пока условие не станет истинным.

4) Условие False в конце цикла. Структура:

Do

<блок операторов>

Exit Do

<блок операторов>

Loop Until<условие>

Условие проверяется в конце цикла.

Цикл прекращается, когда условие станет истинным.

Пример:

Do While True

A=Rnd :Debug.Print a

If a>0.99 Then Exit Do Loop

Цикл While-Wend аналогичен циклу Do While-Loop, проверка условия выполняется в начале цикла. Структура:

While <условие> <блок операторов>

Wend.

M=M-M/100 Loop Until M<5 Print I, M
End Sub

Пример программы на использование цикла с условием. Расчёт количества расфасованных пакетов.

Private Sub Command_Click()

M=100: I=0

Print “Номер “, “Остаток “

Do

I=I+1

If I>99 then Exit Do ‘Оператор Exit Do служит для прерывания цикла, помещается внутри цикла и приводит передаче управления следующему за циклом оператору

Цикл For Each. Оператор относится к категории объектных операторов, т.е. применяется к массивам, наборам объектов, коллекциям. Выполняется фиксированное число раз, число объектов в наборе определяется автоматически.

Структура:

For Each <элемент> In <набор> <блок операторов>

Exit For

<блок операторов> Next <элемент> Пример:

For each z In arrx n=n+1

x(n)=z Next z

Формула линейной интерполяции

yn=y1+(y2-y1)*(xn-x1)/(x2-x1)

y2

 

 

yn

 

 

y1

 

 

x1

xn

x

 

 

2

Пример программы с оператором For Each.

Function intl (arrx; arry; x_new)

Dim i As Integer

Dim n As Integer

Dim j As Integer

Dim x (1 to 100) as Double

Dim y (1 to 100) as Double

Dim z

n=0

For each z in arrx n=n+1

x(n)=z Next z n=0

For each z in arry n=n+1

y(n)=z Next z

Пример программы с оператором For Each (продолжение).

For i=1 to n-1

If x(i) <= x_new And x(i+1)>= x_new Then j= i

Next i

If x_new > x(n) Then j = n – 1

If x_new < x(1) Then j = 1

Intl = y(j) + (y( j+1 ) – y( j ) ) * (x_new – x ( j )) / (x( j + 1) – x(j)) End Function

Цикл For Each…Next похож на цикл For …Next, но повторяет группу операторов для каждого элемента набора объектов (коллекции). Он особенно удобен, тогд когда заранее не известно, сколько элементов содержится наборе. Для наборов параметром этого цикла может бы только переменная типа Variant, Object или объекто перечисленным в Object Browser. Для массивов параметро этого цикла может быть только переменная типа Varia Нельзя использовать этот цикл с массивом, имеющи определённый пользователем тип.

Использование процедур в VB

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

Процедуры SUB (не возвращает значения);

Процедуры Function (возвращает значение);

Процедуры Property (могут возвращать и присваивать

значение, а также устанавливать ссылки на объекты). Процедура SUB – это блок кода, который выполняется в ответ на событие. Синтаксис процедуры:

[Private/Public ] [Static ] Sub <имя_процедуры>(аргументы) Операторы тела процедуры

End Sub

В VB следует понимать различие между двумя типами процедур SUB: общими процедурами и процедурами обработки событий.

Общая процедура указывает приложению, как выполнять конкретную задачу. Однажды определённая, она должна каждый раз специально вызываться приложением.

В противоположность ей процедура обработки события после вызова остаётся в ожидания событий, вызванных пользователем или инициированных системой. Так программа обработки события Click вызывает процедуру Sub с именем CommandButton1, которая выполняет свой код и возвращает управление процедуре обработки события Click. Как только объект в VB распознаёт, что произошло событие, он активизирует процедуру обработки события с именем, соответствующем данному событию. Так как имя процедуры устанавливает связь между объектом и кодом, то говорят, что процедуры обработки событий прикреплены к формам и элементам управления.

Процедуру Sub в отличие от Function нельзя вызывать по имени в выражении. Её вызов осуществляется в отдельном операторе. Процедура Sub не возвращает значения, однако она может изменять значения любых переменных, переданных ей в качестве параметров.

Существуют два способа вызова процедуры Sub. Например для процедуры Prog1 c параметрами а и b:

Call Prog1(a,b) или Prog1 a,b . Как видно из примера при использование оператора Call, параметры заключены в круглые скобки.

Соседние файлы в предмете Информатика