Математические Функции языка Visual Basic
Дата добавления: 2013-12-24 ; просмотров: 30515 ; Нарушение авторских прав
Занятие 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 квадратный корень
Функция Excel VBA Square Root
В этой статье мы увидим схему Excel VBA Square Root. Каждый раз, работая в Excel, вы должны использовать функцию SQRT, которая дает квадратный корень любого целого числа в результате. Можно ли захватить квадратный корень из числа под VBA? Ну, ответ, конечно, да! Вы можете получить квадратный корень любого положительного числа через VBA, используя функцию VBA SQR. Эта функция является встроенной функцией VBA и может использоваться для любого положительного целого числа, чтобы получить ее квадратный корень. Ну, эта функция очень похожа на ту, которую мы используем в качестве функции электронной таблицы SQRT, а также принимаем тот же единственный аргумент «Число», который должен быть положительным. Мы также не можем получить квадратные корни мнимых чисел, и ввод отрицательных значений бесполезен, потому что нет никакого способа, которым можно получить отрицательное квадратное значение числа.
Синтаксис:
Синтаксис функции квадратного корня VBA довольно прост и похож на синтаксис функции SQRT электронной таблицы.
Как использовать функцию квадратного корня в Excel VBA?
Ниже приведены различные примеры использования функции квадратного корня в Excel VBA.
Выполните следующие действия, чтобы увидеть, как именно работает функция VBA SQR.
Шаг 1. Откройте вкладку « Разработчик » и щелкните значок Visual Basic (ALT + F11).
Шаг 2: Откройте модуль на вкладке меню «Вставка», как показано ниже.
Шаг 3: Определите новую подпроцедуру, которая может содержать макрос под вновь вставленным модулем.
Шаг 4: Используйте оператор присваивания, чтобы присвоить значение функции квадратного корня VBA переменной с именем « sqr_root », чтобы мы могли напечатать результат и посмотреть, работает ли он нормально.
Шаг 5: Используйте функцию MsgBox, чтобы мы могли напечатать результат в виде окна сообщения, которое появится, как только мы запустим код.
Шаг 6: Запустите этот код, нажав F5 или кнопку Run, расположенную на самой верхней панели.
Как только вы запустите этот код, вы должны увидеть вывод, как показано ниже.
Давайте углубимся в функцию SQR VBA и попытаемся выяснить несколько разных случаев.
Шаг 1: Определите подпроцедуру, которая может содержать ваши макросы.
Шаг 2: Нам нужно определить две новые переменные как целое число. Один для хранения значения, для которого мы хотим получить квадратный корень. Другая переменная будет для хранения результата квадратного корня после того, как мы применим функцию SQR.
Шаг 3: Присвойте значение как 87 переменной square_num, используя оператор присваивания (‘=’). Это число, для которого мы хотели получить значение квадратного корня.
Шаг 5: Используйте свойство MsgBox, чтобы показать значение квадратного корня в виде сообщения, которое появляется, как только вы запускаете код.
Шаг 6: Запустите этот код, нажав кнопку F5 или Run, расположенную на самой верхней ленте VBE.
Шаг 7: Смотрите вывод в окне сообщения, как показано ниже:
Однако это не фактическое значение квадратного корня для числа 87. Это значение квадратного корня для числа 81. Почему в мире VBA дает неправильный вывод для функции SQR?
Ну, с VBA все в порядке. Если что-то не так, это идеально подходит для нашего кода.
Поскольку мы определили переменные как целые числа, мы ограничиваем VBA, чтобы давать квадратные корни только тех чисел, которые являются целыми квадратными числами (например, 4, 9, 16, 25 и т. Д.). Если какое-либо число не является целым квадратом, функция SQR VBA вместо выдачи ошибки выдает значение квадратного корня для числа, близкого к текущему числу. Здесь 87 имеет 81 как ближайшее целое квадратное число. Таким образом, вы получаете вывод как 9.
Шаг 8: Давайте посмотрим, что происходит, когда мы настраиваем код, определяя переменную square_root как Double вместо Integer.
Шаг 9: Вы увидите, что система теперь может зафиксировать фактическое значение квадратного корня для числа 87.
То, что нужно запомнить
Рекомендуемые статьи
Урок № 15. Сводим всё вместе
Программу будем писать согласно этим пунктам:
1. Продумывание программы.
Чтобы решить такое уравнение, нужно найти его дискриминант и затем, корни. Дискрименант ищется по формуле:
Если дискриминант > 0, то
Если дискриминант = 0, то
Если дискриминант Назначение элемента управления
Остальные элементы переименовывать не обязательно, т.к. мы к ним не будем обращаться в коде программы. Но, если хотите, можете переименовать. Приучайтесь к этому.
Интерфейс готов. Он конечно не претендует на звание самого удобного и красивого интерфейса года ;), но для начала сойдёт. Всё равно, в дальнейшем, уже после написания кода программы, вы сможете изменить интерфейс по вашему вкусу.
3. Написание программного кода.
Теперь самое интересное! Мы будет писать код для нашей программы! Давайте ещё раз продумаем алгоритм работы программы:
Надеюсь, что вы уловили мою мысль. Если нет, то не отчаивайтесь, далее всё станет понятно.
Private Sub cmdCalculate_Click()
Чтобы создать обработчик для другого события, необходимо выбрать событие в правом списке в окне кода:
В списке довольно много различных событий. В левом списке вы можете выбрать доступные элементы управления, которые помещены на форму. В данном случае в списке вы видите cmdCalculate. Очень удобно.
Так же, как и некоторое свойства элементов управления, события тоже повторяются. Например, событие Click. Оно есть и у элемента кнопки (Command Button), и у элемента метки (Label) и у многих других. Есть оно и у формы. Это очень облегчает процесс программирования. Не нужно тратить много времени на изучение каждого элемента управления, т.к. многое повторяется.
Заметьте также, что у процедуры обработки события Click нет входных параметров, о чём нам говорят пустые скобки. Добавить свои параметры в эту процедуру нельзя. У процедур обработки некоторых других событий могут быть параметры. Например, у события MouseMove (координаты курсора мыши) или KeyUp (код отжатой клавиши). Эти параметры передаются незаметно для программиста, и их можно использовать по своему усмотрению (а можно и вовсе не использовать).
Теперь давайте приступим непосредственно к программированию. Для начала объявим переменные с типом Double (для хранения вещественных чисел):
Private Sub cmdCalculate_Click()
    ’ объявляем переменные
     Dim paramA As Double
    Dim paramB As Double
    Dim paramC As Double
    Dim x1 As Double
    Dim x2 As Double
    Dim D As Double
End Sub
Теперь считаем введённые параметры a, b и с. Для этого присвоим переменным paramA, paramB и paramC значения свойства Text всех 3-х полей для ввода (TextBox’ов). Мы можем это сделать потому, что Visual Basic сам преобразует число в виде строки в обычное число с плавающей точкой.
paramA = txtParamA.Text
paramB = txtParamB.Text
paramC = txtParamC.Text
Доступ к свойству любого элемента управления осуществляется через точку, которая разделяет имя свойства и имя элемента. Обратите внимание на технологию Intellisence. Visual Basic выдает список доступных свойств этого элемента управления. Это очень удобно. Вам не придётся выучивать наизусть длинные и сложные названия свойств. Достаточно выбрать нужное свойство из списка и всё.
Теперь нам нужно рассчитать дискриминант. Для этого присвоим переменной D, которая будет хранить значение дискриминанта, следующее выражение:
Скобки я поставил для наглядности. Ставить их в данном случае не обязательно, т.к. умножение всё равно выполниться до вычитания. (вспомните, что умножение имеет больший приоритет, чем вычитание).
Теперь, зная значение дискриминанта, нужно сравнить его с нулём. Если он больше нуля, то вычислить оба корня, если равен нулю, то вычислить один корень, ну а если меньше, то ничего не вычислять и выдать сообщение о том, что корней нет. Такое ветвление мы организуем с помощью оператора If:
Не забывайте про отступы! С ними код намного нагляднее.
Теперь всё в порядке! Программа работает! Можете поэкперементировать, вводя разные значения коэффициентов.
Арифметические операторы в Visual Basic
Арифметические операторы используются для выполнения многих знакомых арифметических операций, использующих вычисление числовых значений, представленных литералами, переменными, другими выражениями, вызовами функций и свойств и констант. Кроме того, классификация с помощью арифметических операторов — это операторы сдвига в битах, которые действуют на уровне отдельных битов операндов и сдвигаются их битовые шаблоны влево или вправо.
Арифметические операции
можно добавить два значения в выражение вместе с оператором +или вычесть одно из другого с помощью оператора-operator (Visual Basic), как показано в следующем примере.
отрицание также использует оператор-Operator (Visual Basic), но только с одним операндом, как показано в следующем примере.
при умножении и разделении используются оператор * и оператор (Visual Basic)соответственно, как показано в следующем примере.
В возведение в степень используется оператор ^, как показано в следующем примере.
Арифметическая операция деления выполняется с помощью оператора MOD. Этот оператор возвращает остаток от деления делителя на делимое на целое число раз. Если и делитель, и делим являются целочисленными типами, возвращаемое значение является целочисленным. Если делитель и делимые являются типами с плавающей запятой, возвращаемое значение также будет плавающей запятой. Следующий пример демонстрирует эту ситуацию.
Попыток деления на ноль
Арифметические сдвиги не являются циклическими, то есть биты, сдвинутые за пределы результата, не переносятся на другой конец. Позиции битов, освобожденные сдвигом, устанавливаются следующим образом:
0 для арифметического сдвига влево
0 для арифметического сдвига вправо положительного числа
В следующем примере Integer значение сдвигается влево и вправо.
Арифметические сдвиги никогда не создают исключений переполнения.
Битовые операции
В дополнение к логическим операторам. Not Or And и Xor также выполняют побитовую арифметическую операцию при использовании числовых значений. Дополнительные сведения см. в разделе «битовые операции» в логических и побитовых операторах в Visual Basic.