Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы программирования.docx
Скачиваний:
10
Добавлен:
23.09.2019
Размер:
189.53 Кб
Скачать

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

  • Boolean - булев тип данных может хранить только два значения: True либо False, истина или ложь. Его использование вместо целочисленных переменных является хорошим стилем программирования.

  • Byte - байтовый тип является новым в Visual Basic 5 и предназначен для хранения целых чисел от 0 до 255. Его использование позволяет сильно экономить оперативную память и уменьшать размер массивов по сравнению с предыдущими версиями Visual Basic. Кроме того, он используется при работе с двоичными файлами.

  • Currency - данный тип отсутствовал в версиях GW-BASIC и QuickBASIC. Он создан для того, чтобы избежать ошибок при преобразовании десятичных чисел в двоичную форму и наоборот. (Невозможно 1/10 представить как сумму 1/2,1/4, 1/8, 1/16 и т.п.) Данный тип может иметь до 4 цифр после запятой, и до 14 - перед ней. Внутри данного диапазона вычисления будут точными. Идентификатор представляет собой символ "@". Поскольку все арифметические операции, кроме сложения и вычитания, выполняются так же медленно, как и в случае переменных с двойной точностью, данный тип является предпочтительным для проведения финансовых расчетов. (Для тех, кто интересуется: данный тип использует целые числа из 19 разрядов, которые затем делятся на 10000. Это позволяет организовать 15 знаков до запятой и 4 после нее.)

  • Date - этот тип данных позволяет хранить значения времени и даты в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999 года. Такие значения в тексте программ обозначаются символами "#", например: NewYear = #January 1, 2000# Если вводится только значение даты, Visual Basic полагает, что время равняется 00:00.

  • Decimal - самый мощный числовой тип. Для хранения переменной подобного типа отводиться 16 байт. Отрицательная и положительная границы промежутка, в котором располагаются возможные значения этой переменной, одинаковы по модулю и равны +/- 79 228 162 514 264 337 593 543 950 335, если использовать целые числа. Если же необходимо хранить дробные величины, то границы возможных значений будут смещены на несколько порядков в зависимости от того, сколько знаков после запятой использует разработчик. Подобный тип может использоваться только для хранения десятичных дробей. Разработчик может использовать до 28 знаков после запятой.

  • Double - переменные такого типа позволяют хранить числа с точностью до 16 цифр и длиной до 300 символов. Идентификатором является "#". Вычисления с ними тоже являются приблизительными, а скорость их относительно небольшая. В основном переменные типа Double используются для научных расчетов.

  • Integer - целочисленные переменные могут хранить только относительно небольшие целые числа (в диапазоне от -32 768 до +32 767). Арифметические операции над такими числами выполняются очень быстро. Для обозначения такого типа используется символ "%": IntegerPerem% = 3

  • Long - данный тип впервые появился в языке QuickBASIC. В таких переменных хранятся целые значения от -2 147 483 648 до +2 147 483 647. Обозначается символом "&". Арифметические операции над такими числами выполняются тоже очень быстро, и при работе с процессором 386DX или 486DX существовала лишь небольшая разница в скорости вычислений между Long и Integer. LongPerem& = 123456789

  • Object - по сути, переменная подобного типа является всего лишь ссылкой на некий конкретный экземпляр какого либо объекта. Для хранения переменной отводятся 4 байта.

  • Single - идентификатором для данных чисел является символ "!". Данный тип переменной позволяет хранить дробные числа с точностью до семи цифр. Это означает, что если получается результат 12345678.97, то часть 8.97 не является точной. Результат может быть равен, к примеру, 12345670.01. Длина чисел может достигать 38 знаков. Вычисления с данными переменными тоже будут приблизительными. Более того, арифметические действия выполняются медленнее, чем с целочисленными переменными.

  • String - строковые переменные хранят символы. Один из способов обозначить данный тип переменной состоит в добавлении символа "$" к концу ее имени, например: StringPerem$. Теоретически такая переменная может содержать до 2 миллиардов символов. В любом случае на конкретном компьютере это число будет гораздо меньше из-за ограниченных объемов оперативной памяти, ресурсов Windows или числа символов, используемых в форме. Одно из наиболее основных применений строковых переменных состоит в выборе информации из полей ввода.

Локальные переменные и переменные-члены

Локальная переменная — это переменная, объявленная внутри процедуры. Переменная–член является членом типа Visual Basic; она объявляется на уровне модуля, внутри класса, структуры или модуля, но не внутри любых процедур этого класса, структуры или модуля.

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

В классе или структуре категория переменной–члена зависит от того, используется ли она совместно. Если переменная объявлена с зарезервированным словом Shared, она является глобальной переменной и существует в единственном экземпляре, разделяемом между всеми экземплярами класса или структуры.

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

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

Уровень

Описание

Область действия блока

Элемент доступен только в пределах блока кода, в котором он объявлен.

Область действия процедуры

Элемент доступен в коде в пределах процедуры, в которой он объявлен.

Область действия модуля

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

Область действия уровня пространства имен

Элемент доступен в коде в пространстве имен, в котором он объявлен.

  1. Понятие оператора в языке программирования. Оператор присваивания. Линейные и нелинейные алгоритмы. Операторы условного и безусловного переходов, выбора. Примеры на языке Visual Basic. Демонстрация использования Оператора выбора (Select Case), элемента управления Timer и графического элемента Shape на примере создания приложения «Светофор».

Оператор в Visual Basic — это полная инструкция. В инструкциях содержатся ключевые слова, операторы, переменные, константы и выражения. Каждая инструкция принадлежит к одной из следующих двух категорий:

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

  • Выполняемые операторы, которые инициируют действия. Эти операторы могут вызывать метод или функцию, а также способны выполнять цикл или ветвь, состоящие из блоков кода. Исполняемые операторы содержат Операторы присваивания, которые присваивают значение или выражение переменной или константе.

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

Public Sub applyFormat()

Const limit As Integer = 33

Dim thisWidget As New widget

' Insert code to implement the procedure.

End Sub

Первое объявление — это оператор Sub. Он совместно с соответствующим ему оператором End Sub объявляет процедуру с именем applyFormat. Он также указывает, что applyFormat является Public, что означает, что любой код, который к нему обращается, может его вызвать.

Второе объявление — это оператор Const, который объявляет константу limit, указывая тип данных Integer и значение 33.

Третье объявление — это оператор Dim, который объявляет переменную thisWidget. Тип данных является определенным объектом, а именно объектом, созданным из класса Widget. Можно объявить переменную любого простейшего типа данных или типа объекта, который предоставляется в приложении.

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

В следующем примере используется управляющая структура If...Then...Else для выполнения различных блоков кода на основе значения переменной. В каждом блоке кода цикл For...Next выполняется заданное число раз.

Public Sub startWidget(ByVal aWidget As widget,

ByVal clockwise As Boolean, ByVal revolutions As Integer)

Dim counter As Integer

If clockwise = True Then

For counter = 1 To revolutions

aWidget.spinClockwise()

Next counter

Else

For counter = 1 To revolutions

aWidget.spinCounterClockwise()

Next counter

End If

End Sub

Операторы присваивания выполняют присваивание, сводящееся к вычислению значения справа от оператора присваивания (=) и его записи в элемент слева, как в следующем примере.

v = 42

Для создания светофора на форму необходимо разместить элемент таймер Timer1, две картинки Image1, Image2 с соответственно красным и зеленым цветом

Private Sub Form_Load()

Timer1.Interval = 500

End Sub

Private Sub Timer1_Timer()

If Image1.Visible = False Then

Image1.Visible = True

Image2.Visible = False

Else

Image2.Visible = True

Image1.Visible = False

End If

End Sub

  1. Понятие функции. Использование встроенных функций языка VB 6 на примере создания приложения «Финансовые операции». Встроенные функции системы Windows для ввода текстовой информации с помощью Окна ввода (InputBox) и для вывода информации с помощью Окна сообщения (MsgBox). Пользовательская функция. Локальная и глобальная функции. Пример определения пользовательской функции «Площадь треугольника» на языке VB 6.

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

Function myFunction(ByVal j As Integer) As Double

Return 3.87 * j

End Function

InputBox Отображает поле для ввода текста в диалоговом окне, ожидает ввода текста пользователем или нажатия кнопки и возвращает строку, являющуюся содержимым текстового поля.

myValue = InputBox(message, title, defaultValue)

message – текст сообщения

title – заголовок окна

MsgBox Отображает сообщение в диалоговом окне, ожидает нажатия кнопки и возвращает целое число, определяющее нажатую кнопку.

response = MsgBox(message, style, title)

message – текст сообщения

title – заголовок окна

style может принимать следующие значения:

OKOnly

Отображается только кнопка OK.

OKCancel

Отображаются кнопки OK и "Отмена".

AbortRetryIgnore

Отображаются кнопки "Прервать", "Повторить" и "Пропустить".

YesNoCancel

Отображаются кнопки "Да", "Нет" и "Отмена".

YesNo

Отображаются кнопки "Да" и "Нет".

RetryCancel

Отображаются кнопки "Повторить" и "Отмена".

Critical

Отображается значок сообщения о критической ошибке.

Question

Отображается значок предупреждения с запросом.

Exclamation

Отображается значок предупреждения.

Information

Отображается значок информационного сообщения.

Пользовательская функция объявляется следующим образом

Function <имяФункции> (<аргумент1>, <аргумент2>, …) [As

<типЗначение>]

<операторы>

Return <возвращаемоеЗначение>

End Function

Затем вызвать ее можно так

<имя переменной>=<имя функции>(<список фактических параметров>).

Функция «Площадь треугольника», a,b,c – длины сторон треугольника

Function CalcSquare(a As Single, b As Single, c As Single) as Single

Dim p As Single

Dim S As Single

p = (a + b + c) / 2

S = Sqr(p * (p - a) * (p - b) * (p - c))

Return S

End Sub