- •Практическое занятие № 1 Управление ходом программы Конструкция ветвления If…Then…ElseIf…EndIf. Логические операции
- •Задания для самостоятельной работы № 1 Использование конструкций ветвления If…Then…ElseIf…EndIf
- •Задания для самостоятельной работы № 2 Использование конструкций ветвления If…Then…ElseIf…EndIf
- •Задания для самостоятельной работы №3 Использование инструкций выбора Select Case.
- •Задания для самостоятельной работы №4 Использование конструкций ветвления If…Then…ElseIf…EndIf, инструкций выбора Select Case
- •Задания для самостоятельной работы №5 Использование конструкций ветвления If…Then…ElseIf…EndIf, инструкций выбора Select Case
- •Задания для самостоятельной работы №6 Использование конструкции For…Next. Вычисление рядов.
- •Задания для самостоятельной работы №7 Использование конструкции For…Next. Табулирование функции.
- •Задания для самостоятельной работы №8 Программы с циклами по условию Do…Loop
- •Задания для самостоятельной работы № 9 Использование циклов For…Next, Do…Loop
- •Задания для самостоятельной работы №10 Использование циклов For…Next? Do…Loop
- •Практическое занятие №2 Действия над массивами данных
- •Задания для самостоятельной работы №11 Одномерные массивы
- •Задания для самостоятельной работы №12 Двумерные массивы
- •Задания для самостоятельной работы №13 Матрицы
Задания для самостоятельной работы № 1 Использование конструкций ветвления If…Then…ElseIf…EndIf
Задача. Для программы созданной в практической работе №2 [1] создайте программный код защиты от неправильного ввода данных.
Разработанная программа должна быть предоставлена в двух вариантах:
в первом программа должна содержать подробные комментарии, для того чтобы преподаватель мог без труда оценить принятый вами для решения задачи алгоритм;
во втором программа должна быть полностью без комментариев для проведения контроля полученных знаний.
Задания для самостоятельной работы № 2 Использование конструкций ветвления If…Then…ElseIf…EndIf
Задача. Составьте программу, которая производит расчет предложенной вам функции (табл. 2).
Разработанная программа должна быть предоставлена в двух вариантах:
в первом программа должна содержать подробные комментарии, для того чтобы преподаватель мог без труда оценить принятый вами для решения задачи алгоритм;
во втором программа должна быть полностью без комментариев для проведения контроля полученных знаний.
Программа должна содержать форму с текстовыми полями для ввода величин, кнопками для выполнения расчета, формирования отчета, выхода из программы.
В программе нужно предусмотреть защиту от неверного ввода данных.
Сформировать отчет средствами VBA. Отчет должен содержать: условие задачи; формулу расчета с обозначениями и подставленными вместо них числами; полученный результат.
Таблица 2
Варианты заданий
1.
|
2.
|
3.
|
4.
|
5.
|
6.
|
7.
|
8.
|
9.
|
10.
|
11.
|
12.
|
13.
|
14.
|
15.
|
16.
|
17.
|
18.
|
19.
|
20.
|
21.
|
22.
|
23.
|
24.
|
25.
|
|
Конструкция выбора Select Case
При составлении вашей программы может так случиться, что потребуется проверять очень много условий. Если для этого использовать рассмотренную выше конструкцию If…Then…Else…EndIf, то можно столкнуться с трудностями при создании кода программы, т.к. в этом случае код может стать громоздким и трудным для понимания и восприятия. В этом случае можно воспользоваться конструкцией выбора Select Case, которая выполняет один из нескольких блоков инструкций в зависимости от значения проверяемого выражения.
Синтаксис:
Select Case выражение
[Case список выражений - 1
[инструкции - 1]] ...
[Case список выражений - 2
[инструкции - 2]] ...
...
[Case список выражений - n
[инструкции - n]] ...
[Case Else
[инструкции_else]]
End Select
Синтаксис конструкции Select Case содержит следующие элементы:
Выражение (обязательный) - любое числовое или строковое выражение.
Список выражений (обязательный при наличии предложения Case) - список с разделителями, состоящий из одной или нескольких форм следующего вида: выражение; выражение To выражение; Is, оператор сравнения, выражение. Ключевое слово To задает диапазон значений от меньшего до большего. При использовании ключевого слова To перед ним записывается меньшее значение. Ключевое слово Is задает диапазон значений с помощью операторов сравнения.
Инструкции (необязательный) - одна или несколько инструкций, выполняемых в том случае, если выражение совпадает с любым компонентом (условием) списка выражений.
Инструкции else (необязательный) - одна или несколько инструкций, выполняемых в том случае, если выражение не совпадает ни с одним из предложений Case.
Если выражение совпадает с любым выражением из списка выражений в предложении Case, выполняются все инструкции, следующие за данным предложением Case до следующего предложения Case, или, для последнего предложения, до инструкции End Select. Затем управление передается к следующей за End Select инструкции. Если выражение совпадает с выражениями из списка в нескольких предложениях Case, выполняется только первый подходящий набор инструкций.
Предложение Case Else задает блок инструкции else, которые будут выполнены, если не обнаружено ни одно совпадение выражения и компонентов списка выражений ни в одном из остальных предложений Case. Хотя данное предложение не является обязательным, рекомендуется помещать предложение Case Else в блок Select Case, чтобы предусмотреть появление неожиданных значений выражения в ходе выполнения программы. Если ни в одном предложении Case список выражений не содержит компонента, отвечающего аргументу выражение, и отсутствует инструкция Case Else, выполнение продолжается с инструкции, следующей за инструкцией End Select.
В каждом предложении Case допускается использование нескольких выражений или диапазонов. Например, допустима следующая строка программного кода:
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Как и для конструкции ветвления If…Then…ElseIf…EndIf допускаются вложенные инструкции Select Case. Каждой вложенной инструкции Select Case должна соответствовать инструкция End Select.
По правилу хорошего стиля программирования инструкции внутри конструкций Case должны писаться с отступом вправо. Это улучшает читаемость программы. Далее, в примере, рассмотрено как это делается.
Пример. Составить программу для вычисления функции:
Приведем код составленной программы:
Sub SelectCaseUse()
'объявляем переменные
Dim a As Single, b As Single, z As Single
Dim n As Integer
'вводим данные
a = CSng (InputBox("Введите a"))
b = CSng (InputBox("Введите b"))
Select Case a + b 'анализируемое выражение
Case 2 'если сумма равна 2
z = Log(Abs(a * b)) / Log(3)
n = 1
Case 3, 4, 5 'если сумма равна 3 или 4 или 5
z = а ^ 2 + 1 / Tan(b)
n = 2
Case 7 To 10 'если сумма лежит в диапазоне от 7 до 10
z = a - Sin(b) ^ 2
n = 3
Case Is > 12 'если сумма больше 12
z = Sqr(а ^ 2 + Ь ^ 2)
n = 4
Case Else 'во всех остальных случаях
z = 1
n = 5
End Select
MsgBox "a = " & CStr(a) & Chr(13) & "b = " & CStr(b) _
& Chr(13) & "z = " & CStr(z) & Chr(13) _
& "Вычислено по формуле № " & CStr(n)
End Sub
При использовании функции MsgBox, применяется функция Chr(13). Данная функция соответствует коду возврата каретки (перевод строки), равному 13. В результате функция MsgBox работает следующим образом: сначала печатается текст, затем, дойдя до функции Chr(13) осуществляется перевод на новую строку и последующий текст печатается в новой строке. В приведенном примере текст в окне MsgBox печатается в четырех строках.
