Лабораторная работа. Основы работы в VBA. Алгоритмическая структура - ветвление
1. Оператор разветвляющейся структуры If … Then. Линейный синтаксис оператора If … Then
Цель работы
Данная лабораторная работа предназначена для изучения среды Visual BASIC for application (VBA), приобретения практических навыков разработки простейших разветвляющихся программ, овладения практическими навыками разработки и программирования разветвляющихся алгоритмов, приобретения навыков по отладке программ.
Базовая структура разветвление (называемая также ЕСЛИ-ТО-ИНАЧЕ) обеспечивает в зависимости от результата проверки условия (истина или ложь) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу (продолжению алгоритма). Работа алгоритма продолжается независимо от того, какой путь будет выбран. Возможные пути выполнения алгоритма помечаются на схемах алгоритмов соответствующими метками: "да"/"нет" (или "1"/"0"). Алгоритм, в состав которого входит базовая структура разветвление, называется разветвляющимся алгоритмом, а реализуемый им вычислительный процесс – разветвляющимся вычислительным процессом.
If … Then … Else – управляющий оператор, осуществляющий условное ветвление операций, основанное на оценке логического выражения.
Выражение может быть истинным или ложным. Оператор имеет две формы
записи –линейную и блочную.
При линейном синтаксисе весь оператор записывается в одну строчку (перенос на новую строку не допускается).
If логическое _ выражение Then операторы 1 [Else операторы 2]
– логическое _ выражение – выражение, возвращающее не нулевое значение (истина) или ноль (ложь) (если логическое выражение состоит из нескольких составных частей, то они соединяются друг с другом посредством логических функций);
– операторы 1 – операторы, выполняющиеся при значении логического выражения "истина" (если операторов несколько штук, то один от другого отделяется двоеточием);
– операторы 2 – операторы, выполняющиеся при значении логического выражения "ложь" (если операторов несколько штук, то один от другого отделяется двоеточием). Выражение, стоящее в квадратных скобках является не обязательным параметром. Таким образом, можно выделить два вида записи линейной формы – краткую и полную.
Краткая форма записи (Если … То …. ) не содержит часть Else операторы 2.
If логическое_выражение Then оператор1
– логическое _ выражение – любое логическое выражение, допустимое в Бейсике;
– оператор1 – любой оператор (или группа операторов в одну строку через разделитель – двоеточие) Бейсика, который исполняется при выполнении условия, заданного логическим_выражением. Действие оператора If поясняется блок-схемой, приведенной на рис. 1.
Рис. 1. Краткая форма оператора If … Then
Полная форма записи (Если … То …. Иначе) содержит часть Else операторы 2.
If логическое_выражение Then операторы 1 Else операторы 2
– операторы 2 выполняется только тогда, когда логическое_выражение ложно. Действие оператора If поясняется блок-схемой, приведенной на рис. 2.
Рис. 2. Полная линейная форма оператора If…Then
Пример 1. Определение количества знаков в числе от 0 до 1000
Sub lineynaya_forma_If()
Dim x As Single
Dim y As Integer
m1: x = InputBox("Введите целое положительное число в интервале от 0 до 1000", "Запрос задачи")
'повтор ввода, если ввели не отвечающее требованиям число
If x < 0 Or x > 1000 Or x <> Int(x) Then GoTo m1
If x < 10 Then y = 1
If x < 100 Then y = 2
If x < 1000 Then y = 3
If x = 1000 Then y = 4
MsgBox "Число " & x & " имеет " & y & " знака", , "Решение задачи"
End Sub