Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Переменные

Процедуры и операторы

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

В VB существуют основные типы процедур:

- Sub;

- Function.

Процедура типа Sub (стандартная) не возвращает значения и чаще всего применяется для обработки какого-либо события (event). Её можно помещать в стандартные модули, модули классов и форм. Она заканчивается оператором End Sub.

Процедура типа Sub имеет основные параметры, указывающие её уровень доступности (или видимости):

- Public – процедура общедоступна в проекте, в котором объявлена;

- Private – процедура доступна только в том классе или модуле, в котором объявлена;

- Friend – процедура доступна только внутри той сборки, в которой объявлена. Сборка – это комплекс объектов из классов, используемых в программе, т. е. Friend – это указание видимости в пределах программы.

Процедура типа Function может возвращать значение в вызывающую процедуру. Возвращаемое значение чаще всего присваивается самому имени функции. В качестве уровня доступности функции могут быть также параметры Public, Private и Friend и др. Процедура типа Function объявляется оператором Function и заканчивается оператором End Function.

Процедуры состоят из операторов – наименьших жизнеспособных единиц программного кода, которые занимают, как правило, одну строку кода.

Операторы осуществляют действия над процедурами, переменными и константами.

Переменная (variable) – это объём оперативной памяти, зарезервированный для временного хранения данных.

Строго говоря, переменная (как контейнер для хранения данных) и хранящаяся в ней информация – это не одно и то же, и надо бы говорить: "информация, представляемая переменной", т. к. надо иметь в виду, что переменная может не только содержать данные, но и стать командой.

Каждая переменная имеет собственное имя и, чтобы обратиться в программе к содержанию переменной, достаточно указать её имя.

Правила выбора имен для переменных

Для того чтобы сделать переменные простыми для понимания, следует давать им имена, имеющие определённое смысловое значение.

При выборе имени переменной должны выполняться следующие правила:

- имя переменной может содержать любые буквы, цифры и символ подчёркивания;

- первый символ в имени переменной должен быть буквой или символом подчеркивания;

- в имени переменной должны отсутствовать пробелы, знаки пунктуации и символы, используемые для математических операций и операций сравнения;

- имя должно быть уникальным внутри области видимости переменной;

- имя переменной не должно быть ключевым словом VB.

Имена переменных "не чувствительны" к состоянию регистра, т. е. употребление прописных или строчных букв в имени переменной значения не имеет.

Типы переменных

Переменные могут хранить данные следующих типов:

 

Тип Описание Значение
Byte 1 байт, целое без знака От 0 до 255
SByte 1 байт, целое со знаком От -128 до 127
Short 2 байта, целое со знаком От – 32768 до 32767
UShort 2 байта, целое без знака От 0 до 65535
Integer 4 байта, целое со знаком От -2 147 483 648 до 2 147 483 647
UInteger 4 байта, целое без знака От 0 до 4 294 967 295
Long 8 байтов, целое со знаком От – 9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
ULong 8 байтов, целое без знака От 0 до 18 446 744 073 709 551 615
Single 4 байта, с плавающей точкой (одинарной точности) Отрицательные числа: от – 3.4028235E38 до -1.40129Е-45 Положительные числа: От 1.40129Е-45 до 3.4028235E38
Double 8 байтов, с плавающей точкой (двойной точности) Отрицательные числа: от – 1.79769313486231570Е308 до 4.940656458412Е-324 Положительные числа: от 4.940656458412Е-324 до 1.79769313486231570Е308
Decimal 16 байтов, с фиксированной точкой Как целое число со знаком: От – 79 228 162 514 264 337 593 543 950 335 до 79 228 162 514 264 337 593 543 950 335 Фиксированное дробное с точкой (28 разрядов после точки): от – 7.9228162514264337593543950335 до 7.9228162514264337593543950335
Тип Описание Значение
Date 8 байтов Дата от 1 января 0001 года до 31 декабря 9999 года и время от 0:00:00 до 23:59:59
String Строка символов от 0 до 2 000 000 000 символов текста в кодировке Unicode (ориентировочно)
Char 2 байта, символы Unicode 65536 символов
Boolean Различное Два значения: True или False
Object Различное Хранятся данные любого типа

Переменная типа Boolean принимаеттолько два значения: True или False. При переводе числовых значений в логические "0" становится False, а "1" – True. Когда логические значения переводятся в числовые, False становится "0", а True – "1". Начальное значение переменной типа Boolean присваивается (по умолчанию) - False.

Для хранения двоичных чисел используется либо переменная, либо массив чисел типа Byte.

Для хранения текстовых данных предназначены переменные типов Char и String. Первый из них хранит символ в кодировке Unicode, а второй – строку от 0 до 2 млрд. символов. Строка –последовательность символов, заключённая в кавычки.

Значение даты заключается в знаки # (решётка) в формате # месяц /день/год #. Переменной типа Date присваивается начальное значение (по умолчанию) – 12:00 1 января 0001 года.

Для хранения целых чисел со знаком служат переменные типа Sbyte, Short, Integer, Long, а для чисел без знака - переменные типа Byte, UShort, Uinteger, ULong.

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

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

В случае явного преобразования используется конвертирование с помощью методов класса System.Convert.

Тип данных Object может хранить различные данные и изменять их тип во время выполнения программы.

При разработке программ в зависимости от типа данных переменных можно использовать префиксы, что уменьшает вероятность появления синтаксических ошибок, а именно:

Тип данных Префикс Пример
Byte byt bytРисунок
Short shr shrГод
Integer int intРанг
Long lng lngCount
Single sng sngLength
Double dbl dblSum
Decimal dec decЦена

 

Тип данных Префикс Пример
String str strИмя
Date dtm datДеньПобеды
Boolean bln blnЦвет
Object obj objСотрудник

 

Объявление переменных (variable declaration)

Самый простой способ создания переменной – это использование ее с оператором (=), который называется оператором присвоения. Сохранение значения данных в переменной называется присваиванием переменной. Например: MyVar = 25, т. е., в ячейку под именем MyVar заносится значение 25.

Создание переменной присваивания ей значения без объявления называется неявным объявлением переменной (implicit variable declaration).

Явное объявление переменной (explicit variable declaration) обеспечивается операторами объявления (ключевыми словами): Dim, Private, Static и Public, которые имеют следующий синтаксис.

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

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

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

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

 

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

Наиболее часто для объявления переменных используется ключевое слово Dim (Dimension – размер), создающее пространство для хранения данных, на которое ссылается переменная.

Явное объявление переменной имеет следующие преимущества:

- ускоряется выполнение кода;

- уменьшается количество ошибок в результате неправильного написания имени переменной;

- код становится более читабельным и понятным;

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

По умолчанию компилятор VB устанавливает режим явного объявления переменных (Option Explicit On).

Для того чтобы отменить этот режим, нужно в начале программного кода ввести оператор Option Explicit Off или выделить в окне Обозреватель решений соответствующий проект, выбрать в контекстном меню пункт Свойства, затем - вкладку Компиляция и установить для параметра компиляции Явное объявление переменных значение Off.

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

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

Переменная, объявленная с ключевым словом Private, доступна только в пределах контекста, в котором объявлена. Она может быть объявлена внутри модуля или класса, но не внутри процедуры.

Переменная, имеющая видимость внутри модуля, создаётся в разделе объявлений модуля с объявлением, как правило, оператором Dim, а также и оператором Private.

Если же переменная объявлена оператором Dim внутри процедуры, то она становится доступной только в пределах этой процедуры. Такая переменная называется локальной.

Локальные переменные, т. е. переменные уровня процедуры, объявляются только операторами Dim или Static.

Если переменная при объявлении указана как Static, то она сохраняет своё прежнее значение после завершения процедуры, в которой была объявлена. Она не может быть объявлена вне процедуры.

Присваивая имена переменным с учётом области их действия, можно использовать для уменьшения ошибок префиксы:

 

Область видимости переменной Оператор объявления Префикс Пример записи
Глобальная внутри проекта Public g gdtmСтарт
Локальная внутри модуля (модульный уровень) Dim, Private m msngДлина
Локальная внутри процедуры Dim, Static Нет префикса strФамилия

 

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

Public intA As Integer

Module Module1

Dim intA As Integer

Sub Main()

Dim intA As Integer

intA = 10 'используется локальная переменная из процедуры Sub Main

End Sub

End Module

С помощью одного оператора можно через запятую объявлять несколько переменных, например:

Private Успех As Boolean, Цена As Single

Dim Фамилия, Имя, Отчество As String, Сумма As Double

Указание типа данных (As типДанных) переменной не является обязательным, и, если тип данных не указан, то VB назначит переменной тип значения, которое ей присваивается.

Если тип данных при объявлении переменной не указан, и переменной не присвоено какое-нибудь начальное значение, то ей назначается тип Object.

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

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

Присвоение значения (инициализация) переменной

Присвоение значения переменной обеспечивается с помощью оператора присвоения (=), при этом аргумент (имя переменной) инициализируется:

- конкретным значением;

- другой переменной;

- константой;

- созданной функцией;

- стандартной функцией VB;

- комплексным выражением.

Например:

intСчетчик = 100

sngРезультат = sngRest + 346.24

strName = "Фирсов" & strКоманда

Присвоение значений нескольким переменным может осуществляться также и в одной строке. В этом случае операторы присвоения разделяются двоеточием.

Нулевые значения переменных

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

- строки инициализируются строками нулевой длины (" ");

- числа инициализируются нулевым значением (0);

- даты – значением "30 декабря 1899 года". Это значение визуализируется как #12:00:00 AM#;

- в случае логической переменной типа Boolean, при отсутствии у неё определённого значения для присвоения ей нулевого значения используется структура Nullable.

Если переменная Boolean используется сразу же после объявления до присвоения ей какого-либо значения, то её нулевое значение обязательно должно записываться в программный код.

При этом нулевое значение переменной Boolean образуется описываемой ниже структурой:

Dim Дети As Nullable (Of Boolean)

По умолчанию при объявлении переменной типа Boolean она принимает нулевое значение False.

Чтобы определить, содержит ли переменная нулевое значение определённое, используется свойство HasValue (проверка наличия значения).

 

Например:

 

Dim Дети As Nullable(Of Boolean)

'Дети = True

If Дети.HasValue Then

MsgBox("Дети есть")

MsgBox(Дети.HasValue)

Else

MsgBox("Детей нет")

MsgBox(Дети.HasValue)

End If

 

В случае нулевого значения будет генерироваться сообщение: "Детей нет" и False (т. е. свойство Дети.HasValue = False).

Если переменной "Дети" уже было присвоено значение True (перед проверкой условия в программу был введен оператор: Дети = True), то при проверке нулевого значения будет высвечиваться сообщение: "Есть дети" и True (т. е. свойство Дети.HasValue = True).

Примеры использования переменных

Dim strПриветствие As String 'используется всеми процедурами модуля

Sub ПриветМир()

strПриветствие = "Привет, мир!"

MsgBox (strПриветствие,, "Окно приветствия")

End Sub

Sub ПриветПётр()

strПриветствие = "Привет, Пётр!"

MsgBox (strПриветствие,, "Второе сообщение")

End Sub

 

Объявление переменной strПриветствие в процедурах не обязательно, т. к. она объявлена в разделе объявлений модуля и является общей для всех процедур модуля. Но в каждой процедуре будет действовать своё, локальное значение переменной.

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

Например, в структуре оператора MsgBox, визуализирующего результат выполнения процедуры, используются три аргумента:

- первый – содержание сообщения (переменная strПриветствие);

- второй – указание вида окна сообщений MsgBox. Если этот аргумент опускается, т. е., между запятыми – пробел, то в окно (по умолчанию) встраивается только кнопка ОК;

- третий – заголовок окна сообщения. Так как заголовок - это текст, то его заключают в кавычки.

<== предыдущая лекция | следующая лекция ==>
Грунтоуплотняющие машины и оборудование динамического действия | Исходные материалы для доменного производства
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 666; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.