Похожие презентации:
Константы и переменные. Типы данных на VBA
1. Лекция 4
Константы и переменные.Типы данных на VBA
1
2. Типы констант. Представление чисел в форме с плавающей точкой
• Константой называется некоторая величина, неизменяющая своего числового или символьного
значения в течение выполнения всей программы.
Имеются два типа констант:
• – числовые конст. - представляют собой
положительные или отрицательные числа двух
видов:
а) целочисленные, представляющие собой
положительные и отрицательные числа и ноль, при
их записи не должна использоваться десятичная
запятая, например:
-100 2 0 +458
2
3. Типы констант. Представление чисел в форме с плавающей точкой
б) вещественные константы – все действительныечисла, включая и целые.
В теле
программы
Записываются
в двух
видах: в качестве
разделителя
и дробной
с фиксированной
точкой, целой
например:
используется ТОЧКА.
100. –0.001 части
+2.563
Если данные считываются с листа
(вместо дес.запятой используется при записи
точка!!!) EXСEL, то на листе вещественные
пишутся
через2.5·10
ЗАПЯТУЮ!
-2, записываемое
с плавающейдроби
точкой,
например,
как 2.5Е-02 или 2.5D-02.
Здесь 2.5 – мантисса, Е, D – десятичная экспонента
одинарной (Е) или двойной (D) точности.
Например: 1,5 10-3 1.5Е-3=0.15Е - 02=15Е-04=0.0015
150000 1.5Е+05
0,0000254 2.54Е-05
3
4. Символьные константы
• – символьные или строковые константы –представляют собой набор произвольных символов,
принадлежащих языку Бейсик, заключенных в
кавычки, например:
“alpha”, “beta”, “Луна”.
4
5. Объявление переменных
• Переменные – это объекты, предназначенные дляхранения данных. В различные моменты времени
переменные могут хранить разные значения. В
переменных можно запоминать значения и извлекать
их из них.
• Перед использованием переменных в программе их
нужно объявить (декларировать): задать имя
переменной и указать ее тип.
• Тип определяет способ представления переменной.
• Для эффективного использования памяти и времени
ПК необходимо правильно выбрать тип переменной.
• Описание типа переменой делает программу
надежнее и, кроме того, убыстряет ее работу, т.к.
VBA не требуется тратить время на распознавание
типа неописанной переменной при каждом
обращении к ней.
5
6. Объявление переменных
• Объявить переменную – значит заранеесообщить
программе
о
ее
существовании.
• Объявление переменной производится
специальным оператором:
• Dim переменная [As тип]
6
7. Базовые типы переменных VBA
ТипByte
(байт)
Boolean
Integer
Long
Хранимая
информация
Целые числа
Логические
значения
Целые числа
Длинное целое
Занимаемая
память
Целочисленные типы
Диапазон значений
1 байт
От 0 до 255.
2 байт
True или False.
2 байт
От -32 768 до 32 767.
От -2 147 483 648 до 2 147 483
647. или +/– 2.1Е9
4 байт
± 215
± 231
7
8. Базовые типы переменных VBA
Типы с плавающей точкойSingle
Double
Вещественные числа
От -3,402823E38 до -1,401298E-45
с плавающей точкой
для отрицательных значений; от
4 байт (7 цифр)
одинарной точности
1,401298E-45 до 3,402823E38 для
положительных значений.
Вещественные с
плавающей точкой
двойной точности
8 байт (15
цифр)
Прочие типы
Currency
денежные единицы
до 15 цифрдо дес.
точки и 4 цифры –
после нее
Decimal
масштабируемое
целое – десятичное
число
8 байт
14 байт
От -1,79769313486232E308 до 4,94065645841247E-324 для
отрицательных значений; от
4,94065645841247E-324 до
1,79769313486232E308 для
положительных значений.
НЕ ПИШЕМ, ОБРАЩАЕМ
ВНИМАНИЕ НА ПОРЯДОК
ЧИСЕЛ!!!
От
-922 337 203 685 477,5808 до 922
337 203 685 477,5807.
Целое –29 знаков
вещественное – 27 знаков после
запятой.
8
9. Базовые типы переменных VBA
8 байтDate
9999 г.
Объектные типы
Рисунок или ссылки
Базовые
типы4 байт
переменных
VBA
Object (объект) на любой другой
Любой указатель
объекта.
объект
Строковые типы
String
текстовая
10 байт + 1байт
информация
От 0 до приблизительно 2
на каждый
(строка) переменной
миллиардов символов.
символ
длины
String*n
строка постоянной
Длина строки
длины из n символов
От 1 до приблизительно 65 400.
Типы Variant
Variant
(числовые
подтипы)
Тип данных,
определяемый
пользователем
Значения любого из
перечисленных
типов данных
16 байт для
чисел
Любое числовое или строковое
22 байт + 1
значение вплоть до границ
байт на каждый диапазона для типа Double.
символ строки
с помощью
ключевого слова
Type)
Объем
определяется
элементами
Диапазон каждого элемента
определяется его типом данных.
9
10. Базовые типы переменных VBA
DateSingle
Вещественные числа 8 байт
От -3,402823E38 до -1,401298E-45
9999 г.
с плавающей точкой
для отрицательных значений; от
4
байт
(7
цифр)
Объектные типы 1,401298E-45 до 3,402823E38 для
одинарной точности
положительных значений.
Рисунок или ссылки
на
любой другойс
4 байт
Любой
указатель объекта. до Вещественные
От -1,79769313486232E308
объект
плавающей точкой
4,94065645841247E-324 для
двойной точности Строковые
8 байт (15типы отрицательных значений; от
цифр)
4,94065645841247E-324 до
текстовая
10 байт + 1байт 1,79769313486232E308 для
информация
От 0 до приблизительно 2
на каждый
положительных
значений.
(строка) переменной
миллиардов
символов.
символ
длины
Прочие типы
строка
постоянной
денежные
единицы Длина строки От 1 до приблизительно 65 400.
длины
из n символов
до 15 цифрдо
дес.
От -922 337 203 685 477,5808 до 92
8 байт
точки и 4 цифры –
337 203 685 477,5807.
после нее
Типы Variant
масштабируемое
Целое –29 знаков
Значения
любого из 16 байт для
целое – десятичное чисел
14 байт
вещественное
27 строковое
знаков после
перечисленных
Любое
числовое –или
число данных
запятой.вплоть до границ
типов
22 байт + 1
значение
байт на каждый диапазона
для100
типа
даты и время
От 1 января
г. Double.
до 31 декабря
8
байт
символ строки
9999 г.
с помощью
Объем
Объектные
типы Диапазон каждого элемента
ключевого слова
определяется
определяется его типом данных.
Рисунок или ссылки элементами
Type)
на любой другой
4 байт
Любой указатель объекта.
10
объект
Базовые типы переменных VBA
Object (объект)
Double
String
String*n
Currency
Decimal
Variant
(числовые
подтипы)
Date
Тип данных,
определяемый
пользователем
Object (объект)
11. Особенности некоторых типов даных
• String – по умолчанию данные строкового типа имеютпеременную длину и могут удлиняться или укорачиваться.
Однако такие строки занимают на 10байт памяти больше, поэтому
можно объявить строки фиксированной длины, явно указав
количество символов.
Если количество символов будет меньше объявленного, то
свободные места заполняются пробелами, при попытке
занесения большего количества символов лишние
отбрасываются.
• Variant – может быть использован для хранения данных всех
базовых типов без выполнения преобразования (приведения)
типов.
Применение данного типа позволяет выполнять операции, не
обращая внимание на тип данных, которые они содержат.
Переменные этого типа могут содержать специальные
значения: Empty (пусто), Null (Нуль), Error (ошибка).
• Object – поскольку VBA является объектно-ориентированным
языком, в нем можно манипулировать различными объектами,
адреса расположения которых в памяти (указатели) имеют этот
тип.
11
12. Примеры оценки памяти, занимаемой символьными переменными
Dim A As StringA = “SELENA “
‘
6 символов*1байт+10 = 16 байт
Dim B As String*6
B=“Galaxy“
‘
6 символов * 1 байт = 6 байт
Dim C As String*3
C = “MERCURY”
‘ C=“MER”
C = “12”
‘ C=“12_”
12
13. Перерыв – 3 мин
Объявления• • «Срочно продам мышь в отличном состоянии, со
всеми наворотами, пробег – 5000 км».
• • «Вывожу из Интернета»…
• • «Для ухода за пожилым программистом требуется
приятная женщина, говорящая на FORTRAN, BASIC
и C++».
• • «Специалист-нарколог со стажем: выводит из
Интернета, прерывает Интернет на дому, кодирует и
декодирует (UUENCODE, BASE-64, MIME…)».
13
14. Операторы описания типа и постфиксы
• Dim power As singleприписывает переменной с именем power
вещественный тип одинарной точности.
• Задать тип переменной также можно,
используя специальный символ в конце
имени – постфикс – или, используя
инструкцию DefТип.
• Например, если на уровне модуля дана
инструкция DefInt I-N, это означает, что всем
переменным, имена которых начинаются с
букв, лежащих в диапазон от I до N (и
прописных, и строчных), в программах
данного модуля будет присвоен тип Integer.
14
15. Значения инструкции DefТип и соответствующих постфиксов
ИнструкцияDefBool
DefByte
DefInt
DefLng
DefSng
DefDbl
DefStr
DefVar
Тип данных Постфикс
Boolean
Byte
Integer
%
Long
&
Single
!
Double
#
String
$
Variant
15
16. Пример: пошаговый запуск программы клавишей F8
1617. Пример: Результат работы программы
1718. Значения и типы переменных по умолчанию
• Если в программах модуля операторы описания типа илипостфиксы в именах переменных отсутствуют, то работает
принцип умолчания, согласно которому все переменные
принимают тип Variant и соответствующие значения. Пусто: две
Значения и типы переменных разных типов по умолчанию
Тип
Boolean
Byte
Значение
Ложь/False
0
Тип
Single
Double
Integer
0
Variant
Empty, Null, Error
Long
Значение
0,0
0,0
0
Тип
String
String*n
кавычки
Значение
““
“¬ . . . ¬“
n пробелов
18
19. Несколько правил для корректного использования разных типов данных
• 1) Переменные, описанные с помощью DIM на уровне модуля,доступны для всех процедур в данном модуле. Переменные,
описанные на уровне п/п, доступны только в данной п/п.
• 2) В операторах присваивания следует иметь в виду, что
значение выражения может быть присвоено переменной,
только если оно имеет совместимый с этой переменной тип
данных. Невозможно присвоить строковое выражение числовой
переменной или числовое выражение строковой переменной.
Такая попытка приведет к ошибке во время компиляции.
• 3) Переменным типа Variant могут присваиваться как
строковые, так и числовые выражения. Однако обратное не
всегда верно.
• 4) Присвоение выражения с одним из числовых типов
переменной с другим числовым типом данных преобразует
значение выражения в тип данных результирующей переменной
(т.е. если a%=2.33, то а% будет иметь целое значение 2 или
b%=2.65, то b%=3 – округление с избытком).
19
20. Еще пара компьютерных баек…
• Подведены итоги лотереи Windows- победителем признана фирма Microsoft
- разыграны миллионы чайников
• Фирма Microsoft выпустила «Windows
for woman». Основное отличие продукта
в том, что две кнопки – «Yes» и «No»
заменены одной – «Maybe»…
20