Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
87
Добавлен:
27.04.2015
Размер:
980 Кб
Скачать

4.2.2. Типы данных, способы их объявления, переменные, константы и оператор присваивания

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

  • имя переменной – по имени компилятор осуществляет связь переменной в программе с областью оперативной памяти компьютера;

  • тип переменной – тип позволяет компилятору определить, какого вида информация хранится в переменной;

  • значение переменной – определяет содержание информации, которая хранится в памяти компьютера.

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

  • начинать имя каждой переменной с буквы или знака подчеркивания. (это тре­бование VB – имена переменных могут содержать только буквы, цифры и знак подчеркивания);

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

  • делать имена своих переменных описательными, комбинируя, когда это имеет смысл, одно или несколько слов;

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

  • не использовать в качестве имен переменных ключевые слова VB, име­на объектов или свойств (если вы это сделаете, то при попытке запуска про­граммы получите сообщение об ошибке).

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

Таблица 4.2.2-1 содержит перечень базовых (простых) ти­пов данных VB. Причем каждый базовый тип языка VB соответствует типу данных .NET Framework.

Таблица 4.2.2-1

Тип

данных

бит

Диапазон

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

Что хранит

(Тип .NET)

Short

16

от-32768

до 32767

Dim Birds As Short

Birds = 12500

Целые числа

(System. Int)

UShort

16

от 0

до 65535

Dim Days As UShort

Days = 55000

Целые числа

(System.UInt)

Integer

32

от-2147483648

до 2147483647

Dim Insects As Integer

Insects = 37500000

Целые числа

(System.Int32)

UInteger

32

от 0

до 4294967295

Dim Joys As UInteger

Joys = 3000000000

Целые числа

(System.UInt32)

Long

64

от-9223372036854775808

до 9223372036854775807

Dim WorldPop As Long

WorldPop = 4800000004

Целые числа

(System.Int64)

ULong

64

от 0

до 18446744073709551615

Dim Stars As ULong

Stars=

180000000000000000

Целые числа

(System.UInt64)

Single

32

от -3.4028235Е38

до 3.4028235Е38

Dim Price As Single

Price = 899.99

Числа с пл. точкой

(System.Single)

Double

64

от -1.79769313486231Е308

до 1.79769313486231Е308

Dim Pi As Double

Pi = 3.1415926535

Числа с пл. точкой

(System.Double)

Decimal

128

Полож. и отриц. значения

до 29 знаков

Dim Debt As Decimal

Debt =7600300.50

Числа с фик. Точкой (System.Decimal)

Byte

8

от 0

до 255 без знака

Dim RetKey As Byte

RetKey = 13

Десятичные числа

(System.Byte)

SByte

8

от-128

до127

Dim NegVal AsSByte

NegVal = -20

Целые числа

(System.SByte)

Char

16

любой символ Unicode в диапазоне 0 - 65535

Dim UChar As Char UChar="A"

Один символ

(System.Char)

String

16

от0 до ≈ 2 миллиардов символов Unicode

Dim Dog As String

Dog ="pointer"

Текст

(System.String)

Boolean

16

True или False (при преобразовании типов 0 преобразуется в False, а

все другие значения в True)

Dim Flag As Boolean

Flag = True

Логические знач.

(System.Boolean)

Data

64

от 1 января 0001

до 31 декабря 9999

Dim Birthday As Date

Birthday=#3/1/1963#

Дату и время

(System.DateTime)

Object

32

любой тип, который может быть сохранен в

переменной типа Object

Dim App As Object

App = CreateObject _ ("Word.Application")

Ссылка на объект

(System.Object)

В программном коде может использоваться любое количество переменных, и они могут со­держать слова, числа, даты, свойства или другие значения. Использова­ние переменных позволяет присвоить каждой части данных, с которыми вы работаете, короткие и легко запоминаемые имена. Переменные могут хранить информацию, введенную пользователем при выполнении про­граммы, результат некоторого вычисления или данные, которые отображаются на форме. Если коротко, то переменные явля­ются удобными контейнерами, которые используются для хранения ин­формации почти любого типа.

Как было отмечено ранее, использование переменных в программе на VB требует не­которого планирования. Прежде чем использовать переменную, необ­ходимо выделить в компьютере память, которую эта переменная будет занимать. Этот процесс несколько напоминает бронирование мест в театре или на спортивном матче.

Для каждого типа переменных выделяется определенное количество оперативной памяти, и тип данных надо выбирать, исходя из задания на решение конкретной задачи. Если данные должны принимать только целые значения, то тип соответствующих переменных в программе должен быть Integer, но никак не Single, поскольку в этом случае мы увеличиваем объем используемой оперативной памяти и не гарантируем получение правильного (точного) результата. Если из постановки задачи известно, что данные могут принимать дробные значения, то соответствующим переменным в программе необходимо назначить тип Single или Double, поскольку любой другой тип переменных может привести к непредвиденным результатам. Поэтому в VB следует всегда явно объявлять переменные до их использования. А для того чтобы VB информировал программистов о том, что переменная явно необъявлена до ее использования, необходимо в начале программного кода (перед всеми процедурами) и объявлениями поместить оператор: Option Explicit Оn.

Чтобы в VB явно объявить переменную, необходимо ввести имя пере­менной после оператора Dim (Dim означает dimension – размер), а тип переменной после слова As. При этом оператор объяв­ления выделяет для переменной место в памяти, по которо­му компилятор VB узнает тип данных, связанный с этой переменной.

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

Dim имена_переменных As тип, имена_переменных As тип,

Например, следующие операторы резервируют «место» в памяти ПК для различных типов переменных:

Dim LName As String

Dim Кол As Integer, b As Single

Dim Ном, d As Integer

Таким образом, для пере­менной с именем LName резервируется оперативная память, которая будет хранить стро­ковое значение; для переменных с именем Кол и b резервируется оперативная память, которая будет хранить, соответственно, целые и вещественные значения; для переменных с именем Ном и d резервируется оперативная память, которая хранит целые значения.

Кроме оператора Dim, переменные можно объявить и с помощью операторов Private и Public:

Private имена_переменных As тип, имена_переменных As тип…

Public имена_переменных As тип, имена_переменных As тип…

Выбор ключевого слова Dim, Private или Public определяется необходимой областью видимости переменной.

Более подробно области видимости переменных и, соответственно, использование операторов Private и Public будут рассмотрены далее.

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

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

Идентификатор = выражение.

Res = 20.56

X1 = А + 5 / sin(x^ 2)

Следующий оператор программы присваивает переменной LName значение «Иванов»:

LName = "Иванов"

После того, как переменной LName присвоено значение, она может использоваться в программном коде вместо имени «Иванов».

Например, оператор присваивания

Label1.Text = LName

отобразит «Иванов» в первой надписи (Label1) на форме.

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

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

Пример 4.2.2-1. Создать проект, в котором изменяются значения переменных.

  1. Запустить VS.

  2. Выполнить команды, позволяющие создавать новый проект с именем Пример 2.2-1.

В окне Конструктор появится пустая форма Пример 2.2-1.

  1. На ней создать интерфейс проекта Пример 2.2-1 (рис.4.2.2-1).

Эта форма содержит две надписи и две кнопки. Для отображения ин­формации в каждой из этих надписей необходимо использовать пере­менные. Объекты надписей выглядят как поля потому, что свойства BorderStyle установлены в значение Fixed3D.

Рис. 4.2.2-1. Исходная форма проекта Пример 2.2-1

  1. Дважды щелкнуть мышью на кнопке формы Показать.

В окне Редактор кода появится процедура события Button1_Click(…).

  1. Чтобы объявить и использовать переменную Name, необходимо ввести следующие операторы:

Dim Name As String

Name = "Петров"

Label1.Text = Name

Name = "проф. Сидоров"

Label4.2.Text = Name

Эти операторы разбиты на три группы. Первый опера­тор объявляет переменную Name типа String, используя для этого, оператор Dim. После ввода этой строки VS выведет под переменной Name волнистую линию, указывающую, что она была объявлена, но не используется в программе. Здесь нет ошибки – VS просто напоминает, что была создана новая переменная, кото­рую следует использовать.

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

Вторая и третья строки присваивают переменной Name имя «Петров», а затем отображают это имя в первой надписи формы. Этот пример демонстрирует одно из наиболее частых применений пере­менных в программе – передачу информации в свойство. На экране все строковые значения, присваиваемые переменным, отображаются красным цветом.

Четвертая строка присваивает переменной Name значение «проф. Сидоров» (другими словами, она изменяет содержимое этой пе­ременной). Обратите внимание, что вторая строка длиннее, чем пер­вая, и содержит пробелы. Когда переменным присваива­ются текстовые строки или, когда строки используются в других местах, текст этих строк требуется заключать в двойные кавычки.

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

  1. Чтобы отобразить форму, щелкнуть на вкладке Form1.vb[Конструктор].

  2. Дважды щелкнуть мышью на кнопке Выход.

В окне Редактор кода появится процедура события Button2_Click(…).

  1. Чтобы обозначить точку конца программы, где она остановит свое выполнение, ввести оператор End.

Окно редактора кода будет таким, как показано на рис. 4.2.2-2.

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object,_

ByVal e As System.EventArgs) Handles Button1.Click

Dim LName As String

LName = "Петров" : Label1.Text = LName

LName = "проф. Сидоров" : Label4.2.Text = LName

End Sub

Private Sub Button2_Click(ByVal sender As System.Object,_

ByVal e As System.EventArgs) Handles Button4.2.Click

End

End Sub

End Class

Рис. 4.2.2-2. Программный код проекта Пример 2.2-1

  1. Чтобы сохранить изменения в проекте, необходимо щелкнуть на кнопке Сохранить все Главной панели инструментов.

  2. Далее, чтобы запустить программу – необходимо щелкнуть на кнопке

Начать отладку, расположенной на Главной панели инструментов.

Программа начнет выполняться, и на экране отобразится

первоначальное состояние формы.

  1. Щелкнуть на кнопке приложения Показать.

Программа продолжит выполнение: объявляется переменная, которой поочередно присваиваются два значения, и каждое из значений копируется в соответствующую надпись на форме. Результат работы программы отображается на экранной форме, показанной на рис. 4.2.2-3.

Рис. 4.2.2-3. Форма проекта Пример 4.2.2-1 с результатом работы проекта

  1. Чтобы завершить выполнение программы, щелкнуть на кнопке

Выход.

Пример 4.2.2-2. Создать проект, показывающий использование фундаментальных (базовых) типов данных.

  1. Запустить VS.

  2. Выполнить команды, позволяющие создать проект Пример-2.2-2.

В окне Конструктор форм появится пустая форма Пример2.2-2.

На ней необходимо создать форму проекта Пример 2.2-2 (рис.4.2.2-4).

Проект Фундаментальные типы данных – это учебный проект, который будет демонстрировать работу основных типов данных. Необходимо обратить внимание, на то, где должны рас­полагаться объявления переменных так, чтобы они были доступны для всех процедур событий проекта.

Кроме того, в этом проекте используется элемент управления ListBox.

ListBox – это список, в который можно записывать и из которого можно выбирать одно из предложенных значений. Значения в списке могут размещаться в одну или несколько колонок в зависимости от значения свойства MultiColumn. Если элементы списка расположены в нескольких колонках, с помощью свойства ColumnWidth можно изменить заданную по умолчанию ширину колонок.

Рис. 4.2.2-4. Форма проекта Пример 4.2.2-2

Элементы в списке могут добавляться во время разработки проекта и программой – во время выполнения программы.

При формировании списка во время проектирования с помощью свойства Items вручную задается весь необходимый список. После задания всех элементов нужно нажать кнопку OK, окно редактора элементов управления закроется, а элемент управления ListBox будет отображать указанные значения.

  1. В окне Редактор кода дописать программный код (рис. 4.2.2-5).

Public Class Form1

Dim Birds As Short

Dim Insects As Integer

Dim WorldPop As Long

Dim Price As Single

Dim Pi As Double

Dim Debt As Decimal

Dim RetKey As Byte

Dim UnicodeChar As Char

Dim Dog As String

Dim Flag As Boolean

Dim Birthday As Date

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As _

System.Object, ByVal e As System.EventArgs) _

Handles ListBox1.SelectedIndexChanged

Select Case ListBox1.SelectedIndex

Case 0

Birds = 12500

Label3.Text = Birds

Case 1

Insects = 37500000

Label3.Text = Insects

Case 2

WorldPop = 4800000004

Label3.Text = WorldPop

Case 3

Price = 899.99

Label3.Text = Price

Case 4

Pi = 3.1415926535

Label3.Text = Pi

Case 5

Debt = 7600300.5

Label3.Text = Debt

Case 6

RetKey = 13

Label3.Text = RetKey

Case 7

UnicodeChar = "Д"

Label3.Text = UnicodeChar

Case 8

Dog = "pointer"

Label3.Text = Dog

Case 9

Flag = True

Label3.Text = Flag

Case 10

Birthday = #3/1/1963#

Label3.Text = Birthday

End Select

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) HandlesMyBase.Load

ListBox1.Items.Add("Short") : ListBox1.Items.Add("Integer")

ListBox1.Items.Add("Long") : ListBox1.Items.Add("Single")

ListBox1.Items.Add("Decimal") : ListBox1.Items.Add("Byte")

ListBox1.Items.Add("Char") : ListBox1.Items.Add("String")

ListBox1.Items.Add("Boolean") : ListBox1.Items.Add("Date")

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button1.Click

End

End Sub

End Class

Рис. 4.2.2-5. Программный код проекта Пример 2.2-2

Необходимо отметить, что все переменные, объявленные в модуле формы, будут доступны, т.е. будут иметь область видимости во всех процедурах событий формы. Таким образом, можно установить значение переменной в одной процедуре события, а прочитать его – в другой. Обычно переменные доступны только в той процедуре собы­тия, в которой они объявлены. Чтобы сделать их доступными для всей формы, их требуется объявить в верхней части кода формы, перед событийными процедурами.

Необходимо также отметить, что в процедуре событий

Private Sub ListBox1_SelectedIndexChanged(…) используется оператор Select Case, который подробно будет рассмотрен в Теме 4.4.

  1. Щелкнуть по кнопке Начать отладку на стандартной панели инструментов.

Рис. 4.2.2-6. Форма проекта Пример.2.2-2 после загрузки формы

Появится окно приложения, изображенное на рис. 4.2.2-6.

Соседние файлы в папке Пособие+ЛР+КЗ