Переменные в Visual Basic

Содержание

Слайд 2

Переменные. Переменные Каждая переменная имеет своё имя. Оно может достигать 255

Переменные.

Переменные
Каждая переменная имеет своё имя.
Оно может достигать 255 символов в

длину, начинается всегда с буквы латинского алфавита, за которой могут следовать другие буквы, цифры и знак подчёркивания.
Регистр символов значения не имеет.
Слайд 3

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

Переменные.

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

Постарайтесь чтобы именование переменных

согласно такой схеме у вас вошло в привычку.
Я советую, но не настаиваю.
Слайд 4

Типы переменных в Visual Basic. Всего в VB 14 типов переменных.

Типы переменных в Visual Basic.

Всего в VB 14 типов переменных.

Кроме того,

программист может определить и свой тип.
Слайд 5

Типы переменных в Visual Basic.

Типы переменных в Visual Basic.

Слайд 6

Типы переменных в Visual Basic.

Типы переменных в Visual Basic.

Слайд 7

Переменные в Visual Basic. В Visual Basic переменные объявляются с помощью

Переменные в Visual Basic.

В Visual Basic переменные объявляются с помощью оператора

Dim, после которого следует As и Имя_Типа переменной.

Например:

Dim a As Long
Dim b As Byte
Dim c As Long
Dim numOfLetters As Long
Dim myString As String
Dim isLoaded As Boolean

Если не указывать As Имя_Типа, то переменная будет объявлена как Variant.

Слайд 8

Переменные в Visual Basic. После объявления переменной ей присваивается значение по

Переменные в Visual Basic.

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

Для

строки это - "" (пустая строка).
Для чисел - 0.
Для Boolean - False.

Переменная может быть использована сразу после объявления.

Слайд 9

Переменные в Visual Basic. Переменные можно объявлять и в одной строчке,

Переменные в Visual Basic.

Переменные можно объявлять и в одной строчке, разделяя

объявления запятыми:
Dim a As Long, Dim b As Long, Dim c As Long

важно заметить следующую особенность

Логично было бы объявить 3 переменные типа Long следующим образом:

Dim a, b, c As Long

В результате такого объявления VB объявит 3 переменные, первая и вторая будут иметь тип Variant, и только третья - Long!

Запомните это!

Слайд 10

Переменные в Visual Basic. Для объявления переменной можно, а иногда и

Переменные в Visual Basic.

Для объявления переменной можно, а иногда и нужно

использовать суффикс, но без использования зарезервированных слов As Тип.

Dim myLongParam&
Dim myString$

Также можно использовать суффиксы для явного указания типа константам

Call MyProc (myParam1, myParam2, 5&)

При вызове процедуры MyProc, последний параметр имеет тип Long.
Если бы мы не указали значок &, то он (параметр) имел бы тип Byte.

Слайд 11

Переменные в Visual Basic. Присвоить значение переменной можно при помощи знака

Переменные в Visual Basic.

Присвоить значение переменной можно при помощи знака равно

"=".

Dim a As Long , Dim b As Byte , Dim c As Long
Dim myString As String
Dim isLoaded As Boolean
a = 1234567
b = 234
c = 133
myString = "Visual Basic рулит”
isLoaded = True

Слайд 12

Переменные в Visual Basic. Совместимость и преобразование типов a = b

Переменные в Visual Basic.

Совместимость и преобразование типов

a = b '

можно, т.к. переменная b "умещается" в тип Long
a = b + c ' теперь в a хранится сумма b + c.
b = c ' тоже возможно (133 < 255)
b = a ' нельзя, т.к. переменная a не укладывается в диапазон [0-255].
myString = a
' VB сам преобразует число 1234567 в строку "1234567 ",
' а потом присвоит это значение переменной myString.
' Возможно и обратное действие. isLoaded = True ' всё ОК
myString = myString & " однозначно!"
' здесь происходит слияние двух строк,
' в результате переменная myString содержит строку:
' "Visual Basic рулит однозначно!".
isLoaded = a
' возможно, т.к. VB сам преобразует тип Long в
' тип Boolean. isLoaded будет содержать True.
Слайд 13

Переменные в Visual Basic. Рассмотрим распространённую ошибку Dim a As Byte

Переменные в Visual Basic.

Рассмотрим распространённую ошибку

Dim a As Byte
Dim b As

Byte
Dim c As Long
a = 200
b = 200
c = a + b

Казалось бы, что если запустить такой код на выполнение, то в переменной c будет находиться значение 400 (200 + 200).

Visual Basic на строке c = a + b сгенерирует ошибку Overflow

Дело в том, что в выражении справа от знака равно складываются 2 переменные типа Byte, и Visual Basic решает, что после вычисления этого выражения, должен остаться тот же тип - Byte.

Слайд 14

Переменные в Visual Basic. Visual Basic предоставляет в ваше распоряжение несколько

Переменные в Visual Basic.

Visual Basic предоставляет в ваше распоряжение несколько функций

преобразования типов:
CLng, CBool, CDate, CStr и т.д.

Dim a As Byte
Dim b As Byte
Dim c As Long
a = 200
b = 200
c = CLng(a) + CLng(b) 'Всё в порядке

Слайд 15

Область "видимости" переменных. Объявлять переменные можно в самых разных местах: Внутри

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

Объявлять переменные можно в самых разных местах:
Внутри процедуры (функции)


В разделе General Declarations формы
В разделе General Declarations модуля
Слайд 16

Область "видимости" переменных. Переменная объявлена внутри процедуры (функции) В этом случае

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

Переменная объявлена внутри процедуры
(функции)

В этом случае переменная будет

"видна" только в коде этой процедуры (функции).
Если вы попытаетесь обратиться к такой переменной внутри кода другой процедуры, то Visual Basic сгенерирует ошибку.
Слайд 17

Область "видимости" переменных. Переменная объявлена в разделе General Declarations формы (В

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

Переменная объявлена
в разделе
General Declarations
формы
(В самом верху

кода формы, т.е. сразу после оператора Option Explicit)

Такие переменные будет "видны" в любом месте кода формы, т.е. в любой процедуре (или функции) формы.
Переменные в данном месте могут быть объявлены с помощью зарезервированных слов Private и Public.

Слайд 18

Область "видимости" переменных. Переменная объявлена в разделе General Declarations модуля Здесь

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

Переменная объявлена
в разделе
General Declarations
модуля

Здесь действуют те

же правила, что и в разделе General Declarations формы.
Private (или Dim) будут "видны" только в коде модуля, а Public - везде.
Отличие наблюдается только в способе доступа к переменной. Не обязательно указывать имя модуля перед такой переменной.
Слайд 19

Область "видимости" переменных. Рассмотрим 3 определения: Dim myLocalVar1 As Byte Private

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

Рассмотрим 3 определения:

Dim myLocalVar1 As Byte
Private myLocalVar2 As Integer
Public

myGlobalVar1 As Long

Первые 2 определения абсолютно эквивалентны.

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

Третья переменная будет видна всему приложению в любом месте.

Чтобы добраться к такой переменной из кода другой формы, необходимо перед именем переменной указать ещё и имя формы, где эта переменная объявлена

Form1.myGlobalVar1 = 234

Слайд 20

Период существования переменных. Переменные, объявленные в процедуре (функции) будут "живы" только

Период существования переменных.

Переменные, объявленные в процедуре (функции) будут "живы" только пока

выполняется эта процедура (функция).

При выходе из процедуры - переменная удаляется.
При очередном вызове этой процедуры - переменная заново инициализируется.

Дополнительно к словам Private, Public и Dim, в процедурах и функциях можно использовать зарезервированное слово Static.

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

Static myStat As String ' Private Static переменная

Слайд 21

Период существования переменных. Переменные уровня формы будут "живы" только пока "жива"

Период существования переменных.

Переменные уровня формы будут "живы" только пока "жива" форма.


Как только объектная переменная формы будет установлена в Nothing (или после выполнения оператора Unload), все переменные уровня этой формы удаляются.

Переменные уровня модуля "живы", пока "живёт" ваше приложение.

Т.е. "живы" всегда.

Слайд 22

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

Константы.

Чтобы объявить константу необходимо использовать зарезервированное слово Const, за которым следует

имя и значение (и возможно тип) константы

Const PI = 3.1415

Для констант с плавающей точкой тип по умолчанию - Double

Для констант - целых чисел тип по умолчанию – Integer

Для того чтобы явно задать тип константы, необходимо после имени задать тип

Const PI As Long = 3 ' PI = 3, PI имеет тип Long

Слайд 23

Массивы. В Visual Basic массивы определяются следующим образом: Dim ИмяМассива(НомПерв1 То

Массивы.

В Visual Basic массивы определяются следующим образом:
Dim ИмяМассива(НомПерв1 То НомПосл1 [,

НомПерв2 То НомПосл2, ...]) [As [New] ИмяТипа]

Например:

массив myArray будет содержать 11 элементов, потому что нижняя граница массива начинается с нуля

Чтобы задать определённую размерность можно использовать зарезервированное слово To:

Dim myArray (5 To 10) As Long

Массивы можно делать многомерными:

Dim chessTable (1 To 8, 1 To 8) As String

Dim myArray (10) As Long

Слайд 24

Массивы переменной размерности . Динамические массивы - это такие массивы, размерность

Массивы переменной размерности .

Динамические массивы - это такие массивы, размерность которых

может меняться в ходе работы программы.

Опеределяется такой массив следующим образом:
Dim ИмяМассива() [As [New] ИмяТипа]

Например:

Dim myArray () As Byte

Слайд 25

Массивы переменной размерности. К элементам динамического массива сразу обращаться нельзя т.к.

Массивы переменной размерности.

К элементам динамического массива сразу обращаться нельзя

т.к. они ещё

не инициализированы.

Для начала нужно указать размерность массива

для этого в VB есть оператор ReDim.

Например:

ReDim myArray (4)

Если в дальнейшем возникнет необходимость снова изменить размерность массива, можно ещё раз использовать ReDim.

Слайд 26

Массивы переменной размерности. Рассмотрим пример: Dim myLong As Long Dim myArray()

Массивы переменной размерности.

Рассмотрим пример:

Dim myLong As Long
Dim myArray() As Long ' объявляем

массив
ReDim myArray (2) ' одна размерность [0,1,2]
myArray (1) = 234 ' присваиваем второму элементу чило 234
myLong = myArray (1) ' сохраняем его в переменной myLong
ReDim myArray (3) ' снова меняем размерность - теперь [0,1,2,3]
myLong = myArray (1) ' снова пытаемся сохранить второй элемент

В результате, переменной myLong присвоится 0 вместо 234!

Оператор ReDim заново инициализирует все элементы массива к значению по умолчанию.

Слайд 27

Массивы переменной размерности. Если мы хотим изменить размеры массива, сохранив все

Массивы переменной размерности.

Если мы хотим изменить размеры массива, сохранив все старые

элементы нужно после оператора ReDim поставить слово Preserve.
ReDim Preserve myArray (3) ' сохраняем старые элементы
myLong = myArray (1) ' всё в порядке
Слайд 28

Полезная информация. Массивы могут храниться в переменных типа Variant. В некоторых

Полезная информация.

Массивы могут храниться в переменных типа Variant.

В некоторых случаях

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

Чтобы сохранить массив в переменной типа Variant необходимо просто присвоить его этой переменной

Dim myVariantArray ' переменная Variant по умолчанию
myVarianrArray = chessTable

Обратите внимание, никакие индексы указывать не нужно!

Слайд 29

Полезная информация. Чтобы узнать текущие размеры массива, можно использовать встроенные функции

Полезная информация.

Чтобы узнать текущие размеры массива, можно использовать встроенные функции Visual

Basic

LBound

возвращает нижнюю границу массива

UBound

возвращает верхнюю границу массива

Слайд 30

Записи. Чтобы определить запись, в программе нужно использовать зарезервированное слово Type,

Записи.

Чтобы определить запись, в программе нужно использовать зарезервированное слово Type, описание

заканчивается словом End Type.

Private Type Student ' вместо Private могло быть и Public
    FIO As String
    Age As Byte
    HasGramot As Boolean
End Type

Dim перед именем переменной указывать не нужно!

Слово Student синим выделяться не будет, т.к. синюю подсветку имеют только зарезервированные слова

Слайд 31

Записи. К полям записи можно обращаться при помощи точки: Теперь можно

Записи.

К полям записи можно обращаться при помощи точки:

Теперь можно объявлять переменные,

имеющий тип – Student:

Dim newStud As Student

newStud.FIO = "Василий Петрович Пупкин»
newStud.Age = 19
newStud.HasGramot = False

Всё как в Pascal.

Слайд 32

Записи. Visual Basic предоставляет возможность не указывать каждый раз имя переменной

Записи.

Visual Basic предоставляет возможность не указывать каждый раз имя переменной типа

запись, при обращении к её элементам.

Для этого есть зарезервированное слово With.

With newStud
    .FIO = "Бабай Бабаевич Бабаев”
    .Age = 20
    .HasGramot = True
End With

Слайд 33

Перечисления. В Visual Basic определен новый тип - перечисление. Перечисление -

Перечисления.

В Visual Basic определен новый тип - перечисление.

Перечисление - это список

констант.

Перед использованием перечисления в программе его необходимо определить с помощью зарезервированного слова Enum.

Enum Ocenka
    Neud = 3
    Horosho = 4
    Otlichno = 5
End Enum

Слайд 34

Перечисления. Присваивать значения константам внутри Enum не обязательно. Если этого не

Перечисления.

Присваивать значения константам внутри Enum не обязательно.

Если этого не сделать, то

константы будут принимать значения 0,1,2... и т.д..
Слайд 35

Перечисления. Введем переменную типа Ocenka: Dim oc1 As Ocenka Если теперь

Перечисления.

Введем переменную типа Ocenka:

Dim oc1 As Ocenka

Если теперь вы попытаетесь присвоить

такой переменной значение - Visual Basic выдаст список
(Neud, Horosho и Otlichno)
из которого вы сможете выбрать нужное значение.