Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uchebnoe_posobie_-_2_bez_kommentariev.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.05 Mб
Скачать

Задания для самостоятельной работы № 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…ThenElseEndIf, то можно столкнуться с трудностями при создании кода программы, т.к. в этом случае код может стать громоздким и трудным для понимания и восприятия. В этом случае можно воспользоваться конструкцией выбора 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

Как и для конструкции ветвления IfThenElseIfEndIf допускаются вложенные инструкции 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 печатается в четырех строках.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]