Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб3_Visual Basic.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

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,4028231038 до -1,40129810-45 для отрицательных чисел, от 1,40129810-45 до 3,4028231038 для положительных чисел

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]