Создание программ обработка цифровой информации
Цель работы –изучение основ создания программ обработки цифровой информации средствами языка программирования VBA.
После выполнения работы студент должен знать основы разработки программ обработки цифровой информации, уметьсоздавать и отлаживать программы обработки цифровой информации средствами VBA.
Справочная информация
При решении большинства финансово – экономических задач пользователь многократно выполняет расчеты тех или иных показателей, значения которых описываются следующими основными типами данных: Integer, Long, Single, Currency, Variant (см. прилож. 13). При этом могут использоваться математические (+,-,*,/,\,^,Mod), логические (And, Or, Xor, Not) операции и операции отношений ( <, >, <=, >=, <>, = ), а также встроенные (стандартные) функции (см. прилож. 14).
При написании программ обработки математических выражений следует обращать внимание не только на физическое значение диапазона переменных (например, грузоподъемность судна, как и возраст студента, не могут быть величиной отрицательной), но и на допустимость тех или иных математических операций над значениями переменных (например, деление на ноль, четный корень из отрицательного числа, и т.д.). Для избежания подобных ситуаций в программах используются блоки логической проверки.
Пример программы
Требуется написать программу расчета значения выражения
при следующих значениях параметров:
- целые положительные числа в диапазоне от 0 до 30000;
- любое вещественное число;
- любое неотрицательное число в денежном формате (р.)
'Пример 1
'Лабораторная работа №2
'Первый вариант. Здесь не учитываются допустимые значения 'параметров, формат результата и не отслеживается нажатие 'кнопки Cancel
Sub Lab_rab_2 ()
Dim A, B, C As Integer, X, Y As Single
A = Val(InputBox("Введите A", "Ввод исходных данных"))
B = Val(InputBox("Введите B", "Ввод исходных данных"))
C = Val(InputBox("Введите C", "Ввод исходных данных"))
X = Val(InputBox("Введите X", "Ввод исходных данных"))
Y = (a * b) / Abs(x ^ 3) + c
MsgBox Y
End Sub
'Пример 2
'Лабораторная работа №2
Sub Lab_rab_2()
Dim A, B, C As Integer, X, Y As Single, Z As Currency
A = Val(InputBox("Введите A", "Ввод исходных данных"))
If A < 0 Then
MsgBox "Значение параметра A не может быть меньше нуля", _
vbExclamation, "Внимание ! "
Exit Sub
End If
B = Val(InputBox("Введите B", "Ввод исходных данных"))
If B < 0 Then
MsgBox "Значение параметра B не может быть меньше нуля", _
vbExclamation, "Внимание ! "
Exit Sub
End If
C = Val(InputBox("Введите C", "Ввод исходных данных"))
If C < 0 Then
MsgBox "Значение параметра C не может быть меньше нуля", _
vbExclamation, "Внимание ! "
Exit Sub
End If
X = Val(InputBox("Введите X", "Ввод исходных данных"))
If X = 0 Then
MsgBox "Значение X не может быть равно нулю!", _
vbCritical, "Недопустимое значение"
Exit Sub
End If
Y = (A * B) / Abs(X ^ 3) + C
z = MsgBox("Y равен " & Format(Y, "Currency"))
End Sub
Задание
1. Выполните постановку задачи, опишите экономико-математическую модель и метод решения, составьте алгоритм решения и представьте их преподавателю.
2. В соответствии с вариантом задания (см. табл. 3) создайте процедуру вычисления значения математического выражения с описанием типов параметров (см. Пример 1).
3. Отладьте программу и проверьте ее работоспособность, в том числе с критическими и недопустимыми значениями параметров.
4. Модифицируйте процедуру, добавив в программу блоки логической проверки на критические и недопустимые значения параметров (см. Пример 2).
5. С использованием функции Format() выполните специфицированное форматирование искомого значения созданной Вами функции.
6. Отладьте программу, проверьте ее работоспособность, в том числе с критическими и недопустимыми значениями параметров.
7. Создайте в Кнопочной_форме кнопку для запуска созданной процедуры и проверьте ее работу.
8. Представьте работу преподавателю.
Таблица 3
Варианты заданий
№ | Выражение | Диапазон значений и типы данных |
a, c – любое вещественное; b – целое неотрицательное; x - целое положительное; <=100; y – положительное, в % | ||
a, c – любое целое; x - вещественное; y – положительное, с двумя знаками после точки | ||
a – отрицательное целое, > -1000; c – положительное вещественное; x – любое целое; y – положительное, в денежном формате, р. | ||
a – положительное целое, < 10; b – отрицательное вещественное; x – положительное вещественное; y – положительное, без разделителя тысяч | ||
a – любое вещественное; b – положительное целое, < 2500; x – положительное целое; y – положительное, в % | ||
a, b – целое неотрицательное; x - целое положительное; <=1000; y – положительное, в денежном формате, р. | ||
a, b – положительные целые, <12345; x – любое вещественное; y – положительное, с разделителем тысяч | ||
a – отрицательное вещественное; b – положительное вещественное; x – целое, <10; y – положительное, с двумя знаками после точки | ||
a – любое целое, <>0; b – любое вещественное; x – положительное вещественное; y – положительное, в денежном формате (р.) | ||
a – любое вещественное; b – неотрицательное вещественное; x –целое, >-200 и <350; y – положительное, с разделителем тысяч |
Контрольные вопросы
1. Какие типы числовых данных использованы Вами в программе? Чем они отличаются?
2. Объясните смысл использованных в программе выражений. Назовите использованные Вами встроенные функции.
3. В чем заключается отличие между процедурой и функцией?
4. Каким образом может быть организовано обращение к процедуре?
5. * Как можно сохранить используемые значения параметров для последующей обработки?
6. * Как может быть организован повторный ввод параметров в функцию, если их первоначальные значения были недопустимы? Предложите вариант программы.
7. * Добавьте в процедуру блоки, реализующие выход из процедуры при нажатии кнопок Cancel.