Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дополнит_задания_VBA.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

2.1 Разработка программ линейной структуры в среде vba

Тексты программ в VBA хранятся в мáкросах. Макрос на языке VBA должен содержать хотя бы одну подпрограмму, которая называется Главной.

Подпрограм­ма начинается оператором заголовка, например:

Sub Задача( )

Далее следуют строки, состоящие из операторов. Они составляют тело программы. В одной строке может находиться один или несколько операторов. Один оператор от другого отделяется знаком двоеточия. Выполнение операторов линейной программы осуществляется последовательно.

Заканчивается подпрограмма оператором:

EndSub

Пример 1. Составить в виде блок-схемы и программы алгоритм вычисления объёма розничного товарооборота T = R*N с учётом того, что среднесписочное число работников составляет R=20 и средний оборот на одного работника N=80,50 руб.

Решение.

Блок-схема данного алгоритма имеет вид:

Рисунок 2 – Блок-схема алгоритма Примера 1

  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

В свою очередь, Условие может быть записано в одной из трех форм:

  1. Case Константа_1, Константа_2, Константа_3,...

  2. Case Is Знак_отношения Константа

  3. 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 программа выведет результат вычислений:

Назначать стипендию? Нет

Переводить на следующий курс? Нет

  1. Повторить решение задачи для случая, когда Средний_балл>=4, затем для случая, когда Средний_балл >=3 но <4.