Сгруппируем основные инструкции языка Visual Basic по типу операций:
присваивания, в том числе с выполнением математических операций в правой части инструкции;
проверки условий, управления последовательностью исполнения инструкций, организации циклов;
Последняя группа инструкций в этом кратком пособии не рассматривается. При необходимости с ними можно познакомиться самостоятельно [2, 4].
Инструкция присваивания предписывает найти значение выражения, заданного в её правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. Например, присвоить переменной x значение 2. Это можно записать: x = 2. В следующем примере значение переменной x увеличивается на 2: x = x + 2.
Рассмотрим математические операции, которые используются в выражениях, стоящих в правой части инструкций присваивания. Среди возможных операций можно выделить арифметические, конкатенации строк, сравнения и логические.
Арифметические операции бывают унарными и бинарными. К унарным относится операция изменения знака. Формат этой операции:
Арифметические операции выполняются над числами, и их результатом являются числа. Они перечислены в таблице 4. При программировании формул необходимо учитывать приоритеты операций и (в случае необходимости) использовать скобки, как это принято в математике.
Возводит первое арифметическое выражение в степень, задаваемую вторым арифметическим выражением.
Знак минус ставится перед именем переменной, константы или перед числом.
Округляет два арифметических выражения до целых значений и делит первое число на второе. Результат округляется до целого.
Округляет оба арифметических выражения до целых чисел, делит первое число на второе и возвращает в качестве результата остаток.
Вычитает из первого арифметического выражения второе
Рассмотрим две специфические операции, выполняющие деление целых чисел.
Операция a\b возвращает целую часть от деления целого числа а на целое число b. Например, 7\3 равно 2.
Операция a mod b возвращает остаток от деления целого числа а на целое число b. Например, 7 mod 3 равно 1. Если одно число делится на другое без остатка, операция mod возвращает значение 0. Например, 8 mod 2 равно 0.
Поясним таблицу 4. Смена знака имеет место, когда минус ставится перед именем переменной, константы или перед числом. Например: F=CX*(–G^2), если CX = 3, а G = 1.5, то F = –6.75. Чтобы убедиться в правильности результата, достаточно на листе Excel разместить кнопку CommandButton1 и поле TextBox1, а в событийную процедуру CommandButton1_Click включить инструкции:
Выйдя из режима конструктора и нажав кнопку, увидим в поле TextBox1 результаты.
Все результаты примеров легко проверить, подставляя в текст проведённой только что процедуры формулы вычисления I и F. Из этих примеров должно быть понятно, что результат арифметических операций зависит также от типа переменной, которой он присваивается, ведь переменная целого типа не может хранить число с плавающей точкой, поэтому перед записью в ячейку I результат округляется.
Приведённая выше процедура иллюстрирует и конкатенацию (&) – слияние строк. К строке «F=» прибавляется строка, содержащая отформатированное значение F (с двумя цифрами после десятичной точки). К этой объединённой строке добавляется «I=» и далее – превращенное в последовательность символов (в строку) число I.
Операции сравнения используют для сравнения чисел, значений переменных, констант, ячеек таблиц. Результат операции сравнения имеет тип Boolean и может принимать значение True или False (таблица 5).
В логических операциях (табл. 6) не только результат, но и операнды имеют тип Boolean.
Поясним назначение таких операций на простом примере. Пусть переменная типа Boolean с именем R должна принимать значение TRUE, если точка с координатами X,Y попадает в прямоугольную область, ограниченную координатами X1,X2 и Y1,Y2. Если точка за пределами прямоугольника, то R = FALSE. Применив логическую операцию AND (И), вычислим значение R:
Смысл этой операции в том, что если и первое выражение (X больше или равно X1) истинно, и второе, и третье, и четвертое истинно, то R = TRUE. Если один из операндов логической операции AND представляет собой ложное выражение (утверждение), то и результатом будет FALSE.
Кроме операции AND, к числу часто используемых логических операций относятся OR и NOT. Первая из них даёт результат TRUE, если истинно хотя бы одно выражение, являющееся операндом. Операция NOT изменяет результат на противоположный, подобно смене знака в арифметическом выражении. Вычислим R с помощью этих операций:
Выражение, стоящее в скобках после операции NOT, истинно (TRUE), если точка левее или правее, или ниже, или выше воображаемого прямоугольника, т. е. если точка в него не попала. В этом случае R будет иметь значение FALSE благодаря логическому отрицанию NOT.
Несколько реже используются логические операции XOR (исключающее ИЛИ), EQV (эквивалентность) и IMP (импликация). Первая из них даёт результат TRUE, если только одно из выражений-операндов имеет результат TRUE. Результатом операции EQV будет TRUE, если выражения–операнды дают одинаковый результат. Результатом IMP будет TRUE, если выражения–операнды дают разные результаты.
Иногда в программе нужно где-нибудь применить случайное число. Для этого в Бэйсике существует функция RND: она возвращает число между 0 (включительно) и 1 (исключительно), но какое именно – чистая случайность! Чтобы получить случайное значение между 0 и каким-нибудь другим числом, например между 0 и 256, случайное число можно просто умножить на это число: RND * 256 выдаст случайное число между 0 (включительно) и 256 (исключительно). Компьютер берёт случайные числа из, так сказать, одинаково рассортированных карт.
Часто используемые встроенные функции Visual Basic представлены в таблице 7.
Таблица 7 – Часто используемые встроенные функции Visual Basic