
Visual Basic for Applications for Applications (vba). Лабораторные работы. Часть 2 Введение
Процедуры в Visual Basic for Applications могут проверять некие условия и затем, в зависимости от результатов проверки, выполнять разные операции. Обычно условие является простым сравнением, но оно может быть любым выражением с вычисляемым значением. Visual Basic for Applications интерпретирует это значение как True (истина) или False (ложь).
Тема №1: «Условный оператор»
Для записи разветвляющихся алгоритмов используется оператор If.
Он имеет две формы записи.
1. Однострочная запись:
IfусловиеThen[оператор1] [Elseоператор2]
Если условие, верно, то выполняетсяоператор 1, в противном случае выполняетсяоператор 2.
В условиизаписывается логическое выражение, которое использует операции сравнения.
Оператор сравнения |
Значение |
Пример |
= (знак равенства) |
Равно |
A1=B1 |
> (знак больше) |
Больше |
A1>B1 |
< (знак меньше) |
Меньше |
A1<B1 |
>= (знак больше и знак равенства) |
Больше или равно |
A1>=B1 |
<= (знак меньше и знак равенства) |
Меньше или равно |
A1<=B1 |
<> (знак «не равно») |
Не равно |
A1<>B1 |
Пример:
If A<0 then A=10 else A=A-1
Для создания сложных условий используются логические операции and(и) иor(или).
If A>0 and A<2 then A=10 else A=A-1
2. Многострочная запись:
If <условие> Then
[оператор1] Else
[оператор2]
End If
Если при выполнении условия должно быть выполнено несколькооператоров, то применяется составной оператор:
If условие Then [оператор 1, оператор 2 и т.д.] [Elseоператор1, оператор2 и т.д.]end if
Пример:
If A<0 then
S=S+1
A=10
Else
S=12
A=A+10
End if
Если при выполнении условия 1 должен быть выполненоператор 1, а в противном случае при выполненииусловии 2 должен быть выполненоператор 2 и т.д., то применяется вложенный условный оператор:
Ifусловие-1Then[ оператор1]
[ElseIfусловие-2 Then[оператор2] ...
[Else[оператор3]]
End If
End If
Пример 1.
Составьте процедуру для решения следующей задачи: Даны действительные числа х и у. Присвоить переменной z значение х - у, если х > у; в противном случае присвоить z значение у-х+ 1.
Для этого:
а) добавьте к проекту форму;
б) разместите на форме 3 элемента "Надпись" (Label3 – для вывода результата), 2 элемента "Поле" (TextBoxl - для ввода х, TextBox2 — для ввода у) и 2 элемента "Кнопка";
в) свойство BorderStyle (стиль рамки) элемента "Надпись" с именем Label3 установите в значение 1;
г) измените значения других свойств объектов так, чтобы форма имела следующий вид:
В окне редактирования модуля наберите для события Click первого элемента "Кнопка" код процедуры:
Private Sub CommandButton1_Click()
Dim x As Single, у As Single, z As Single
х = Val(TextBox1.Text)
у = Val(TextBox2.Text)
If х > у Then z = х - у Else z = у - х + 1
Label3.Caption = "Результат z= " & z
End Sub
Изучите код процедуры
Функция Val преобразует вводимое значение из текстового формата в числовой. Свойство Text элемента "Поле" является свойством по умолчанию, т.е. при обращении к этому свойству можно не указывать его после точки. Таким образом, записи х = Val(TextBox1.Text) и х = Val(TextBox1) равноправны
Напишите для события Click второго элемента "Кнопка" код процедуры выхода из программы.
Выполните запуск приложения. Проверьте полученный результат.
Добавьте на форму еще 1 элемент "Надпись" и 1 элемент "Поле".
Составьте процедуру для решения следующей задачи: Даны действительные числа а, b, с. Подсчитать количество и сумму нечетных чисел среди трех чисел а, b, с. Для подсчета количества и суммы используйте следующий алгоритм:
k=0
sum=0
If a mod 2 <> 0 Then k=k+1: sum=sum+a
If b mod 2 <> 0 Then k=k+1: sum=sum+b
…