Как возвести в квадрат в vba
Перейти к содержимому

Как возвести в квадрат в vba

  • автор:

Арифметические операторы в VBA. Урок №21

Арифметические операторы в VBA принимают в качестве операндов числовые значения, выполняют с этими числами математические операции, в полном соответствии с правилами арифметики, и возвращают в качестве результата уже одно числовое значение.

В языке программирования VBA есть семь арифметических операторов.

Знаки арифметических операций VBA

Оператор Название Действие
+ Плюс Сложение
Минус Вычитание
* Звёздочка Умножение
/ Слэш или разделить Деление
\ Обратная косая черта Деление без остатка
^ Циркумфлекс Возведение в степень
mod Получение остатка от деления по модулю

Описывать назначение и применение первых четырёх знаков (+,-,*,/) нет никакого смысла. А вот остальные знаки, мы сейчас рассмотрим. А также обсудим некоторые особенности работы с арифметическими операторами в VBA.

Операция возведения в степень (знак ^) возводит значение первого операнда выражения в степень, равную значению второго операнда.

Например, если мы напишем 3 ^ 2, то это будет читаться как «три во второй степени» и результатом выполнения вычисления будет 9.

Пример кода операции возведения в степень

Операция деления без остатка (знак \) выполняет деление целых чисел, результатом которого всегда будет целое число. Например, при обычном делении 26 на 4, результатом будет 6,5. А если поделить 26 на 4 с использованием оператора деления без остатка, то результатом будет 6. То есть наша программа отбросит остаток и выведет в качестве результата только целое число.

Пример кода операции деления без остатка

Операция получения остатка от деления по модулю выполняет деление первого операнда на второй (числа с плавающей запятой при этом округляются до целого) и возвращает в качестве результата целочисленный остаток этого деления. Например, остатком от деления 26 на 4 будет 2 потому что 26=6*4+2.

Операнды, операции, выражения в VBA

Для выполнения вычислений и других манипуляций в VBA используются выражения. Выражение — это любая комбинация операндов или элементов данных (чисел, констант, переменных, функций и других операндов) и знаков операций.

Операнды (operands) в программировании — это объекты, над которыми выполняют определенные действия (операции).

Знаки операций — это символы, которые используют для соединения операндов в выражении.

Операции в VBA — это действия, которые производят над операндами. Знаки операций в выражении имеют свои приоритеты.

Выражения могут состоять из одного операнда, а могут состоять из комбинации операндов и знаков операций. Результатом вычисления выражения является значение, которое должно иметь допустимый в VBA тип данных.

Отметим, что в одном выражении нельзя использовать несовместимые типы данных.

Оператор — это наименьшая исполняемая единица программного кода VBA. Различают операторы выражения, операторы объявления, операторы присваивания, условные операторы и т.д. Операторы выражений — это процедуры или строка в тексте исполняемого кода программы. Операторы выражений выполняют какие-либо действия в программе.

Операции

К операциям, которые используются для записи выражений в VBA, относят:

  • операции присваивания;
  • математические операции;
  • логические операции;
  • операции сравнения (отношений);
  • операции для работы со строками (строковые операции).

Операция присваивания

Когда мы в программе объявляем переменную, происходит связывание имени этой переменной с областью памяти, в которой будет храниться ее значение, которое, в свою очередь, после объявления может оказаться произвольным. Возникает необходимость присвоения переменной нужного значения, для этого используем операцию присваивания, назначающую результат вычисления выражения переменной, константе или же свойству объекта. В операции присваивания всегда используют знак равенства =.

Синтаксис данной операции имеет вид:

  • Имя_Переменной – имя переменной (идентификатор);
  • Символ «=» – знак операции присваивания;
  • выражение – значение (число), комбинация переменных, констант, функций, связанных знаками операций.

Операция присваивания предписывает выполнить выражение, заданное в его правой части, и присвоить результат имени переменной, имя которой указано в левой части.

Для присваивания переменной ссылки на объект применяется инструкция Set. В общем случае инструкция Set имеет следующий синтаксис:

$Set objectvar = [New] objectexpression [Nothing]$

  • New– ключевое слово, которое используется при создании нового экземпляра объекта;
  • Nothing– позволяет освободить все системные ресурсы и ресурсы памяти, выделенные для объекта, на который имелась ссылка (т.е. она удаляет объект из памяти).

Математические операции

Математические операторы — это ничто иное, как инструкции, в которых используют математические операции.

В VBA используются следующие математические операции: сложение (+), вычитание (-), умножение (*), деление (/), деление без остатка (), остаток от деления по модулю (mod), возведение в степень (^).

При этом каждая операция имеет свой приоритет, или как его еще называют ранг. Операции 1 ранга будут иметь наивысший приоритет и в программном операторе выполнятся первыми. Операции одного ранга в выражениях выполняются согласно правил ассоциативности (слева направо или наоборот). Так операцией 1 ранга будет являться выражение, заключенное в скобки (), 2 приоритет имеет операция вызова функции, 3 – операция возведения в степень (^) и так далее, самый низший приоритет 12 имеет операция Or.

Оператор сложения (+)

С помощью этого оператора выполняют простое сложение. При этом оба операнда – это численные выражения или строки, которые можно преобразовать в число. Оператор сложения также используется при выполнении математических операций с данными типа Date.

Тип данных результата выражения сложения, как правило, такой же, как и наиболее точный тип в этом выражении. Но, встречаются и исключения:

  • при сложении типов Single и Long результатом станет тип Double;
  • при сложении типа Date с любым другим типом данных результат всегда будет иметь тип Date;
  • при превышении результатом диапазона типа Integer, его преобразуют в тип Long;
  • при превышении результатом типов Long, Single, Date, его преобразуют в тип Double;
  • если любой операнд в выражении сложения будет иметь тип Null, то и результат выражения сложения также будет иметь тип Null.

Оператор вычитания (-)

Данный оператор выполняет две задачи:

  • используется при вычитании одного числа из другого;
  • обозначает унарный минус (это знак минус, который помещается перед отрицательным числом).

Поместить унарный минус перед переменной или выражением означает то же, что умножить это число на -1. Оба операнда в выражении вычитания должны быть численными переменными (выражениями) или строковыми выражениями, которые можно преобразовать в число. Данный оператор можно использовать для работы с датами.

VBA использует те же правила для определения типа данных результата выражения вычитания, что и для выражений, использующих оператор сложения. Но, есть дополнение: если оба операнда в выражении являются типом Date, то результат выражения будет иметь тип Double.

Оператор умножения (*)

Данный оператор перемножает два числа – результатом выражения умножения является произведение двух операндов. Оба операнда в выражении умножения должны быть численными выражениями или строками, которые можно преобразовать в число.

VBA следует тем же правилам для определения типа данных результата выражения умножения, что и для выражений, использующих оператор сложения. В выражениях умножения все переменные Variant, которые содержат значения типа Date, преобразуются в численные значения.

Оператор деления (/)

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

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

Типом данных операции деления с плавающей точкой является Double, за исключением случаев, когда:

  • оба операнда в выражении деления имеют типы Integer или Single – результат будет иметь тип Single;
  • результат выражения не переполняет диапазон значений для типа Single.

Целочисленное деление ()

Целочисленное деление отличается от деления с плавающей точкой тем, что его результатами всегда являются целые числа без дробной части, численными выражениями или строки, которые можно преобразовать в число. Перед выполнением операции целочисленного деления каждый операнд округляется до числа типа Integer или Long. VBA отбрасывает (но не округляет!) любой дробный остаток результата выражения целочисленного деления. Например, выражения 22\5 и 24\5 будут иметь один и тот же результат = 4. Если хотя бы один операнд в выражении целочисленного деления имеет тип Null, то результат деления также будет иметь тип Null.

Деление по модулю (Mod)

Деление по модулю как бы дополняет целочисленное деление. В делении по модулю выражение возвращает только остаток операции деления как целое. 22 Mod 5 = 4 24 Mod 5 = 8 25 Mod 5 = 0

Остальные свойства деления по модулю идентичны целочисленному делению.

Возведение в степень (^)

Оператор возведения в степень возводит число в степень.

Оба операнда в выражении возведения в степень должны быть численными выражениями или строками, которые можно преобразовать в числа. Операнд слева от оператора возведения в степень может быть отрицательным числом только, если операнд справа является целым.

Результат выражения имеет тип Double. Если хотя бы один операнд в выражении имеет тип Null, то результат возведения в степень также будет иметь тип Null.

Логические операции

Логические операции используются в логических выражениях. Если существует несколько условий выбора в операциях отношения, то эти операции связываются между собой логическими операциями.

Логические выражения имеют значение типа Boolean, которое принимает одно из двух логических значений: True (1) или False (0). При выполнении логических операций логическим переменным присваивается результат вычислений, указанный в правой части операторов. К логическим операциям относятся: and, or, nod, xor, eqv, imp (логическое и, или, нет, логическое исключающее или, логическая эквивалентность, логическая импликация). Например,

(9 > 8) Or (2 > 5). Результат является True (истина), так как одно из условий является True.

Операции сравнения (отношений)

В отличие от математических операций, результатом выполнения которых может быть любое значение, операция отношения может иметь только два результирующих значения – True (Истина) и False (Ложь), которые могут быть присвоены переменным типа Boolean или определенному свойству объекта. Операции отношения применяются для записи выражений условия, результатом выполнения которых являются значения True(Истина) или False(Ложь).

В операторах могут применяться с определенным синтаксисом следующие знаки операций сравнения: равенство (=), больше чем ( > ) и меньше чем (=) и меньше или равно ( > =) и меньше или равно ( > =) и меньше или равно.

Арифметические операции в VBA: сложение, вычитание, умножение, деление и возведение в степень

Подробно рассмотрим то, как VBA выполняет такие арифметические операции, как сложение, вычитание, умножение, деление и возведение в степень, а также особые операции, такие как целочисленное деление и деление по модулю. Ниже, в таблице, представлены знаки операций, используемые при написании арифметических VBA-выражений.

Арифметические операции в VBA: сложение, вычитание, умножение, деление и возведение в степень

Выражение — это значение либо группа значений, выражающая отдельное значение. Результат выражения — одно значение определенного типа данных. Знаки (обозначения) операций используются для действий над определенными значениями в выражениях. Для присваивания результата выражения переменной используется оператор присваивания (=), который сохраняет любое значение, представленное выражением справа от оператора присваивания в ячейке памяти, на которую ссылается переменная слева от этого оператора.

Во всех операциях приведенных ниже, оба операнда должны быть численными выражениями или строками, которые VBA может преобразовать в число.

Сложение

Знак (+) используется для выполнения операции сложения. Слагаемые должны быть численными выражениями, строками, которые VBA может преобразовать в числа либо датами, с которыми также возможны арифметические действия.

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

Вычитание

Знак (-) используется для выполнения операции вычитания, а также для обозначения отрицательных чисел (когда ставится перед переменной или выражением и означает тоже самое, что и умножение на -1). Знак минуса, который помещают перед числом для обозначения того, что число отрицательное, называют унарным минусом.

Для определения типа данных результата выражения вычитания VBA следует тем же правилам, что и для выражений, использующих знак операции сложения, но имеются два дополнительные правила.

Правило 1. Если в выражении вычитания один из операндов является типом Date, то и результат выражения будет иметь тип Date.

Правило 2. Если в выражении вычитания оба операнда являются типом Date, то результат выражения будет иметь тип Double.

Умножение

Знак (*) используется для выполнения операции умножения, результатом этой операции является произведение операндов. Для определения типа данных результата выражения умножения VBA использует те же правила, что и для выражений, использующих сложение. В выражениях умножения все переменные Variant, содержащие значения типа Date, преобразуются в численные значения.

Деление

Знак (/) используется для выполнения операции деления, этот знак называют знаком деления действительных чисел. В выражениях деления один операнд делится на другой, а результатом деления является частное.

Если любой операнд в выражении деления имеет значение Null, то результатом выражения также будет Null. Тип данных в выражениях деления действительных чисел обычно Double, но есть и исключение.

Если в выражении деления оба операнда имеют тип Integer или Single, то результат выражения деления имеет тип Single. Если результат переполняет диапазон для типа Single, то VBA преобразует его в тип Double.

Целочисленное деление

Знак (\) используется для выполнения операции целочисленного деления, при котором результатом деления всегда является целое число без дробной части. VBA не округляет частное целочисленного деления, а просто укорачивает его до целого числа, отбрасывая дробную часть.

Тип данных результата выражения целочисленного деления — либо Integer, либо Long. VBA использует наименьший тип данных, который соответствует результату выражения.

Деление по модулю

Знак (Mod) используется для выполнения операции деления по модулю. При делении по модулю выражение возвращает только остаток от деления как целое.

Доступное для понимания объяснение этой математической операции приведено на одном из форумов программистов. Приведу цитату оттуда: «представь, что есть полная 50л канистра и 3л банка. И ты начинаешь вычерпывать из канистры банкой воду (набирать можно только полную банку). 48л вычерпал, осталось 2 литра. Это и есть остаток от деления 50 на 3 по модулю.» Другими словами 50 Mod 3 возвращает 2.

Тип данных результата выражения деления по модулю — это Integer или Long. VBA использует наименьший тип, который подходит для результата выражения.

Возведение в степень

Знак (^) используется для выполнения операции возведения в степень числа или выражения. Показатель степени показывает, сколько раз число или выражение должно быть умножено на само себя.

Visual Basic 2015 Lesson 11: Performing Arithmetic Operations

In Visual Basic 2015, we can write code to instruct the computer to perform mathematical calculations such as addition, subtraction, multiplication, division and other kinds of arithmetic operations. In order for Visual Basic 2015 to perform arithmetic calculations, we need to write code that involves the use of various arithmetic operators. Visual Basic 2015 arithmetic operators are very similar to the normal arithmetic operators, only with some slight variations. The plus and minus operators are the same while the multiplication operator uses the * symbol and the division operator use the / symbol.

The list of Visual Basic 2015 arithmetic l operators are shown in Table 11.1 below:

Table 11.1 Arithmetic Operators

Operator Mathematical Function Example
+ Addition 1+2=3
Subtraction 10-4=6
^ Exponential 3^2=9
* Multiplication 5*6=30
/ Division 21/7=3
Mod Modulus(returns the remainder of an integer division) 15 Mod 4=3
\ Integer Division(discards the decimal places) 19/4=4

Example 11.1

In this program, you insert two text boxes, four labels, and one button. In the properties windows, change the name of the button to BtnCal, the names of text boxes to TxtNum1 and TxtNum2 and change the names of labels to LblSum, LblDiff, LblPdct and LblQuo respectively. Click the button and enter the code window and type the Visual Basic 2015 code as shown below.

num1 = TxtNum1.Text num2 = TxtNum2.Text sum=num1+num2 difference=num1-num2 product = num1 * num2 quotient=num1/num2 LblSum.Text=sum LblDiff.Text=difference LblPdct.Text = product LblQuo.Text = quotient

vb2015_fig11.1

Upon running the program, the user may enter two numbers and click on the calculate button to perform the four basic arithmetic operations. The results will be displayed the on the four labels, as shown in Figure 11.1

Figure 11.1

Example 11.2: Pythagoras Theorem

This program involves the use of Pythagoras Theorem to calculate the length of hypotenuse c given the length of the adjacent side a and the length of the opposite side b. In case you have forgotten the formula for the Pythagoras Theorem, it is written as c^2=a^2+b^2 in Visual Basic 2015. In this program, insert two text boxes for the user to enter the value of side a and the value of side b respectively. Add a label to display the result, which is the length of the hypotenuse. Lastly, add a button and change its name to BtnCal and it text to Calculate. Click on the Calculate button and enter the following code.

* The first part of the code is to draw a triangle at runtime. You shall learn how to write code to draw a triangle in a later lesson. The output is shown in Figure 11.2

vb2015_fig11.2

Figure 11.2

Example 11.3: BMI Calculator

A lot of people are obese now and it could affect their health seriously. Obesity has proven by the medical experts to be one of the main factors that bring many adverse medical problems, including the cardiovascular disease. If your BMI is more than 30, you are considered obese. You can refer to the following range of BMI values for your weight status.

Underweight = <18.5
Normal weight = 18.5-24.9
Overweight = 25-29.9
Obesity = BMI of 30 or greater

In order to calculate your BMI, you do not have to consult your doctor, you can simply use a calculator or a homemade computer program, this is exactly what I am showing you here. This BMI calculator is a Visual Basic 2015 program that can calculate the body mass index or BMI of a person based on the body weight in kilogram and the body height in meter. BMI can be calculated using the formula weight/( height )^2, where weight is measured in kg and height in meter. If you only know your weight and height in lb and feet, then you need to convert them to the metric system. The code is shown below:

The output is shown in the Figure 11.3 below. In this example, your height is 1.80m( about 5 foot 11), your weight is 75 kg( about 168Ib), and your BMI is about 23.14815. The reading suggests that you are healthy. (Note; 1 foot=0.3048, 1 lb=.45359237 kilogram)

Figure 11.3

From the above examples, you can see that writing code that involves arithmetic operations is relatively easy. Here are more arithmetic projects you work on in Visual Basic 2015:

Area of a triangle
Area of a rectangle
Area of a circle
Volume of a cylinder
Volume of a cone
Volume of a sphere
Compound interest
Future value
Mean
Variance
Sum of angles in polygons
Conversion of lb to kg
Conversion of Fahrenheit to Celsius
Conversion of mile to km
Conversion of meter to foot

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *