Основы и принципы работы в VBA. Часть 1: Методические указания к выполнению лабораторных работ, страница 6

16) Написать программу, которая вычисляет частное двух чисел. Прог-рамма должна проверять правильность введенных пользователем данных и, если они неверные (делитель равен нулю), выдавать сообщение об ошибке.

17) Дано целое число A. Если заданное число кратно четырем, то увеличить его в три раза, в противном случае – возвести в квадрат.

18) Даны два вещественных числа – X и Y, не равные друг другу. Наименьшее из этих чисел заменить половиной их суммы. Вывести результат замены  и второе число на лист Excel.

19) Дано вещественное число А. Удвоить это число, если оно отрицательное, или увеличить на 10, если – положительное.

20) Даны два натуральных числа – К и Р. Проверить, делится ли одно из них на другое без остатка или нет. Результат проверки вывести на экран.

3.2.3.  Варианты заданий с использованием  блочной  формы

оператора условного перехода

Выполнить расчеты функции z(x) по данным, приведенным в табл. 3.1. Применить для ввода х функцию InputBox, вывода  z – MsgBox, ввода
a и bCells.

Таблица 3.1

Функции для вычисления с использованием условного оператора

Номер

варианта

Функция

Исходные данные

Результат

при заданном

значении x

1

2

3

4

1

2

3

4

5


Продолжение табл. 3.1

1

2

3

4

6

7

8

9

10

11

12

13

14

15

16

17

Окончание табл. 3.1

1

2

3

4

18

19

20

21

22

23

24

25

26

27

28

29

30


Лабораторная работа 4

АЛГОРИТМЫ  С  РАЗВЕТВЛЯЮЩЕЙСЯ  СТРУКТУРОЙ.
СЛОЖНОЕ  ВЕТВЛЕНИЕ.  ЛОГИЧЕСКИЕ  ОПЕРАЦИИ. 
Оператор   SELECT  CASE

Цель работы: изучение особенностей разработки алгоритмов со сложными ветвлениями и их реализация с помощью логических операций.

4.1. Краткие теоретические  сведения

Пример 1.  Вычислить значения функции у  при x = –2; 1,2; 6: 

где a = –1; b = 2.

Схема алгоритма вычисления заданной функции приведена  на рис. 4.1.

Программа, реализующая данный

алгоритм, имеет вид:

Option  Explicit

Sub PR1( )

Dim a as single, x as single

Dim  b as single, y as single

a=Cells(2,2): b=Cells(2,3)

x= Val(InputBox("Введите x"))

If x < –2 Then

y=a*x*x

ElseIf  x<=5 Then

y=abs(sin(x))+b

Else

у=a*log(x)/log(10)+b

End If

MsgBox(“x=” &  x & “  y=”& y)

End Sub

На схеме алгоритма (см. рис. 4.1) блок 4 проверяет условие x < –2. При выполнении этого условия управление передается блоку 6, в противном случае– блоку 5, где проверяется условие x ≤ 5, и в зависимости от результата проверки управление передается блоку 7 или 8. Блок 9 выводит введенный аргумент и значение функции y, вычисленное в блоке 6, 7 или 8.

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

Оператор выбора SelectCase имеет вид:

SelectCaseТестируемое выражение

CaseУсловие выбора 1

Блок операторов 1 

      ……………

CaseУсловие выбора n

Блок операторов n

CaseElse

Блок операторов

EndSelect

Тестируемое выражение – это любое численное или строковое выражение (например, имя одной переменной, математическое или численное выражение, но не логическое). Условие выбора – это список логических выражений, отделяемых запятыми. Условие выбора может также определять диапазон значений при использовании оператора To. Ветвь Case может содержать один оператор, несколько или ни одного оператора, и все они будут выполняться, если условие оператора Caseистинно.

Пример 2. Наблюдения за 20 машинами показали, что до первого отказа одного из элементов наработка машин представляется исходными данными, приведенными в табл. 4.1. Определить частоту отказа по интервалам пробега.

                                        Таблица 4.1

Статистический ряд

Интервал пробега, км

Частота отказа

  От 1001 до 2000

3

  От 2001 до 3000

7

  4001 и более

10

Программный код:

Option Explicit

Sub PR2 ()

Dim km As Double, P As Double

km = Val(InputBox("Введите интервал пробега"))