- •Инструментальная среда языка программирования vba
- •2.1 Разработка программ линейной структуры в среде vba
- •3) Выполните ввод числовых значений:
- •2.2 Разработка программ разветвленной структуры в среде vba
- •2.3 Разработка программ циклической структуры в среде vba
- •Введите в Окно редактирования кода Листа программу:
- •992, Г. Кемерово, пр. Кузнецкий, 39. Тел. 25-75-00.
2.1 Разработка программ линейной структуры в среде vba
Тексты программ в VBA хранятся в мáкросах. Макрос на языке VBA должен содержать хотя бы одну подпрограмму, которая называется Главной.
Подпрограмма начинается оператором заголовка, например:
Sub Задача( )
Далее следуют строки, состоящие из операторов. Они составляют тело программы. В одной строке может находиться один или несколько операторов. Один оператор от другого отделяется знаком двоеточия. Выполнение операторов линейной программы осуществляется последовательно.
Заканчивается подпрограмма оператором:
EndSub
Пример 1. Составить в виде блок-схемы и программы алгоритм вычисления объёма розничного товарооборота T = R*N с учётом того, что среднесписочное число работников составляет R=20 и средний оборот на одного работника N=80,50 руб.
Решение.
Блок-схема данного алгоритма имеет вид:
|
Рисунок 2 – Блок-схема алгоритма Примера 1 |
Введите в Окно редактирования кода Листа программу, в которой содержится:
описание переменных оператором Dim. Среднесписочное работников R имеет целочисленное значение (Integer), средний оборот на одного работника N имеет вещественное значение (Single), результат – объём розничного товарооборота, переменная Т так же имеет вещественное значение (Single);
ввод переменных в диалоговое окно InputBox;
вычисление при помощи оператора присваивания;
вывод результатов оператором Debug.Print.
Текст программы:
Sub Пример1( )
Dim R As Integer
Dim N, T As Single
R = InputBox("Введите число работников", "Окно ввода")
N = InputBox("Введите средний оборот", "Окно ввода")
T = R * N
Debug.Print "Объём товарооборота = " ; T
End Sub
2)
Запустите программу на счёт
кнопкой Run
Sub
;
3) Выполните ввод числовых значений:
в диалоговое окно с подсказкой – «Введите число работников»
наберите с клавиатуры – 20 (рисунок 3)
Рисунок 3 – Вид диалогового окна ввода InputBox
в диалоговое окно с подсказкой – «Введите средний оборот»
наберите с клавиатуры – 80,50
6) Программа выведет в окно Immediate результат вычислений (рисунок 4):
Рисунок 4 – Вывод результатов в окно Immediate
2.2 Разработка программ разветвленной структуры в среде vba
Разветвлённая алгоритмическая структура применяется в том случае, когда в зависимости от условия необходимо выполнить одно или другое действие. Действия могут содержать одну или несколько операций
Пример 2. Составить в виде блок-схемы и программы алгоритм назначения стипендии студентам в зависимости от среднего балла сессии.
Решение. Пусть стипендия не назначается тем студентам, у которых средний балл меньше 4, поэтому в алгоритме необходимо проверить это условие. В зависимости от введённого значения Среднего_балла условие может принять значение <4, тогда выполняется действие по ветви Да. Если условие принимает значение >4, то выполняется действие по ветви Нет. Блок-схема данного алгоритма имеет вид (рис 5):
Рисунок 5 – Блок-схема алгоритма Пример 2
1) Введите в Окно редактирования кода Листа программу, в которой содержится оператор условного перехода (выбора) части программы в соответствии с условиями, существующими на момент выполнения этого оператора.
Условный оператор может иметь блочную структуру:
If Условие Then
Блок_операторов_1
Else
Блок_операторов_2
End If
Блок_операторов_1 выполняется в том случае, если Условие истинно, в противном случае выполняется Блок_операторов_2.
Текст программы:
Sub Пример2( )
Dim Средний_балл As Single
Dim Назнач_стипендии As String
Средний_балл = InputBox("Введите средний балл сессии", "Окно ввода")
If Средний_балл < 4 Then
Назнач_стипендии = "Нет"
Else
Назнач_стипендии = "Да"
End If
Debug.Print "Назначать стипендию?" ; Назнач_стипендии
End Sub
2) Запустите программу на счёт кнопкой Run Sub ;
3) Выполните ввод числовых значений. В диалоговое окно с подсказкой – «Введите средний балл сессии»
наберите с клавиатуры – 3,5
В окно Immediate программа выведет результат вычислений:
Назначать стипендию? Нет
4) Повторить решение задачи для случая, когда Средний_балл>=4.
В диалоговое окно с подсказкой – «Введите средний балл сессии»
наберите с клавиатуры – 4,5
В окно Immediate программа выведет результат вычислений:
Назначать стипендию? Да
Пример 3. Составить в виде блок-схемы и программы алгоритм назначения стипендии студентам и перевода их на следующий курс в зависимости от среднего балла сессии.
Решение. В этой задаче возможно три варианта решения, так как средний балл может быть >=4, <3 и находиться в промежутке от 3 до 4. В зависимости от выполнения этих условий студента назначают на стипендию и переводят на следующий курс. Так же существует правило: если условий несколько, то проверять надо на одно меньше. В данном случае два (>=4; <3), так как из не выполнения выбранных условий следует выполнение третьего.
Блок-схема данного алгоритма имеет вид (рисунок 6):
Рисунок 6 – Блок-схема алгоритма Пример 3
1) Введите в Окно редактирования кода Листа программу, в которой содержится оператор множественного выбора.
Оператор Select Case можно использовать вместо последовательности операторов If. В языках программирования высокого уровня такая конструкция называется переключателем. Он записывается следующим образом:
Select Case Выражение
Case Условие_1
Блок_операторов_1
Case Условие_2
Блок_операторов_2
Case Условие_N
Блок_операторов_N
Case Else
Блок_операторов_по_умолчанию
End Select
В свою очередь, Условие может быть записано в одной из трех форм:
Case Константа_1, Константа_2, Константа_3,...
Case Is Знак_отношения Константа
Case Константа_1 To Константа_2
Оператор множественного выбора выполняется следующим образом: сначала вычисляется значение Выражения, стоящего после ключевых слов Select Case; затем выполняется проверка на то, удовлетворяет ли Выражение одному из Case-Условий.
Если такое условие найдено, выполняется Блок_операторов_N, который стоит после него, а затем управление передается оператору, который находится после End Select.
Если такого условия нет, то выполняется Блок_операторов_по_ умолчанию, который находится после ключевых слов Case Else.
Текст программы:
Sub Пример3( )
Dim Средний_балл As Single
Dim Назнач_стипендии, Перевод_след_курс As String
Средний_балл = InputBox("Введите средний балл сессии", "Окно ввода")
Select Case Средний_балл
Case Is < 3
Назнач_стипендии = "Нет"
Перевод_след_курс = "Нет"
Case Is >= 4
Назнач_стипендии = "Да"
Перевод_след_курс = "Да"
Case Else
Назнач_стипендии = " " ‘Самостоятельно заполните
Перевод_след_курс = " " ‘пропущенные значения
End Select
Debug.Print "Назначать стипендию?" ; Назнач_стипендии
Debug.Print "Переводить на следующий курс?" ; Перевод_след_курс
End Sub
2) Запустите программу на счёт кнопкой Run Sub ;
3) Выполните ввод числовых значений. В диалоговое окно с подсказкой – «Введите средний балл сессии»
наберите с клавиатуры – 2,5
В окно Immediate программа выведет результат вычислений:
Назначать стипендию? Нет
Переводить на следующий курс? Нет
Повторить решение задачи для случая, когда Средний_балл>=4, затем для случая, когда Средний_балл >=3 но <4.
