Лекция №23
В процессе выполнения любой компьютерной программы происходит обработка (или преобразование) информации, единый и неделимый элемент которой называется данным. Если же таких элементов много, то они называются данными. При этом различаются:
1. Входные данные – элементы информации, которые существуют во внешнем мире, и передаются на вход программы в процессе её выполнения.
2. Выходные данные, или результаты – элементы информации, которые порождает программа в процессе своего выполнения.
3. Промежуточные данные – элементы информации, поддерживаемые программой в течение процесса её обработки.
В общем случае, одни внутренние данные программы образуются непосредственно из входных данных, другие – имеют временный характер и служат для поддержания вычислительного процесса, третьи – становятся результатами. Важно, что внутренние элементы данных находятся внутри программы.
Внутренние элементы данных программы бывают двух видов, и называются они, соответственно:
1. переменные, – которые изменяют свое значение в течение выполнения программы, и
2. константы, – которые не изменяют своего значения в течение выполнения программы.
Переменные в программировании совершенно аналогичны переменным, известным всем со школьного курса алгебры – мы пишем имя переменной вместо её значения, которое на момент её упоминания может быть ещё не известно, но которое будет известно на момент её использования. Точно так же, когда в тексте программы встречается имя переменной, Visual Basic вставляет в соответствующее место её значение. Например, если переменная Var1 имеет значение 1, то всё выражение
Var1 + 1
будет иметь значение 2. При этом, когда Visual Basic вычисляет это выражение, число 1, записанное в переменной Var1, подставляется в выражение и складывается с числом 1, непосредственно указанным в нём, в итоге получается 2. Если бы в переменной Var1 было записано число 5, всё выражение получило бы значение 6.
Физически переменная представляет собой некоторый участок оперативной памяти компьютера – ячейку, в который записано значение какого-либо типа данных для его дальнейшего использования. Размер, и внутренняя структура такого участка памяти, зависит от типа данных, для хранения которых он предназначен. Доступ к нему осуществляется по имени переменной. Содержимое участка памяти (значение переменной) в процессе выполнения программы может изменяться, а вот имя и тип данных – нет.
В некотором смысле переменная подобна ячейке Microsoft Excel – ей можно присвоить имя и потом обращаться к ней по этому имени, не заботясь больше о том, какие номера столбца и строки она имеет. Точно также имя переменной позволяет обращаться к данным, хранящимся в оперативной памяти компьютера, не думая о том, где именно они расположены – Visual Basic берёт на себя все заботы по обеспечению доступа к требуемым данным.
Более формально – всякая переменная, в любом языке программирования, имеет следующие три характеристики:
1. имя,
2. тип, и
3. значение.
В течение выполнения программы имя и тип переменной не изменяются, а вот значение – может. Хотя, в Visual Basic переменная типа Variant в разные моменты времени может хранить различные типы данных.
Любая переменная VBA может быть создана одним из двух различных способов:
1. неявно – т.е. просто указав её имя в тексте программы, и
2. явно – с помощью инструкции Dim.
При неявном способе Visual Basic создает переменную, и выделяет для неё память, как только обнаружит её имя в тексте программы. Обычно это происходит при записи в переменную некоторого значения. Запись значения в переменную называется присваиванием значения. Присваивание значения переменной выполняется с помощью оператора присваивания, который выглядит как знак равенства (=).
Например, в инструкции присваивания
Var1 = 1
переменной Var1 присваивается значение 1. При этом выполняются различные процессы, в зависимости от того, встретилось ли имя переменной в программе:
a) впервые, или
b) уже встречалось.
Если это первое упоминание имени переменной в программе, то Visual Basic:
1. резервирует под неё участок памяти необходимого размера,
2. записывает в него значение, например, число 1, и
3. присваивает выделенному участку памяти имя созданной таким образом переменной.
Если же такая переменная уже существовала, то в результате выполнения оператора присваивания в участок памяти, на который указывает её имя, просто записывается новое значение, например, число 1. При этом прежнее содержимое этого участка памяти (или значение переменной) безвозвратно теряется.
Неявное создание переменных называют также созданием переменных на лету (on-the-fly declaration). Все переменные, созданные таким способом, получают тип Variant.
Способ неявного создания переменных на первый взгляд может показаться простым и удобным, но здесь скрывается потенциальная опасность. Например, в программе уже существует переменная с именем Var1, но в другом месте программы была допущена ошибка, и её ввели как Va1. В зависимости от того, в каком месте программы была допущена эта ошибка, Visual Basic либо выдаст сообщение об ошибке времени выполнения, либо, что хуже, создаст новую переменную с новым именем. При этом логика работы программы будет нарушена, и найти такую ошибку будет чрезвычайно трудно.
Ещё хуже, если в операторе присваивания предполагается создание новой переменной, а на самом деле переменная с таким именем уже существует. Это никогда не вызывает сообщения об ошибке, хотя предыдущее значение переменной будет заменено новым, и найти такую ошибку будет очень трудно.
По этим, и некоторым другим причинам, в Visual Basic реализована также возможность явного создания переменных, которая имеет много преимуществ:
1. При явном создании переменных программа работает заметно быстрее, поскольку Visual Basic создает их заранее, и на это не тратится больше время при её выполнении.
2. Явное создание переменных позволяет избежать многих ошибок, потенциально возможных при неявном их создании.
3. Явное создание переменных делает программу более ясной и наглядной, особенно если все они созданы в самом её начале.
4. При явном создании переменных не нужно больше следить за правильным использованием верхнего и нижнего регистров – Visual Basic вместо того, чтобы подгонять все вхождения имени переменной под последнее её упоминание, будет исправлять регистр имени в соответствии с тем написанием, которое было использовано при её явном создании.
Для того чтобы явно создать переменную, используется инструкция Dim (сокращение от dimension – размерность) со следующим синтаксисом:
Dim <имя> [As <тип>] [,<имя> [As <тип>]] …,
где:
имя – имя создаваемой переменной, а
тип – тип создаваемой переменной.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.