Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Урок 11
Понятие переменной
Переменные – это объекты, предназначенные для хранения данных. Переменной могут последовательно присваиваться различные значения. После присвоения значения переменная хранит его до следующего присвоения ей нового значения. В различные моменты времени переменные могут хранить различные значения.
Переменную можно представить как простейший объект программы потому что:
· имя переменной связывает переменную с некоторой областью памяти,
· имена переменных позволяют их различать в программе, осуществлять доступ к различным участкам памяти для записи данных и их извлечения,
· переменные в программе перед их использованием нужно объявлять (декларировать),
· при объявлении переменной надо указать, что объявляется переменная, задать имя переменной и указать ее тип,
· тип указывает способ представления переменной.
Для эффективного использования памяти необходимо правильно выбирать тип переменной.
Переменная может хранить значения заданного типа. Разрешено использовать
– семь простых типов (число, валюта, строка, болевое, дата, время и дата-время),
– шесть типов диапазонов (диапазон чисел, диапазон валют, диапазон строк, диапазон дат, диапазон времени, диапазон дат и времени) и
– переменные, которые могут хранить указанные типы.
Всего переменная может хранить значения 26 различных типов.
Для использования переменной необходимо выполнить три действия:
1. Объявить переменную. Сообщить программе имя и тип переменной, которую требуется использовать.
2. Присвоить переменной значение. Передать переменной значение для хранения.
3. Непосредственно использовать переменную. Извлечь значение, содержащееся в переменной, и использовать его в программе.
Объявление переменных
Объявление переменных ускоряет компиляцию программы и делает ее выполнение более эффективным, а также предотвращает неправильное написание имен переменных в коде программы. Можно объявлять любое количество переменных.
Объявление переменных может быть явной или неявной. Явное объявление означает указание имени и типа переменной перед ее использованием. Оно осуществляется операторами Dim, Private, Static, Public, которые имеют следующий синтаксис:
Dim имяПеременной [As типДанных]
Private имяПеременной [As типДанных)
Static имяПеременной [As типДанных)
Public имяПеременной [As типДанных)
Для явного определения переменных существует два способа:
· Первый (предпочтительный) способ, предполагает использование следующего синтаксиса:
[Static / Public / Private] Dim ИмяПеременной1[ As Тип1]
где Dim (Размер) - ключевое слово, которое сообщает Visual Basic, что декларируется переменная и резервируется область памяти для ее хранения;
ИмяПеременной - имя переменной (идентификатор, не входящий в перечень ключевых слов Visual Basic);
As (Как) - ключевое слово, которое сообщает Visual Basic, что определяется тип данных для переменной;
Тип - тип данных для объявляемой переменной;
Private (Частный), Public (Общий)- ключевые слова, определяющие область видимости переменной;
Static (Статический)- ключевое слово, которое определяет, сохраняет ли переменная свое значение при завершении блока программы (процедуры, функции) и выходе из него.
Примечание:
При подготовке кода программы среда программирования оказывает помощь пользователю: после набора ключевого слова As раскрывается список, в котором наряду с другими типами объектов, указаны и базовые типы переменных. Тип переменной можно установить, дважды щелкнув на имени типа в этом списке или нажав клавишу [Tab].
Переменная, объявленная при помощи оператора Dim, доступна из любого места программы (или блока программы) в пределах области видимости, содержащей оператор Dim. Например, если она объявлена внутри модуля вне любой процедуры, то такая переменная доступна из любого места этого модуля. Если переменная объявлена внутри процедуры, то она доступна только в пределах этой процедуры. Такая переменная называется локальной. Чтобы определить доступность переменной более детально, применяются операторы Private и Public.
Использование оператора Public означает, что переменная имеет общий доступ, т. е. доступ без каких-либо ограничений. Public-переменная не может быть объявлена внутри процедуры.
Переменная, объявленная с ключевым словом Private, доступна только в пределах контекста, в котором объявлена, включая процедуры. Private-переменная может быть объявлена внутри модуля, класса или структуры, но не внутри процедуры.
Если переменная при объявлении указана как Static, то она остается существовать в памяти и сохраняет свое последнее значение после завершения работы процедуры, в которой была объявлена, static-переменная не может быть объявлена вне процедуры.
С помощью одного оператора можно объявлять несколько переменных, разделяя их запятыми. Примеры объявления переменных приведены ниже:
Private bSuccess As Boolean
Dim lastName, firstName As String, dblSum As Double
· Вторым способом явного объявления переменных является указание типа с помощью суффикса.
Часть [As типДанных] объявления переменной является необязательной, однако если тип данных не указан, Visual Basic назначит переменной тип значения, которое присваивается ей при объявлении. Если не указан тип данных и переменная не инициируется никаким начальным значением, Visual Basic назначит ей тип данных object. Это может стать причиной более медленной работы программы, поскольку для переменной типа Object выделяется больше памяти, чем, возможно, нужно. Кроме того, программе придется тратить дополнительное время на определение, к какому типу данных относится значение переменной в данный момент времени.
Неявное объявление означает, что объявление переменной происходит при первом ее использовании в программном коде.
Предпочтительным является явное объявление переменных с указанием типа данных, поскольку это снижает вероятность возникновения ошибок написания или конфликта имен. По умолчанию компилятор Visual Basic устанавливает режим явного объявления переменных.
При объявлении переменной необходимо указать ее имя. Имена переменных обозначают посредством идентификаторов.
При объявлении переменной необходимо решить, как она будет называться, и какой тип данных будет ей присвоен. Имя переменной может быть любым, но если используется имя, описывающее содержащееся в переменной значение, то код будет легче читать. Существует несколько правил задания имен переменных:
· имя переменной должно содержать не более 255 символов;
· имя переменной может содержать любые буквы, цифры и символ подчеркивания;
· первым символом в имени переменной должен быть символ или знак подчеркивания;
· в имени переменной должны отсутствовать пробелы и знаки пунктуации;
· имя должно быть уникальным внутри области видимости;
· имя не должно являться ключевым словом.
Обычно объявляют переменную, при помощи ключевых слов Dim и As:
Dim aNumber As Integer
Эта строка кода сообщает программе, что требуется использовать переменную с именем aNumber, и что она должна хранить целые числа (тип данных Integer).
Поскольку aNumber является переменной типа Integer, она может хранить только целые числа. Если бы нужно было хранить, например, число 42.5, то использовался бы тип данных Double. А для хранения слов используется тип данных с именем String. Еще одним типом данных, который следует упомянуть здесь, является тип Boolean, который может хранить значения True или False.
Ниже приведены дополнительные примеры объявления переменных.
Dim aDouble As Double
Dim aName As String
Dim YesOrNo As Boolean
Имя переменной не может совпадать с именем какой-либо функции, оператора или ключевым словом, зарезервированным в синтаксисе Basic. Например, переменная не может иметь имя Sin, Mod или If, поскольку Sin является именем встроенной функции, Mod является встроенным оператором, а If представляет собой встроенное ключевое слово. При вводе формул в редакторе формул имена встроенных функций, операторов и других ключевых слов подсвечиваются другим цветом. Это позволяет визуально определить, что имя переменной вызывает конфликт имен.
После объявления переменная может использоваться в формуле.
Область действия переменной
Область действия переменной служит для определения возможности использования переменных. Существует три уровня области действия:
· Local (локальная),
· Global (глобальная),
· Shared (общая).
Каждая переменная имеет область действия, которая определяется при объявлении переменной.
При выполнении программы принципиальное значение имеет область видимости используемых переменных. Попытка использования переменных, которые не действуют в данном месте программы, приводит к ошибке программирования или к неоднозначности результатов. В Visual Basic могут применяться глобальные и локальные переменные.
Переменная, которая используется программой или каким блоком (модулем, формой, обработчиком событий, процедурой), должна быть объявлена вначале кода данного блока или программы после его заголовка, перед всеми другими операторами.
Глобальные переменные доступны из любой части программы. Для создания переменной, которую вы хотите определить в качестве глобальной, в начале главного модуля приложения поместите оператор Public. Например:
Public gdtmFinish As Date
Значение глобальных переменных сохраняются до тех пор, пока работает программа или блок, в которой они объявлены. Их значения могут считывать или изменять все операторы программы или любого блока (обработчика события) программы.
Для объявления переменной как локальной внутри модуля, формы, обработчика событий, используйте операторы Private, Local или Dim. В этом случае объявленная переменная будет доступна для всех входящих в форму, модуль или обработчик событий процедур, но в то же время окажется недоступной в процедурах других модулей, форм или обработчиков событий. Значение локальной переменной сохраняют только до момента действия формы, модуля или обработчика событий, в которых она объявлена. После их выполнения значения локальных переменных теряются. Приведенные ниже выражения являются эквивалентными:
Local x As Number
Dim y As Number
Чаще всего локальные переменные используются в обработчиках событий. В разных обработчиках событий, формах или модулях можно создавать локальные переменные с одинаковым именем и при этом они не будут конфликтовать.
Если нет никаких особых требований,
то есть смысл всегда выбирать область видимости Dim.
Присваивание переменным значений
Значение переменной присваивается при помощи знака =, иногда называемого оператором присваивания, как показано в следующем примере.
aNumber = 42
Эта строка кода берет значение 42 и сохраняет его в ранее объявленной переменной с именем aNumber.
При необходимости можно также добавить ключевое слово Let.
Let y = 20
Объявление и присваивание значений для переменных со значениями по умолчанию
Как показано выше, можно объявить переменную в одной строке кода и присвоить ей значение позже, в другой строке. Это может вызвать ошибку при попытке использовать переменную до присвоения ей значения.
По этой причине рекомендуется объявлять переменные и присваивать им значения в одной и той же строке. Даже если будущее значение переменной пока не известно, ей можно присвоить значение по умолчанию. В этом случае код для объявления и присвоения значений тем же самым переменным будет выглядеть так, как показано ниже.
Dim aDouble As Double = 0
Dim aName As String = "default string"
Dim YesOrNo As Boolean = True
Объявление переменных и присвоение им значений по умолчанию в одной строке поможет предотвратить возможные ошибки. При этом далее в коде по-прежнему можно присваивать переменным другие значения.
Строковые переменные
Различают строки переменной и фиксированной длины. Строки переменной длины могут содержать до двух миллиардов символов. Когда такой переменной присваивается значение, то размер переменной изменяется так, чтобы он соответствовал длине присвоенного строкового значения.
Строка фиксированной длины - это строка постоянного размера, указанного при объявлении переменной. Если такой строке присваивается значение более длинное, то лишние символы отбрасываются. Если значение, которое присваивается, короче, то остающееся место заполняется пробелами. Строковые переменные фиксированной длины должны декларироваться явно. Синтаксис декларации следующий:
Dim VarName As String* ДлинаСтроки
где ДлинаСтроки - целочисленная переменная или константа, содержащая число, которое указывает длину строковой переменной.
Например:
Dim strMyName As String*20 ′ Объявляется строковая переменная фиксированной длины в 20 символов
Использование строковых переменных для организации слов
String (строка) представляет собой любой набор символов текста, таких как буквы, цифры, специальные знаки и пробелы. Строки могут быть легко читаемыми пользователем фразами или предложениями, такими как "Выпей же ещё чаю и съешь этих мягких французских булок", или совершенно нечитаемыми сочетаниями, такими как "@#fTWRE^3 35Gert".
Переменные String создаются так, как и другие переменные: путем первого объявления переменной и присвоения ей значения, как показано ниже.
Dim aString As String = "Это строка"
При назначении фактического текста (также называемого строка литералов) переменной типа String текст должен быть заключен в кавычки (""). Можно также использовать символ = при присвоении одной переменной типа String другой переменной типа String, как показано в этом примере.
Dim aString As String = "Это строка"
Dim bString As String = ""
bString = aString
Можно использовать знак амперсанда (& или знак «+») для последовательного объединения двух или более строк в новую строку, как показано ниже. Эта процедура также называется объединение.
Dim aString As String = "using string"
Dim bString As String = "variables"
Dim cString As String = ""
cString = aString & bString
В предыдущем примере объявляются три переменные String, первым двум присваиваются значения "using string" и "variables" соответственно, а затем объединенные значения первых двух переменных присваиваются третьей переменной. Каким будет значение переменной cString? Возможно, это удивительно, но значением этой переменной станет строка using stringvariables из-за отсутствия пробела в конце aString или в начале bString. Две строки просто соединены вместе. Если требуется добавить пробелы или что-либо еще между двумя строками, следует сделать это с помощью строкового литерала, например, " ", как показано ниже.
Dim aString As String = "using string"
Dim bString As String = "variables"
Dim cString As String = ""
cString = aString & " " & bString
Текст, содержащийся в переменной cString, теперь читается как using string variables.
Преобразование от одного типа переменной к другому
Существуют разные типы переменных. Тип определяет, какого рода данные может содержать переменная. Переменная типа Integer может содержать только числовые данные без десятичных разделителей. Переменная типа String может содержать только текст.
Что происходит, когда требуется отобразить данные типа Integer в элементе управления TextBox, для которого требуется тип данных String? В этом случае данные должны быть преобразованы из одного типа в другой. В этом разделе будет показано, как преобразовывать данные из одного типа в другой, рассказаны некоторые методы, используемые для преобразования данных, а также некоторые связанные с ними сложности.
Некоторые функции преобразования в Visual Basic
Val () | Используется для преобразования строк, содержащих числа, в число. Аргумент (что заключено в скобки) являющийся любым допустимым строковым выражением. |
Str () | Возвращает строковое представление числа. Аргумент (что заключено в скобки) типа Long и может быть любым допустимым числовым выражением. |
Chr | Преобразует число в символ Unicode. |
CInt | Преобразует выражение (любое числовое выражение или строка, представляющая число число от -32768 до 32767) к типу Integer с округлением. |
CLng | Преобразует выражение (Любое числовое выражение или строка, представляющая число от - до ) к типу Long с округлением. |
CSng | Преобразует выражение (любое числовое выражение или строка, представляющая число) к типу Single (число от -3.402823E8 до -1.401298E-45 для отрицательных значений и от 1.401298E-45 до 3.402823E8 для положительных значений). |
СDbl | Преобразует выражение (любое числовое выражение или строка, представляющая число) к типу Double (число в диапазоне значений от -1.E308 до -4.E-324 для отрицательных значений, и от 4.E-324 до 1.E308 для положительных значений.) |
CStr | Преобразует выражение (любое допустимое выражение или число) к типу String: · Строки переменной длины, которые могут содержать до приблизительно 2 миллиардов (2^31) символов. · Строки постоянной длины, которые могут содержать от 1 до приблизительно 64K (2^16) символов. |
Преобразование переменных в текст
Каждая переменная в Visual Basic может быть преобразована в текст с помощью специальной функции CStr (сокращение от Convert to String). Эта функция, как следует из ее названия, возвращает данные, представленные в переменной, в виде данных типа String (т. е. преобразует любое число в набор символов). В следующей процедуре демонстрируется простой пример преобразования данных типа Integer в текст.
Помимо преобразования переменных типа Integer в текст, функция CStr может использоваться для преобразования любого числового типа данных, например, Double или Long. Также она может использоваться для преобразования в текст данных типа Date и типа Boolean.
Преобразование между числовыми типами данных
Иногда результат арифметической операции не может быть представлен в виде Integer. Помимо функции преобразования чисел в текст, в Visual Basic также предусмотрены функции для преобразования переменных из одного числового типа данных в другой. Например, можно использовать функцию CDbl (Convert to Double) в арифметической операции для возврата дробных чисел при работе с переменными типа Integer. В следующей процедуре показано использование функции CDbl при делении двух целых чисел.


