- •Основы и принципы работы в vba
- •Часть 1 омск 2008
- •Часть 1
- •1.1. Краткие теоретические сведения
- •1.2. Индивидуальные задания Задание 1.
- •1) Изучить правила записи констант, переменных, стандартных функций и арифметических выражений.
- •Выражения, записанные на языке Visual Basic
- •2.1. Краткие теоретические сведения
- •2.2. Индивидуальные задания
- •Программа вычислений имеет вид:
- •2.3. Дополнительное задание
- •3.1. Краткие теоретические сведения
- •3.2. Индивидуальные задания
- •3.2.1. Примеры проверки числа на кратность
- •3.2.2. Использование линейной формы записи операторов
- •4.1. Краткие теоретические сведения
- •Блок операторов 1
- •4.2. Индивидуальные задания
- •4.2.1. Простое ветвление. Логические операции
- •4.2.2. Сложное ветвление
- •Данные для вычисления функции у с использованием условного оператора
- •4.2.3. Задания на использование оператора выбора Select Case
- •4.3. Дополнительное задание
- •Типы данных vba
- •Часть 1
- •644046, Г. Омск, пр. Маркса, 35
2.1. Краткие теоретические сведения
В VBA для записи линейных алгоритмов используется оператор прис-ваивания. Оператор присваивания имеет следующий вид:
переменная = выражение.
Выражение может быть арифметическим, текстовым или логическим.
Пример.
Заданы два целых числа. Вычислить их сумму, произведение и частное.
Программный код:
Option Explicit
Sub PR1 ( )
Dim a As Integer, b As Integer ' описание переменных
Dim s As Integer, p As Integer
Dim ch As Double
a = Val(InputBox("Введите А")) ' ввод первого числа
b = Val(InputBox("Введите В")) ' ввод второго числа
s = a + b ' вычисление суммы
MsgBox ("сумма=" & s) ' вывод суммы
p = a * b ' вычисление произведения
MsgBox ("произведение=" & p) ' вывод произведения
ch = a / b ' вычисление частного
MsgBox ("частное=" & ch) ' вывод частного
End Sub
Для пояснения в программе предусмотрены комментарии. Комментарии начинаются с символа « ' » (апостроф), т. е. все, что написано в строке программного кода справа от апострофа, считается комментарием.
При записи нескольких операторов в одну строку их разделяют двоеточием.
2.2. Индивидуальные задания
Задание 1.
Разработать программу расчета скорости V, км/ч, движения локомотива в зависимости от частоты вращения n, 1/с, тяговых электродвигателей и передаточного коэффициента M тягового редуктора:
,
где D – диаметр колеса локомотива, D = 1,050 м.
Для грузовых тепловозов коэффициент М равен 4,41, для пасса- жирских – 2,32.
Выполнить расчеты при n = 40, 50, 60 1/c.
Программа вычислений имеет вид:
Option Explicit
Sub VA ( )
DIM D As Single, M As Single, N As Single, V As Single
D=Cells(5,2)
М= Val(InputBox("Передаточный коэффициент М"))
N= Val(InputBox("Частота вращения n (1/с)"))
V=11.28*D*N/M
MsgBox("Скорость движения V=" & V)
End Sub
При написании строк программы необходимо использовать отступы, это является основой создания понятного программного кода.
Ввод значения диаметра колеса локомотива D выполнить считыванием данныхиз ячейки В5 листа рабочей книги Excel (рис. 2.1) с помощью оператора Cells( ).
Оформление ввода значений представлено на рис. 2.1.
Рис.
2.1. Вид окна с рабочим листом Excel
Задание 2.
Разработать ГСА и программу вычисления значения функции при заданных значениях аргументов и сравнить результат с ответом (табл. 2.1).
В программе необходимо:
1) ввод данных осуществить с помощью оператора присваивания, вывод значений выражений – с помощью функции MsgBox;
2) ввод исходных данных функции осуществить с помощью оператора InputBox, вывод результата расчета – на рабочий лист Excel;
3) ввод исходных данных осуществить с рабочего листа Excel, вывод результата расчета – на рабочий лист Excel с пояснениями.
Таблица 2.1
Варианты значений функции для вычисления
Номер варианта |
Функции |
Исходные данные |
Ответы |
1 |
2 |
3 |
4 |
1 |
|
z = 35,232; x = 16,786; l = 30,358 | |
2 |
|
z = 0,245; a = 0,072; l = –2,567 | |
3 |
|
z = 1,143; R = 0,845; t = –0,159 |
Продолжение табл.2.1
1 |
2 |
3 |
4 |
4 |
|
x = 8,2; y = 0,003 |
А = – 4,63; b= 5,527; z= –11,979 |
5 |
|
|
L= 3,927; Z= 11,545; b= 21,318 |
6 |
|
|
y = 1,048; d = 0,116; L = 11,434 |
7 |
|
|
R = 1,022; b = 4,904; z = 3,707 |
8 |
|
|
D = 2,46; Z = –1,04; y = –0,557 |
9 |
|
|
G = –0,294; d = –0,126; z = 1,568
|
Окончание табл. 2.1
1 |
2 |
3 |
4 |
10 |
|
|
D = 4,399; y = 1,867; b = 7,003 |
11 |
|
|
y = 0,894; z = 2888; b = 7,968 |
12 |
|
R = 3,539; x = 1,174; z = 0,549 | |
13 |
R = 24,504; y = 27,49; z = 11780 | ||
14 |
а = 4·10-2; x = 17,6 |
R = 16928; y = –0,981; L = 16,39 | |
15 |
c = –9,987; d = –12,23; b = –12,23 |
Задание3.
Разработать ГСА и программу вычисления значения функции при заданных значениях аргументов и сравнить результат с ответом (табл. 2.2). Ввод данных осуществить с рабочего листаExcel, вывод результата – на рабочий листExcelс пояснениями.
Таблица 2.2
Задания и значения аргументов для вычисления функций по вариантам
Номер варианта |
Задание: определить и вывести на экран функцию |
Исходные данные |
Ответ |
1 |
2 |
3 |
4 |
1 |
среднее геометрическое чисел A,D,P, если |
х = 23,3; y= 8,2 |
3,159 |
2 |
среднее арифметическое чисел А, В и С, если
|
х = 1,17; y= 28 |
7,809 |
3 |
сумму кубов чисел K,LиN, если
|
х = 2,1; а = 7 |
7,805× ×1016 |
4 |
произведение модулей чисел D,R,K, если
|
х = 1,1; а = 0,93 |
3,555 |
5 |
разность квадратов чисел AиD, если
|
х = –4,4; y= 2,1 |
–8,091 |
6 |
среднее арифметическое чисел Z,R,Y, если
|
х = 6,3; а = 17 |
4,19× ×1017 |
Продолжение табл. 2.2
1 |
2 |
3 |
4 |
7 |
целую часть суммы чисел G,I,U, если
|
х = 12; а = 9,5 |
17 |
8 |
целую часть разности чисел C,B, если
|
х = 11; а = 10,2 |
–1 |
9 |
среднее геометрическое чисел K,P,Y, если
|
х = 5,3; а = 2,9; с = –15 |
1,522 |
10 |
целую часть произведения чисел A,N, если
|
х = 12,3; b= 15 |
0 |
11 |
среднее геометрическое чисел W,R,C, если
|
х = 10,1; b= 1,67 |
2,23 |
12 |
сумму кубов чисел А, В, С, если
|
х = 1,17; y= 28 |
12062 |
13 |
среднее геометрическое чисел K,LиN, если
|
х = 2,1; а = 7 |
31,83 |
Окончание табл. 2.2
1 |
2 |
3 |
4 | |
14 |
сумму квадратов чисел D,R,K, если
|
х = 11; а = 9,3 |
625,03 | |
15 |
среднее арифметическое чисел AиD, если ;
|
х = –4,4; y= 2,1 |
–0,967 | |
16 |
среднее геометрическое чисел Z,R,Y, если
|
х = 6,3; а = 17 |
909572 | |
17 |
произведение модулей чисел A,D,P, если |
х = 23,3; y= 8,2 |
31,51 |