3.2.2 Определение типа данных в макросе

Для определения типа переменной можно использовать неявное объявление. Для этого используется специальный символ (см. таблицу 3.2.2).

Таблица 3.2.2 – Таблица специальных символов

Тип переменной Символ, добавляемый к имени

Integer (целое)

%
Long (длинное целое) &

Single (с плавающей точкой обычной точности)

!

Double (с плавающей точкой двойной точности)

#

Currency (денежный)

@

String (строка постоянной длины)

$

Пример использования неявного объявления типа переменной

msg$ = “Задача выполнена”

MsgBox msg$

Явное объявление осуществляется операторами Dim, private, Static, public, которые имеют следующий синтаксис:

Dim имяПеременной [As типДанных]

Private имяПеременной [As типДанных]

Static имяПеременной [As типДанных]

Public имяПеременной [As типДанных]

Операторы Dim, Private, static, public определяют область действия переменной. С помощью одного оператора вы можете объявлять несколько переменных, разделяя их запятыми. Примеры объявления переменных приведены ниже:

Private bInSuccess As Boolean

Dim strLastname As String, dblSum As Double

Для объявления строки с фиксированной длиной используется следующий синтаксис:

Dim имяПеременной As String * длинаПеременной

Параметр длинаПеременной указывает максимальное количество символов, отводимое переменной. Символ звездочки (*) указывает на то, что переменная имеет фиксированную длину.

Инструкции Defтип, используются на уровне модуля для задания типа данных, используемого по умолчанию для переменных, аргументов, передаваемых в процедуры, и значений, возвращаемых процедурами Function и Property Get, имена которых начинаются с соответствующих символов.

Синтаксис:

DefBool диапазонБукв[, диапазонБукв] . . .

DefByte диапазонБукв[, диапазонБукв] . . .

DefInt диапазонБукв[, диапазонБукв] . . .

DefLng диапазонБукв[, диапазонБукв] . . .

DefCur диапазонБукв[, диапазонБукв] . . .

DefSng диапазонБукв[, диапазонБукв] . . .

DefDbl диапазонБукв[, диапазонБукв] . . .

DefDec диапазонБукв[, диапазонБукв] . . .

DefDate диапазонБукв[, диапазонБукв] . . .

DefStr диапазонБукв[, диапазонБукв] . . .

DefObj диапазонБукв[, диапазонБукв] . . .

DefVar диапазонБукв[, диапазонБукв] . . .

Обязательный аргумент диапазонБукв имеет следующий синтаксис:

буква_1[-буква_2]

Аргументы буква_1 и буква_2 указывают диапазон имен, для которых задается тип данных по умолчанию. Каждый аргумент представляет первую букву имени переменной, аргумента, процедуры Function или Property Get и может быть любой буквой алфавита. Регистр символов в аргументе диапазонБукв не существенен.

Инструкции Defтип можно использовать только на уровне модуля (т.е. нельзя использовать внутри процедур).

Переменные, имена которых начинаются с букв "A" - "K",

будут по умолчанию Integer.

DefInt A-K

Переменные, имена которых начинаются с букв "L" - "Z",

 будут по умолчанию String.

DefStr L-Z

CalcVar = 4 ' Инициализирует переменную типа Integer.

StringVar = "Всем привет" ' Инициализирует переменную типа String.

AnyVar = "Привет" ' Будет обнаружено несовпадение типов.

Dim Calc As Double ' Явно объявлена переменная типа Double.

Calc = 2.3455 ' Присваивает значение переменной типа Double.

Инструкции Defтип также применимы к функциям.

CalcNum = ATestFunction(4) ' Вызывает процедуру Function, определенную пользователем.

Описание процедуры Function ATestFunction.

Function ATestFunction(INumber)

ATestFunction = INumber * 2 ' Возвращает значение типа Integer.

End Function

3.2.3 Преобразования типа данных

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


Таблица 3.2.3 – Функции преобразования типов

Функция Тип

Диапазон аргумента выражение

Cbool Boolean Любая допустимая строка или числовое выражение.
CByte Byte От 0 до 255.
Ccur Currency От -922 337 203 685 477,5808 до 922 337 203 685 477,5807.
Cdate Date Любое допустимое выражение даты.
CDbl Double От -1,79769313486232E308 до -4,94065645841247E-324 для отрицательных чисел; от 4,94065645841247E-324 до 1,79769313486232E308 для положительных чисел.
Cdec Decimal

+/-79 228 162 514 264 337 593 543 950 335 без масштабирования, т.е. для чисел без дробной части. Диапазон чисел с 28 знаками в дробной части

+/-7,9228162514264337593543950335. Минимальное ненулевое число 0,0000000000000000000000000001.

Cint Integer От -32 768 до 32 767 с округлением дробной части.
CLng Long От -2 147 483 648 до 2 147 483 647 с округлением дробной части.
CSng Single От -3,402823E38 до -1,401298E-45 для отрицательных чисел; от 1,401298E-45 до 3,402823E38 для положительных чисел.
Cvar Variant Диапазон значений Double для числовых значений. Диапазон значений String для нечисловых значений.
CStr String Возвращаемые значения функции CStr зависят от аргумента выражение.

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

Вообще говоря, функции преобразования типов данных используются для документирования программы. Это позволяет показать, что результат некоторой операции должен быть представлен определенным типом данных, а не типом, используемым по умолчанию. Например, функция CCur обеспечивает арифметические действия над числами в денежном формате в тех случаях, когда по умолчанию используются действия над числами с плавающей точкой обычной или двойной точности или над целыми числами.

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

Если дробная часть числа в точности равна 0,5, то функции CInt и CLng всегда округляют число до ближайшего четного числа. Например, 0,5 округляется до 0, а 1,5 до 2.

Чтобы определить, может ли аргумент дата быть преобразована к типу даты или времени, следует использовать функцию IsDate. Функция CDate распознает литералы даты и литералы времени, а также числа, которые попадают в приемлемый диапазон дат. При преобразовании числа в дату переводится целая часть числа. Любая дробная часть числа преобразуется во время суток, отсчитываемое от полуночи.

Функция CDate распознает форматы дат в соответствии с национальной настройкой системы. Правильный порядок дней, месяцев и годов может не быть определен, если дата задается в формате, отличном от распознаваемых форматов дат. Кроме того, длинный формат даты также не распознается, если он содержит строку для дня недели.


Информация о работе «Решение задач с помощью современых компьютерных технологий»
Раздел: Информатика, программирование
Количество знаков с пробелами: 31953
Количество таблиц: 3
Количество изображений: 5

Похожие работы

Скачать
38649
1
0

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

Скачать
41469
0
5

... человека на образование и получение информации. В решении коллегии Госкомвуза 1993 года "О создании системы дистанционного образования в РФ" говорится: "Дистанционное образование - это форма образования, обеспечивающая использования новейших технических средств и информационных технологий для доставки учебных материалов и информации непосредственно потребителю независимо от его местоположения". ...

Скачать
28349
1
1

... тематикой и общими принципами оформления. Создание и применение на уроке электронных презентаций на сегодняшний день весьма актуально, как и разработка общих методических принципов для них. В качестве примера возьмем урок информатики в 7 классе по теме «Системы счисления». II.  Авторская разработка урока по информатике «Системы счисления» Первое занятие из 7-х учебных часов. Цели урока: ...

Скачать
100693
4
0

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

0 комментариев


Наверх