Математические Функции языка Visual Basic
Дата добавления: 2013-12-24 ; просмотров: 30517 ; Нарушение авторских прав
Занятие 4. Вычисления на VB
End Sub
Private Sub Command1_Click()
End Sub
Next I
PRINT I;
Private Sub Command1_Click()
Next I
PRINT I,
Private Sub Command1_Click()
End Sub
Next I
PRINT I
Private Sub Command1_Click()
End Sub
Private Sub Command1_Click()
End Sub
Private Sub Command1_Click()
R$ = “Вася”
На экране появляется слово: Вася
4. Оператор PRINT выводит на экран числа, слова, результаты математических действий. (Не выводит знак “). Если в операторе PRINT есть математическое выражение, то компьютер вычисляет его и результат печатает на экране.
PRINT 10 – 3 + 4
Чтобы выяснить действие знаков препинания в операторе PRINT рассмотрим работу программы:
а) Никаких знаков препинания нет
For I = 1 to 50
На экране мы видим столбик чисел:
Если в операторе PRINT нет знаков препинания, то информация выводится каждый раз с новой строки, в столбик.
б) Поставим после переменной I запятую, и вновь выполним программу.
For I = 1 to 50
На экране: 1 2 3 4 5 ….
Информация выводится в строке через 10 пробелов.
в) Поставим после переменной I точку с запятой, и вновь выполним программу.
For I = 1 to 50
На экране: 1 2 3 4 5 ….
Информация выводится через 1 пробел.
Ø Теперь мы можем прибавить два к двум и получить ответ:
? “2 + 2 = ”; 2 + 2
6. PRINT ставится в том месте программы, где требуется что-нибудь вывести на экран.
Для вычисления математических функций используются стандартные функции:
Функция | Математика | Visual Basic |
Абсолютная величина числа x | | x | | abs(x) |
Квадратный корень из числа x | sqr(x) | |
Возведение в степень | 4^3 | |
Корень третьей степени из числа x | x^(1/3) | |
Корень нечетной степени из отрицательного числа | -x^(1/5) | |
Экспонента числа x | exp(x) | |
Натуральный логарифм числа x | ln x | log(x) |
Десятичный логарифм числа x | lg x | log(x) / log(10) |
Остаток от деления х на у | x mod y | |
Округление числа x с точностью а | round (x, a) | |
Целая часть числа x | int(x) | |
Команда, включающая генератор случайного числа | Randomize | |
Функция вырабатывающая случайное число в диапазоне от 0 до 1 | rnd | |
Функция, переводящая текст, состоящий из цифр в число | val() | |
Функция преобразующая число в текст | str$() | |
Синус числа x (в радианах) | sin x | sin (x) |
Косинус числа x (в радианах) | cos x | cos (x) |
Тангенс числа x (в радианах) | tg x | tan (x) |
Котангенс числа x (в радианах) | ctg x | 1/tan(x) |
Арктангенс числа x (в радианах) | arctg x | atn (x) |
Арксинус числа x (в радианах) | arcsin x | atn(x/sqr (-x*x+1)) |
Арккосинус числа x (в радианах) | arccos x | -atn(x/sqr(-x*x+1))+1.5708 |
Арккотангенс числа x (в радианах) | arcctg x | -atn(x)+1.5708 |
Перевод из градусов в радианы
Как вычислить sin 41°?
41° Мы должны перевести в радианы.
рад = град × 3.141592 / 180
Поэтому выражение sin 41° на языке Бейсик записывается: sin (41 * 3.141592 / 180)
Приведенные ниже математические функции vba позволяют производить тригонометрические вычисления (нахождение sin, cos и так далее), обрабатывать числовые значения на предмет получения целой части от дробного, округления или генерации случайных чисел.
Если переданный параметр для следующих математических функций vba не будет распознан как числовое значение, возникнет ошибка.
ABS ( num) – Функция возвращает значение числа по модулю.
Exp ( num) – Функция позволяет получить значение экспоненты, передаваемый параметр (максимальное значение ровно 709 782712893) является степенью, в которую нужно возвести экспоненту. Соответственно, если параметр равен 1, то мы получить чистое значение экспоненты.
Fix ( num) – Функция возвращает целую часть от переданного дробного значения. Если переданное значение является отрицательным, то возвращается ближайшее отрицательное целое число, большее, либо равное указанному.
Int ( num) – Математическая функция vba возвращает целую часть от переданного дробного значения. Если переданное значение является отрицательным, то возвращается ближайшее отрицательное целое число, меньшее, либо равное указанному.
Rnd (random) – Функция вернет число, входящее в диапазон от 0 до 1 в случайном порядке, при этом, само число 1 не входит в диапазон, а 0 – входит. Перед вызовом функции надо прописывать конструкцию Randomize, которая отвечает за включение генератора случайных чисел.
В зависимости от значения переданного параметра random, данная математическая функция vba работает следующим образом:
Sgn (num) – Данная математическая функция vba позволяет узнать знак числа, переданного как аргумент. Функция vba вернет следующие значения:
Sql (num) – Квадратный корень из переданного числового параметра num.
Следующие математические функции vba являются тригонометрическими. В качестве параметра для большинства указывается значение угла в радианах. Для перевода градусов в радианы используется формула:
Угол (в радианах) = угол (в градусах) * pi / 180, где pi = 3.14159265358979
Log (par) – Натуральный логарифм переданного числа.
Я не буду приводить примеры для всех приведенных выше математических функций VBA, а приведу только один пример кода для функций sin и cos. Откройте редактор VBA (комбинация клавиш Alt + F11), добавьте в проект новый модуль (меню Insert/Module). В моем случае имя модуля – module3, в редакторе кода для заданного модуля пропишите следующие строки:
Спасибо за внимание. Автор блога Владимир Баталий
Основы VBA: встроенные и пользовательские функции
6.1. Встроенные математические функции
Вы хотите вычислить квадратный корень, округлить число или сделать с ним еще что-нибудь подобное? Для этого VBA имеет специализированные функции, вы можете найти их в табл. 6.1.
Выше мы работали, в основном, с числами, теперь поговорим о строковых переменных.
6.2. Строковые функции
Работа со строками традиционно считается сложным разделом программирования для начинающих, поэтому проиллюстрируем вышеописанные функции примерами.
Создадим документ Microsoft Word и добавим на него следующие кнопки табл. 6.3.
Имя кнопки | Надпись | Номер листинга |
---|---|---|
cmd_Len | Длина строки | листинг 6.1. |
cmd_Conv | Конверсия | листинг 6.2. |
cmd_Mid | Вырезание | листинг 6.3. |
cmd_Asc | Коды | листинг 6.5. |
На рис. 6.2. вы можете видеть результат вычисления длины строки.
Мы не будем приводить здесь таблицу ASCII полностью, приведем лишь некоторые полезные коды и диапазоны кодов.
Коды в диапазоне 0-31 имеют управляющие символы. Символ возврата каретки (тот самый, который вставляется в документ при нажатии клавиши Enter ) имеет код 13.
Используя коды символов можно вводить в документы (или записывать в файлы, создаваемые программно) символы, которые нельзя ввести с клавиатуры.
Функция LN Excel
В арифметике у нас есть функция логарифма или функция LOG, которая прямо противоположна возведению в степень, в excel у нас есть аналогичная функция для вычисления логарифма заданного числа, и эта функция является функцией LN в excel, которая принимает одно число в качестве аргумента и дает результат в виде логарифма.
Функция LN в Excel
Это встроенная функция в MS Excel. LN excel относится к категории «Математические функции» в MS Excel. Excel LN используется для вычисления натурального логарифма числа.
Что такое функция натурального логарифма?
Натуральный логарифм числа — это его логарифм по основанию математической константы. е, где е — иррациональное и трансцендентное число, примерно равное 2,718281828459. Функция натурального логарифма x обычно записывается как пер Икс, ложа х а иногда, если база е неявно, просто журнал x.
Итак, Ln (Number) = LOG (Number, e)
Ниже представлен график функции LN.
На приведенном выше графике функций LN ось X указывает номер, для которого необходимо вычислить журнал, а ось Y указывает значения журнала. Например, log (1) равен 0, как показано на графике функций LN.
Формула LN в Excel
Формула функции LN Excel выглядит следующим образом:
LN Formula имеет три аргумента, два из которых являются необязательными. Где,
Как использовать функцию LN в Excel?
Указанная функция является функцией рабочего листа (WS). Как функцию WS, функцию Excel LN можно ввести как часть формулы в ячейку рабочего листа. Обратитесь к примерам, приведенным ниже, чтобы лучше понять.
Пример # 1 — Дробное число
Пример # 2 — Нулевое число
В этом примере с ячейкой C4 связана формула LN. Итак, C4 — это ячейка результата. Первый аргумент LN — это B4, число, для которого необходимо вычислить журнал. Число равно 0, и логарифм 0 не может быть вычислен. Функция LN в Excel не принимает числовое значение как ноль, поэтому в ответ выдается ошибка. Ошибка # ЧИСЛО! что означает, что номер ошибочный.
Пример # 3 — Целое число
В этом примере с ячейкой C6 связана формула LN. Итак, C6 — это ячейка результата. Первый аргумент LN — это B6, число, для которого необходимо вычислить журнал. Число 5, а логарифм 5 — 1,609437912. Итак, значение в результирующей ячейке — 1,609437912.
Пример # 4 — Нечисловое значение
В этом примере с ячейкой C8 связана формула LN. Итак, C8 — это ячейка результата. Первым аргументом LN в excel является B8, число, для которого необходимо вычислить журнал. Число — «abc», и журнал нечисловых значений не может быть вычислен. Функция LN в Excel возвращает ошибку, если журнал не может быть рассчитан для такого значения. Ошибка #VALUE! что означает, что значение ошибочно.
Пример # 5 — Отрицательное число
То, что нужно запомнить
Excel VBA для аналогичной цели
VBA имеет отдельную встроенную функцию для вычисления функции натурального логарифма, то есть LOG. Его можно использовать следующим образом.
пример:
Давайте посмотрим на пример, приведенный ниже, для лучшего понимания.
logVal = LOG (5)
Здесь 5 — это число, для которого должна быть вычислена функция натурального логарифма. Лог (5) по основанию e равен 1.609437912. Итак, переменная logVal содержит значение 1.609437912.
Запись некоторых математических функций на языке VBA
Математическая запись | sinx | cosx | e x | |x| | tgx | arctgx | lnx | Öx |
Запись на VBA | Sin(x) | Cos(x) | Exp(x) | Abs(x) | Tan(x) | Atn(x) | Log(x) | Sqr(x) |
Для вычисления Log числа х по основанию n, следует разделить натуральный логарифм числа хна натуральный логарифм числа n:
Арифметические выражения. Это выражения, состоящие из констант, переменных, встроенных функций, соединенных знаками арифметических операций.
Арифметические операции задаются следующими символами: + (сложение), – (вычитание), * (умножение), / (деление), ^ (возведение в степень), \ – (целая часть от деления), Mod – (остаток от деления), а сами выражения записываются в одну строку.
Например, запись выражения:
на языке VBA будет выглядеть следующим образом:
Sin(3*x)+(Log(x-1)+Tan(x))/(x^3+Exp(x+3))^(1/4)
При вычислении арифметических выражений соблюдается следующий приоритет выполнения операций, сначала вычисляются встроенные функции; затем возведение в степень; умножение и деление; целая часть от деления; остаток от деления; сложение и вычитание. Изменить приоритет можно с помощью скобок.
Примерпроцедуры, запрашивающей имя (например, Иван) и выводящей в окно сообщений текст: «Сообщение пользователю Иван».
Private Sub CommandButton4_Click()
nUserName = InputBox(«Введите ваше имя?»)
MsgBox «Сообщение пользователю» & » » & nUserName
End Sub
Оператор присваивания. Этот оператор имеет следующий синтаксис: =
Пример записи оператора присваивания:
х = 5*a + log(a + 0.5)-a^3
Здесь символ «=» − это не знак равенства, а знак присваивания.
Ввод информации. Существует множество способов пользовательского ввода информации. Рассмотрим ввод с клавиатуры и ввод из ячеек рабочего листа Excel.
Ввод с клавиатуры осуществляется с помощью встроенной функции InputBox, которая при выполнении программы выводит на экран свое окно. Например, при выполнении строки программного кода: a = InputBox(«Введите фамилию») на экране появится диалоговое окно, в котором будет записан текст, заключенный в кавычки, а в полосе ввода значения будет мигать курсор (рис. 4.2). Нужно ввести запрашиваемое в окне значение и нажать клавишу ввода или щелкнуть мышью по кнопке Ок.
Рис. 4.2 − Окно диалогового ввода функции InputBox
При этом возвращаемое функцией InputBox значение имеет тип String. Поэтому для ввода значения числовой переменной в программе необходимо дополнительно преобразовать получаемое значение к числовому типу встроенной функцией Val. Например, для ввода значения числа 7.35 в переменную b необходимо записать следующую строку программного кода:
b = Val(InputBox(«Введите значение b»))
Ввод из ячейки рабочего листаExcelрассмотрим на примере. Если в ячейке A4 листа с именем Лист2 находится некоторое значение, то его можно ввести в переменную х, используя оператор присваивания:
x=Worksheets(«Лист2»).Range(«A4»)или
x=Worksheets(«Лист2»).Cells(4, 1)
где – Worksheets(«Лист2») – рабочий лист Excel с именем «Лист2», Range(«A4») – ячейка с именем А4, Cells(4, 1) – ячейка с номером строки – 4 и номером столбца – 1.
Вывод информации.Вывод результатов может осуществляться также различными способами, например, в окна сообщений или в ячейки рабочего листа Excel.
Вывод значений в окно сообщений можно осуществить с помощью функции MsgBox. Например, оператор MsgBox yвыводит в окно сообщений значение переменной y.
С помощью этой функции можно выводить и произвольные текстовые сообщения на экран, при этом выводимое сообщение должно быть заключено в кавычки. Например, в результате выполнения строки MsgBox(«Деление на нуль») на экране появится окно c текстом: Деление на нуль.
Число, выводимое в окно можно форматировать (указывать количество знаков до и после запятой). Для этого используется функция Format(x, «##.##»), где x переменная, ##.## – формат числа (указывает количество знаков до и после запятой).
Для вывода нескольких значений в одно текстовое окно используется операция конкатенации &, например:
MsgBox («Значение x=» & Format(x, «##.#»))
Вывод результатов в ячейки листаExcel рассмотрим на примере вывода значения переменной х в ячейку A4:
Worksheets(«Лист1»).Range(«A4») = xили
Worksheets(«Лист1»).Cells(4, 1) = x
Линейные программы
В линейных программах выполняются расчеты по формулам и другие действия, не требующие разветвления процессов и их повторов.
Оформим Лист2 согласно образцу на рис 4.3:
Рис. 4.3 − Образец оформления линейной программы на листе Excel
Для кнопки «Вычислить» напишем следующую процедуру: