АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Идентификаторы, переменные, массивы

Читайте также:
  1. Динамические массивы
  2. Массивы.
  3. Многомерные массивы
  4. СВОБОДНЫЕ МАССИВЫ И УКАЗАТЕЛИ
  5. УКАЗАТЕЛИ И МАССИВЫ
  6. УКАЗАТЕЛИ И МНОГОМЕРНЫЕ МАССИВЫ

Суть объектно-ориентированного программирования заключается в объединении данных и подпрограмм для работы с этими данными в единый объект, называемый классом. При такой концепции изменяется подход к программированию, поскольку появляется независимость данных от программ для их обработки [4,7,9,13].

В объектно-ориентированном программировании для выполнения какого-либо действия программист вызывает подпрограмму обработки (т.е. выдает команду), а поскольку данные, необходимые для обработки, уже связаны с подпрограммой, то требуется передача в подпрограмму данных, связанных только с реализацией команды.

Например, пусть имеется команда: "сдвинуть окно на 5 позиций вправо". В этой команде задано:

· а) что делать;

· б) направление перемещения;

· в) расстояние перемещения.

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

Для описания объектов вводится понятие класса. Класс группирует и содержит как данные, описывающие объект, так и подпрограммы, необходимые для обработки этих данных. Поскольку объектов может быть сколь угодно много, каждый класс описывает новый тип данных. Поэтому имя класса является именем типа данных.

Класс, описывающий какой-либо объект, обычно содержит данные являющиеся характерными для объекта. Изменение таких данных возможно только с помощью подпрограмм либо входящих в состав класса, либо имеющих к ним доступ. Такие данные объявляются закрытыми

В объектно-ориентированном программировании приняты следующие термины;

· подпрограммы, входящие в класс называются методами;

· выдача команды называется сообщением;

· выбранная команда часто является свойством;

· параметры конкретизируют свойство.

С целью повторного использования уже созданных классов, то есть для накопления и усложнения разработанный программ, другими словами для использования в новых разработках уже имеющихся приложений, используется наследование [7,8].

Имена (идентификаторы) - употребляются для обозначения объектов программы (переменных, массивов, процедур и дp.). В VBA имена констант, переменных и процедур должны удовлетворять следующим требованиям:

¾ должны начинаться с буквы;

¾ не могут содержать точки и символов объявления типа;

¾ не могут быть длиннее 255 символов. Длина имен объектов не должна превышать 40 символов.

¾ не могут быть ключевыми словами (именами операций, операторов, встроенных функций).

Переменные представляют собой зарезервированное место в памяти ПК для хранения значения. Переменные обозначаются именами - словами, используемыми для ссылки на значение, которое содержит переменная, и характеризуются типом, определяющим вид данных, которые можно хранить в переменной. Переменные могут изменять свои значения в ходе выполнения программы. По умолчанию переменные имеют тип данных Variant, если в модуле отсутствует инструкция DefТип. Для явного указания типа переменной можно в конце ее имени указать символ описания типа:

Currency - @;

Double - #;

Integer - %;

Long - &;

Single -!;

String - $.

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

Константы - имена, идентифицирующие некоторые неизменяемые числовые значения или строки текста. В отличие от переменных их нельзя изменить или назначить им новые значения. В VBA различают внутренние или системные константы, которые имеют префикс vb, например vbOK, и символические или определяемые пользователем с помощью ключевого слова Const константы. Имена констант имеют те же ограничения, что и имена переменных, тип данных, хранящихся в константе, задается так же, как для переменных.

Массивы - последовательности логически связанных элементов одного типа, которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами (одним, в случае одномерного массива, или несколькими, если массив многомерный). Имена массивов имеют те же ограничения, что и имена переменных, тип данных, хранящихся в массиве, задается так же, как для переменных. Однако если массив имеет тип Variant, его отдельные элементы могут содержать данные разных типов.

Другое определение массива - это объекты программы, которые позволяют хранить однотипные значения под определенным именем.

Доступ к элементам массива осуществляется по их номеру – индексу. Если для доступа к элементу массива нужен один индекс, то массив одномерный, если два индекса, то массив двухмерный (матрица).

В VBA существуют два вида массивов: массив фиксированного размера и динамический массив, размер которого может изменяться во время выполнения программы с помощью специальных операторов [14,15].

Одномерные массивы задаются в следующем виде:

Dim имяМассива (1 То n) As T, где T – тип элементов.

Матрицы задаются в виде:

Dim имяМассива (1 То n, 1 To m) As T, где n – число строк, а m – число столбцов

При необходимости генерации случайных чисел используются функции:

Randomize – активизация генератора случайных чисел;

Rnd – получение случайного вещественного числа нормально распределенного в диапазоне от 0 до 1.

При объявлении массива фиксированной длины за его именем в круглых скобках задаются через запятую верхние границы каждой размерности, не превышающие максимального значения типа Long. По умолчанию нижняя граница равна 0, но ее можно задать явно с помощью ключевого слова To:

Lines (100 To 120) As String

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

В VBA массивы любых типов данных требуют 20 байт памяти плюс 4 байта на каждую размерность массива плюс число байт, требуемых для хранения данных. Объем памяти, требуемый для сохранения данных, рассчитывается как произведение числа элементов на размер элемента. Например, данные в одномерном массиве, который содержит четыре элемента типа Integer, требующих по 2 байта на элемент, занимают 8 байт. Вместе с 20 байтами на массив и 4 байтами на размерность общий требуемый объем составляет 32 байта.

Значение типа Variant, содержащее массив, требует 12 байт в дополнение к объему, занимаемому требуемым массивом.

Структуры - в VBA нет понятия структуры, но есть определяемый пользователем с помощью инструкции Type тип данных. Типы данных, определяемые пользователем, могут содержать один или несколько элементов любого типа данных, массивы или ранее определенные пользователем типы.

Например:

Type MyType MyName As String ' Имя записывается в строковую переменную. MyBirthDate As Date ' День рождения записывается в переменную даты. MySex As Integer ' Пол записывается в целую переменнуюEnd Type ' (0 для женщины, 1 для мужчины).Рассмотрим примеры по работе с массивами чисел (применение оператора цикла рассматривается в главе 6).

Пример 1. Заполнить массив случайными числами, вычислить их сумму (рис. 11.).

Рис. 11. Результат программы примера 1.

Пример 2. Заполнение матрицы случайными числами + Объект Cells (рис. 12.).

Range - объект для работы с данными в ячейках рабочего листа.

Cells - объект доступа к диапазону ячеек по индексам.

 

Рис. 12. Результат программы примера 2.

 

Пример 3. Заполнение матрицы случайными числами + Функция Rnd+Объект Cells.

 

 

 

 

Рис. 13. Результат программы примера 3.

Пример 4. Заполнение двух матриц случайными числами, получение третьей матрицы, элементы которой являются суммами двух предыдущих (рис. 14.).

Рис. 14.. Результат программы примера 4.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.)