- •Тема: «Переменные и константы»
- •Переменные
- •1.1. Имя переменной
- •1.2. Типы данных для переменных vb
- •1.3. Присвоение значений переменным
- •1.4. Объявление переменных
- •1.5. Необходимость объявления переменных
- •Dim a As Integer
- •Static a As Integer
- •Константы
- •1.6. Доступность
- •1.7. Время жизни переменных
- •2.1. Объявление констант
- •2.2. Встроенные константы Visual Basic
- •3. Арифметические операции и операции конкатенации
- •3.1. Арифметические операции
- •3.2. Операции конкатенации
- •4. Функции, используемые при работе с данными
- •4.1. Функции Val(string), Str(number)
- •4.2. Функции преобразования типов данных
- •5. Упражнения
- •6. Задания для самостоятельного выполнения
- •7. Контрольные вопросы
4. Функции, используемые при работе с данными
4.1. Функции Val(string), Str(number)
Часто возникает необходимость преобразовать числовой тип в тип String и наоборот, например, при вводе чисел в текстовое поле. Для этого используются функции Val(string) и Str(number).
Функция Val(string) возвращает числовое значение, изображением которого является строка. Если в строке есть недопустимые символы, то будет обработана только часть строки, которую можно преобразовать в число. Пробелы игнорируются. При обработке строки, являющейся изображением дробного числа, правильным символом-разделителем является точка. Если строку преобразовать в число нельзя, то значение функции Val равно нулю.
Примеры.
Val(" 123 45") = 12345;
Val("123,45") = 123;
Val("123.45")= 123.45;
Val("123dfg45a")= 123;
Val("Текст") = 0.
Функция Str(number) преобразует числовое выражение в тип String, являющийся строковым представлением числа. В качестве допустимого десятичного разделителя функция Str воспринимает только точку. При наличии другого десятичного разделителя (например, запятой) для преобразования чисел в строки следует использовать функцию CStr.
4.2. Функции преобразования типов данных
Если переданное в функцию значение аргумента, например, находится вне допустимого диапазона, то возникает ошибка. Чтобы избежать такого рода ошибок используют функции преобразования типов, в таблице 3.3 даны некоторые из них.
Таблица 3.3. Некоторые функции преобразования типов данных
Функция |
Диапазон аргумента выражения |
Возвращаемый тип |
CCur(выражение) |
от -922 337 203 685 477,5808 до 922 337 203 685 477,5807 |
Currency |
CLng(выражение) |
от -2 147 483 648 до 2 147 483 647 с округлением дробной части |
Long |
CSng(выражение) |
от -3,4028231038 до -1,40129810-45 для отрицательных чисел, от 1,40129810-45 до 3,4028231038 для положительных чисел |
Single |
CVar(выражение) |
Диапазон значений Double для числовых значений. Диапазон значений String для нечисловых значений |
Variant |
CStr(выражение) |
Возвращаемые значения функции CStr зависят от аргумента выражения |
String |
5. Упражнения
Упражнение 1
Создадим проект, демонстрирующий использование числовых переменных разных типов.
Реализация проекта
1. Создайте новый проект.
2. Поместите на форму кнопку.
3. Для кнопки введите программный код событийной процедуры Command1_Click():
4. Сохраните и протестируйте проект (рис. 3.4).
Рис. 3.4
5. Объясните полученные результаты.
Упражнение 2
Создадим проект, демонстрирующий использование строковых переменных.
Рис. 3.5
Реализация проекта
1. Создайте новый проект.
2. Поместите на форму две надписи, текстовое поле и кнопку.
3. Установите следующие значения свойств объектов:
-
Класс объектов
Обозначение объекта по умолчанию
Свойство
Значение
Label
Label1
Caption
Как Вас зовут?
Label2
Caption
Добрый день
TextBox
Text1
Name
TxtName
Text
CommandButton
Command1
Name
CmdPrivet
Caption
Привет
4. Для кнопки введите программный код событийной процедуры CmdPrivet_Click():
5. Сохраните и протестируйте проект.
Примечание. В данном упражнении можно обойтись без использование строковой переменной, т.к. во вторую метку (Label2) с текстом «Добрый день» имя, введенное пользователем, можно добавить так:
Label2.Caption = Label2.Caption & ", " & TxtName.Text
Упражнение 3
Создадим проект, демонстрирующий работу локальных переменных.
Реализация проекта
1. Создайте новый проект.
2. Поместите на форму кнопку.
3. Откройте окно редактора кода и введите программный текст для кнопки:
4. Сохраните и протестируйте проект, несколько раз нажав на кнопку (рис. 3.6).
Рис. 3.6
Пояснение. Как вы убедились, статическая переменная B при каждом щелчке на кнопке Command1 увеличивается на единицу. Не статическая переменная A при каждом щелчке инициализируется заново, поэтому её значение при выходе всегда будет равно 1.
Упражнение 4
С
оставим
программу, находящую сумму двух
вещественных чисел (рис. 3.7). Запретим
пользователю ввод значений в нижнее
поле.
Рис. 3.7
Реализация проекта
1. Создайте новый проект.
2. Поместите на форму три надписи и три текстовых поля.
3. Установите следующие значения свойств объектов:
-
Класс объектов
Обозначение объекта по умолчанию
Свойство
Значение
Form
Form1
Caption
Сумма двух чисел
Label
Label1
Caption
Первое слагаемое
Label2
Caption
Второе слагаемое
Label3
Caption
Сумма
TextBox
Text1
Name
TxtA
Text
Text2
Name
TxtB
Text
Text3
Name
TxtSum
Text
Locked
True
4. Событийные процедуры TxtA_Change() и TxtB_Change() оформите следующим способом:
Пояснение. Переменные A, B, S в каждой процедуре описаны как локальные. Они доступны только в той процедуре, в которой описаны.
5. Сохраните и протестируйте проект.
6. В окне редактора кода измените код на следующий:
Пояснение. Переменные A, B, S описаны как переменные контейнера, они доступны в каждой процедуре этой формы.
7. Сохраните и протестируйте проект.
8. Объясните, почему из процедуры TxtA_Change() исчезла команда B = Val(TxtB.Text), а из процедуры TxtB_Change() – команда A = Val(TxtA.Text).
9. Измените функцию Str на Cstr. Протестируйте проект и определите, чем различаются эти функции.
Примечание. В данном упражнении можно было обойтись без использования переменных, написав следующий код для событийных процедур:
Упражнение 5
Создадим программу для преобразования температур в диапазоне от -200 до 500 градусов по шкале Цельсия в значения по шкале Фаренгейта и наоборот.
Реализация проекта
1. Создайте новый проект.
2. Разместите четыре надписи, горизонтальную полосу прокрутки и кнопку на форме, как показано на рис. 3.8.
Рис. 3.8
3. Установите следующие значения свойств объектов:
-
Класс объектов
Обозначение объекта по умолчанию
Свойство
Значение
Form
Form1
Caption
Преобразование температур
Label
Label1
Caption
По Цельсию
Label2
Caption
По Фаренгейту
Label3
Name
lblCel
BorderStyle
1 – Fixed Single
Caption
Label4
Name
lblFar
BorderStyle
1 – Fixed Single
Caption
HScrollBar
HScroll1
Name
hsbTemp
Max
500
Min
-200
CommandButton
Command1
Name
cmdExit
Caption
Выход
В
аша
форма примет следующий вид:
Рис. 3.9
4. Напишите следующий код для горизонтальной полосы прокрутки и для кнопки Выход:
Пояснение. Температура по Фаренгейту вычисляется по формуле:
.
5. Сохраните и протестируйте проект.
Примечание. Форматирование результата по Фаренгейту до одного десятичного знака после десятичной точки достигается применением функции Format. У функции два параметра. Первый – величина или выражение, значение которого выводится. Во втором параметре символы в кавычках – это закодированный способ выражения конкретного формата. В данном случае – одна цифра после десятичной точки (символ «0» представляет цифру, которая должна быть отображена). Также может быть использован символ «#» для представления необязательных цифр (если в разряде, в котором записан этот символ, цифра имеется, она отображается, если нет – в этой позиции ничего не отображается).
Например,
Format(5/8, "0.0000") = 0,6250;
Format(5/8, "#.0000") = ,6250;
Format(5/8, "0.####") = 0,625;
Format(5/8, "#.####") = ,625.
Упражнение 6
Разработаем программу, формирующую в текстовом поле изображение целого двоичного числа путем нажатия кнопок, на которых указаны цифры 0 и 1 (рис. 3.10).
Р
ис.
3.10
Реализация проекта
1. Создайте новый проект.
2. Поместите на форму текстовое поле и три кнопки.
3. Установите следующие значения свойств объектов:
-
Класс объектов
Обозначение объекта по умолчанию
Свойство
Значение
Form
Form1
Caption
Целое двоичное число
TextBox
Text1
Name
TxtChislo
Text
CommandButton
Command1
Name
cmd0
Caption
0
Command2
Name
cmd1
Caption
1
Command3
Name
cmdExit
Caption
Выход
4
.
Напишите следующий код в окне редактора
кода:
5
. Сохраните
и протестируйте проект.
6. В окне редактора кода измените код на следующий:
7. Сохраните и протестируйте проект.
8. Определите преимущества и недостатки каждого варианта.
Упражнение 7
Разработаем проект для расчета длины окружности и площади круга по заданному радиусу (рис. 3.11).
Реализация проекта
1. Создайте новый проект.
2. Поместите на форму три надписи, три текстовых поля и кнопку.
3. Установите следующие значения свойств объектов:
-
Класс объектов
Обозначение объекта по умолчанию
Свойство
Значение
Form
Form1
Caption
Длина окружности и площадь круга
Label
Label1
Caption
Радиус
Label2
Caption
Длина окружности
Label3
Caption
Площадь круга
TextBox
Text1
Name
TxtR
Text
Text2
Name
TxtL
Text
Locked
True
Text3
Name
TxtS
Text
Locked
True
CommandButton
Command1
Name
CmdCount
Caption
Вычислить
4. Напишите следующий код для кнопки:
Пояснение. Число π описано как константа.
5. Сохраните и протестируйте проект (рис. 3.11).
Рис. 3.11
