- •Е. А. Сидорова, п. С. Челобанов основы программирования на vba омск 2011
- •1. Понятие и свойства алгоритма
- •1.1. Понятие алгоритма
- •1.2. Свойства и виды алгоритмов
- •1.3. Способы представления алгоритмов
- •2. Язык программирования vba
- •2.1. Языки программирования
- •2.2. Общие сведения о vba
- •2.3. Основные понятия языка программирования
- •2.4. Алфавит vba
- •2.5. Типы данных
- •2.6. Формы записи вещественных чисел в программе
- •2.7. Переменные
- •2.8. Константы
- •2.9. Встроенные функции
- •2.10. Выражения
- •2.11. Редактор Visual Basic
- •2.12. Правила записи и ввода программ на vba
- •2.13. Создание первой программы
- •3. Управление вводом и выводом данных
- •3.1. Оператор присваивания
- •3.2. Операторы ввода данных
- •3.3. Генерирование случайных чисел
- •3.4. Операторы вывода данных
- •4. Линейные вычислительные процессы
- •5. Разветвляющиеся вычислительные процессы
- •5.1. Алгоритм разветвляющегося процесса
- •5.2. Оператор условного перехода If
- •5.2.1. Однострочный (линейный) оператор If
- •If Условие Then Операторы_1 [ Else Операторы_2 ],
- •5.2.2. Блочная форма оператора If
- •5.3. Объединение условий с помощью логических операций
- •5.4. Оператор безусловного перехода GoTo
- •5.5. Оператор выбора Select Case
- •6. Символьные переменные
- •6.1. Общие понятия
- •6.2. Сравнение строк
- •6.3. Строковые функции
- •6.4. Оператор Mid
- •7. Введение в объектно-ориентированное программирование
- •7.1. Основные понятия
- •7.2. Создание пользовательского интерфейса
- •7.3. Установка свойств объектов и определение методов
- •7.4. Составление программного кода
- •7.5. Создание пользовательского приложения с использованием формы
- •7.5.1. Создание формы
- •7.5.2. Разработка программного кода
- •8. Циклические вычислительные процессы
- •8.1. Понятие цикла
- •8.2. Арифметический цикл
- •8.2.1. Цикл с разветвлением
- •8.2.2. Цикл со счетчиком. Вычисление максимума и минимума
- •8.2.3. Вложенные циклы
- •8.3. Вычисление сумм и произведений
- •8.4. Итерационные циклы
- •8.4.1. Операторы цикла Do … Loop
- •9. Модульное программирование.
- •9.1. Понятие процедуры
- •9.2. Параметры процедур – формальные и фактические
- •9.3. Разработка процедур-функций
- •9.4. Разработка процедур-подпрограмм
- •9.5. Срочный выход из процедур и циклов
- •10. Переменные с индексами. Одномерные массивы
- •10.1. Понятие массива
- •10.2. Ввод массива
- •10.2.1. Считывание массива с листа Excel
- •10.2.2. Заполнение массива случайными числами
- •10.3. Вывод массива
- •10.4. Решение задач с использованием массивов
- •644046, Г. Омск, пр. Маркса, 35
5.3. Объединение условий с помощью логических операций
Пример
У3: Вычислить:
Если
этот пример записать в виде
то он ничем не будет отличаться от рассмотренного выше примера У2 (разветвление на три ветви). ГСА решения задачи приведена на рис. 11.
П
рограмма
имеет вид:
Sub Пример_У3_ Сложное_
ветвление()
Dim x As Single, y As Single
'Ввод x:
x = Val(InputBox("Введите x"))
If x < 1 Then
y = Cos(x) 'Ветвь 1
ElseIf x <= 2 Then
y = Sin(x) 'Ветвь 2
Else
y = Cos(x) 'Ветвь 3
End If
MsgBox "При x =" & x & " y =" & y
End Sub
В операторе If можно объединять результаты простых отношений в более сложные логические формулы с помощью операций And (и), Or (или). При изображении ГСА каждое условие следует записывать в отдельном блоке.
Для рассматриваемой задачи проверку сложносоставных условий можно записать так:
If x >= 1 And x <= 2 Then
y = sin(x)
Else
y = cos(x)
End If
или (c применением линейной формы оператора If):
If x < 1 Or x > 2 Then y = cos(x) Else y = sin(x)
Использование подобной записи позволяет сократить число строк программного кода, но иногда может привести к ухудшению восприятия программы, например:
Sub Пример_У3_Сложное_ветвление1()
Dim x As Single, y As Single
x = Val(InputBox("Введите x ")) 'Ввод x
If x >= 1 And x <= 2 Then y = sin(x) Else y = cos(x)
MsgBox "При x = " & x & " y = " & y
End Sub
Объединять с помощью логических операций можно только условия в операторе If, но не другие операторы, например:
If a < 3 Or f > 2 Then z = 5 : s = 0 – правильная запись;
If a < 3 Or f > 2 Then z = 5 And s = 0 – неправильная запись.
5.4. Оператор безусловного перехода GoTo
Данный оператор используется для передачи управления в определенное место программы без проверки каких-либо условий и имеет следующий формат:
GoTo Метка
Метка обозначает место в программе, куда осуществляется переход. Имя метки выбирается по обычным правилам для имен переменных и оканчивается двоеточием. Метка может находиться как до, так и после оператора GoTo. Например:
GoTo
m1
'Переход на строку с меткой m1
…….
m1: y = cos(x)
В ГСА оператор GoTo отображается просто линией потока.
В следующем примере рассмотрено использование в одной программе операторов условного (If) и безусловного (GoTo) перехода.
Пример У4. Составить программу запроса и проверки пароля. Если введенный пароль не совпадает с заданным (например, «ку-ку»), то повторить его ввод.
Г
СА
решения данной задачи приведена на
рис. 12, а текст программы имеет вид:
Sub Пример_У4_Пароль()
Dim parol As String 'Объявление
'строковой переменной parol
'Ввод значения переменной parol:
vp: parol = InputBox("Введите пароль")
If parol < > "ку-ку" Then
MsgBox "Пароль введен
неверно, повторите"
GoTo vp
End If
MsgBox "Пароль введен верно!"
End Sub
Несмотря на то, что оператор GoTo иногда очень удобен, использовать его не рекомендуется, так как программа становится плохо читаемой. Обычно вместо GoTo используют циклическую конструкцию Do While … Loop, которая будет рассмотрена позднее.
