- •Минобрнауки россии
- •Оглавление
- •Введение
- •1. Лабораторная работа № 1
- •1.1. Создание интерфейса пользователя
- •1.1.1. Основные понятия
- •1.1.2. Редактор vba
- •1.2. Работа с переменными, массивами, константами
- •1.2.1. Основные инструкции языка Visual Basic
- •1.2.3. Создание интерфейса пользователя
- •1.2.4. Окно свойств
- •1.2.4. Меню Edit
- •1.2.5. Меню View
- •1.2.6. Меню Format
- •1.3.1. Пользовательские формы
- •1.3.2. Свойства объекта UserForm
- •1.3.3. Методы объекта UserForm
- •1.3.4. События объекта UserForm
- •1.4. Контрольные вопросы
- •2. Лабораторная работа № 2
- •2.1. Элементы управления
- •2.1.1. Свойства элементов управления
- •2.1.2. Методы и события элементов управления
- •2.2. Командная кнопкаCommandButton
- •2.3. Элемент управления надписью (метка)Label
- •2.4. Текстовое окно (поле ввода)TextBox
- •2.5. Контрольные вопросы
- •3. Лабораторная работа № 3
- •3.1. Алгоритм. Способы записи алгоритма
- •3.1.1. Структуры алгоритмов
- •3.1.2. Линейная структура алгоритма
- •3.3. Полоса прокрутки
- •3.4. Задания для выполнения
- •Контрольные вопросы
- •4. Лабораторная работа № 4
- •4.1. Разветвляющаяся структура алгоритма
- •4.1.1. Условный оператор if
- •4.1.2. Оператор выбора Select Case
- •4.1.3. Оператор выбора GoTo
- •4.2. Задания для выполнения
- •4.3. Контрольные вопросы
- •5. Лабораторная работа № 5
- •5.1. Циклические структуры алгоритмов
- •5.1.1. Фиксированные циклы
- •5.2. Элемент управления ListBox (список)
- •5.3. Поле со списком
- •5.4. Задания для выполнения
- •5.5. Контрольные вопросы
- •6. Лабораторная работа № 6
- •6.1. Циклы с условием (неопределённые циклы)
- •6.2. Элемент управления Рамка
- •6.3. Элементы управления Флажок и Переключатель
- •6.4. Задания для выполнения
- •6.5. Контрольные вопросы
- •7. Лабораторная работа № 7
- •7.1. Массивы
- •7.1.1. Объявление массивов
- •7.1.2. Объявление массива фиксированного размера
- •7.1.3. Объявление динамического массива
- •7.2. Задания для выполнения
- •7.3. Контрольные вопросы
- •8. Лабораторная работа №8
- •8.1. Работа с матрицами
- •Задания для выполнения
- •8.3. Контрольные вопросы
- •9. Лабораторная работа №9
- •9.1.Список и его составные элементы
- •9.2. Формирование списка
- •9.3. Задания на выполнения
- •10. Задания для самостоятельной работы
- •Приложение
- •Библиографический список
- •Лабораторный
1.2.1. Основные инструкции языка Visual Basic
Сгруппируем основные инструкции языка Visual Basic по типу операций:
присваивания, в том числе с выполнением математических операций в правой части инструкции;
проверки условий, управления последовательностью исполнения инструкций, организации циклов;
инструкции для работы с файлами.
Последняя группа инструкций в этом кратком пособии не рассматривается. При необходимости с ними можно познакомиться самостоятельно [2, 4].
Инструкция присваивания предписывает найти значение выражения, заданного в её правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. Например, присвоить переменной x значение 2. Это можно записать: x = 2. В следующем примере значение переменной x увеличивается на 2: x = x + 2.
Рассмотрим математические операции, которые используются в выражениях, стоящих в правой части инструкций присваивания. Среди возможных операций можно выделить арифметические, конкатенации строк, сравнения и логические.
Арифметические операции бывают унарными и бинарными. К унарным относится операция изменения знака. Формат этой операции:
– <переменная>
Арифметические операции выполняются над числами, и их результатом являются числа. Они перечислены в таблице 4. При программировании формул необходимо учитывать приоритеты операций и (в случае необходимости) использовать скобки, как это принято в математике.
Таблица 4 – Арифметические операции
Операция |
Содержание операции |
Приоритет |
^ |
Возводит первое арифметическое выражение в степень, задаваемую вторым арифметическим выражением. |
1 |
– |
Знак минус ставится перед именем переменной, константы или перед числом. |
2 |
* |
Перемножает два арифметических выражения. |
3 |
/ |
Делит первое арифметическое выражение на второе. |
3 |
\ |
Округляет два арифметических выражения до целых значений и делит первое число на второе. Результат округляется до целого. |
4 |
Mod |
Округляет оба арифметических выражения до целых чисел, делит первое число на второе и возвращает в качестве результата остаток. |
5 |
+ |
Складывает два арифметических выражения. |
6 |
– |
Вычитает из первого арифметического выражения второе |
6 |
Рассмотрим две специфические операции, выполняющие деление целых чисел.
Операция 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 включить инструкции:
Dim I As Integer, F As Single
F = 3 * (–1.5 ^ 2)
I = 3 * (–1.5 ^ 2)
TextBox1.Text = "F=" & Format(F, "0.00") & "I=" & Str(I).
Выйдя из режима конструктора и нажав кнопку, увидим в поле TextBox1 результаты.
Все результаты примеров легко проверить, подставляя в текст проведённой только что процедуры формулы вычисления I и F. Из этих примеров должно быть понятно, что результат арифметических операций зависит также от типа переменной, которой он присваивается, ведь переменная целого типа не может хранить число с плавающей точкой, поэтому перед записью в ячейку I результат округляется.
Приведённая выше процедура иллюстрирует и конкатенацию (&) – слияние строк. К строке «F=» прибавляется строка, содержащая отформатированное значение F (с двумя цифрами после десятичной точки). К этой объединённой строке добавляется «I=» и далее – превращенное в последовательность символов (в строку) число I.
Операции сравнения используют для сравнения чисел, значений переменных, констант, ячеек таблиц. Результат операции сравнения имеет тип Boolean и может принимать значение True или False (таблица 5).
Таблица 5 – Операции сравнения
Операция |
Наименование |
Пример (R имеет тип Boolean) |
Результат |
= |
Равно |
R = (10=5) |
False |
> |
Больше |
R = 10>5 |
True |
< |
Меньше |
R = 10<5 |
False |
>= |
Больше или равно |
R = “a” >= “b” |
False |
<= |
Меньше или равно |
R = “a” <= “b” |
True |
<> |
Не равно |
R = “a” <> “b” |
True |
В логических операциях (табл. 6) не только результат, но и операнды имеют тип Boolean.
Таблица 6 – Логические операции
Операция |
Наименование |
And |
Логическое умножение |
Or |
Логическое сложение |
Xor |
Исключающее Or (или) |
Not |
Логическое отрицание |
Поясним назначение таких операций на простом примере. Пусть переменная типа Boolean с именем R должна принимать значение TRUE, если точка с координатами X,Y попадает в прямоугольную область, ограниченную координатами X1,X2 и Y1,Y2. Если точка за пределами прямоугольника, то R = FALSE. Применив логическую операцию AND (И), вычислим значение R:
R = (X>=X1) AND (X<=X2) AND (Y>=Y1) AND (Y<=Y2).
Смысл этой операции в том, что если и первое выражение (X больше или равно X1) истинно, и второе, и третье, и четвертое истинно, то R = TRUE. Если один из операндов логической операции AND представляет собой ложное выражение (утверждение), то и результатом будет FALSE.
Кроме операции AND, к числу часто используемых логических операций относятся OR и NOT. Первая из них даёт результат TRUE, если истинно хотя бы одно выражение, являющееся операндом. Операция NOT изменяет результат на противоположный, подобно смене знака в арифметическом выражении. Вычислим R с помощью этих операций:
R = NOT ((X<X1) OR (X>X2) OR (Y<Y1) OR (Y>Y2)).
Выражение, стоящее в скобках после операции NOT, истинно (TRUE), если точка левее или правее, или ниже, или выше воображаемого прямоугольника, т. е. если точка в него не попала. В этом случае R будет иметь значение FALSE благодаря логическому отрицанию NOT.
Несколько реже используются логические операции XOR (исключающее ИЛИ), EQV (эквивалентность) и IMP (импликация). Первая из них даёт результат TRUE, если только одно из выражений-операндов имеет результат TRUE. Результатом операции EQV будет TRUE, если выражения–операнды дают одинаковый результат. Результатом IMP будет TRUE, если выражения–операнды дают разные результаты.
Генератор случайных чисел (Randomize, RND).
Иногда в программе нужно где-нибудь применить случайное число. Для этого в Бэйсике существует функция RND: она возвращает число между 0 (включительно) и 1 (исключительно), но какое именно – чистая случайность! Чтобы получить случайное значение между 0 и каким-нибудь другим числом, например между 0 и 256, случайное число можно просто умножить на это число: RND * 256 выдаст случайное число между 0 (включительно) и 256 (исключительно). Компьютер берёт случайные числа из, так сказать, одинаково рассортированных карт.
Часто используемые встроенные функции Visual Basic представлены в таблице 7.
Таблица 7 – Часто используемые встроенные функции Visual Basic
Функция |
Содержание арифметической функции |
1 |
2 |
Abs(x) |
Возвращает значение, тип которого совпадает с типом переданного аргумента Х, равное абсолютному значению указанного числа. Например: abs(4-6) вернёт в качестве результата значение 2 |
Atn(x) |
Возвращает значение типа Double, содержащее арктангенс числа Х |
Cos(x) |
Возвращает значение типа Double, содержащее косинус угла Х |
Exp(x) |
Возвращает значение типа Double, содержащее результат возведения числа е (основание натуральных логарифмов) в указанную степень |
Fix(x) |
Возвращает значение типа, совпадающего с типом аргумента, которое содержит целую часть числа, ближайшее отрицательное целое число, большее либо равное указанному Х |
Int(x) |
Возвращает значение типа, совпадающего с типом аргумента, которое содержит целую часть числа, ближайшее отрицательное целое число, меньшее либо равное указанному Х |
Log(x) |
Возвращает значение типа Double, содержащее натуральный логарифм числа Х |
Rnd(x) |
Возвращает значение типа Single, содержащее случайное число |
Sgn(x) |
Возвращает значение типа Variant(Integer), соответствующее знаку указанного числа. Обязательный аргумент: число Х может представлять любое допустимое числовое выражение. Возвращаемое значение: Х > 0, тоSgn(x) возвращает 1; если Х равняется нулю, то 0; еслиX< 0, то –1 |
Sin(x) |
Возвращает значение типа Double, содержащее синус угла Х |
Sqr(x) |
Возвращает значение типа Double, содержащее квадратный корень указанногочисла |
Tan(x) |
Возвращает значение типа Double, содержащее тангенс угла Х |
Строковые |
LCASE( ) – преобразование строки в строчные буквы |
UCASE( ) – преобразование строки в заглавные буквы | |
LEN( ) – определение длины строки и др. | |
INSTR( ) – позиция первой встречи одной строки внутри другой | |
Даты и времени |
DATE( ) – текущая дата |
TIME( ) – текущее время | |
NOW( ) – текущая дата и время | |
DAY( ) – номер дня года и другие |
Окончание табл. 7
1 |
2 |
Преобразования типов данных |
CINT( ) – действительного числа в целое (с округлением) |
CSTR( ) – числа в строку символов | |
CVAR( ) – преобразование в тип данныхVARIANT | |
FORMAT( ) – форматирование данных, формирование строк | |
VAL( ) – преобразование строки символов в число и др. |
Логарифм по любому основаниюn для любого числа х можно вычислять, деля натуральный логарифм числа х на натуральный логарифм числа n, следующим образом: .
Старшинство операций:
1) вычисление функций;
2) унарный минус, возведение в степень;
3) *, /, \, mod;
4) +, – .