Автор работы: Пользователь скрыл имя, 25 Марта 2013 в 11:36, реферат
Visual Basic разработан в 1991 г. фирмой Microsoft как удобное и мощное средство
визуального проектирования программ, работающих в операционной среде Windows.
При относительной простоте языка, он позволяет быстро создавать программный
продукт, который мало отличается от подобных продуктов, созданных профессионалами
с использованием языков C и Pascal.
Модификация языка Visual Basic может использоваться в Microsoft Office, в частности в Excel и Access. Он обеспечивает простой доступ и эффективную обработку
данных различных систем управления базами данных (СУБД).
Иногда в процессе выполнения программы размер массива требуется менять. В этом случае массив объявляется как динамический.
Динамический массив создается в два этапа. Сначала массив объявляется без указания его размера:
Dim <ИмяМассива> () As <ИмяТипа>
Затем количество элементов в объявленном массиве и его размерность в процессе выполнения программы можно определить и переопределить с помощью оператора ReDim, который имеет вид:
ReDim [Preserve] <ИмяМассива> (<ГраницыИндексов>) [As <ИмяТипа>]
где:
ReDim – ключевое слово, указывающее, что переопределяются размеры массива;
Preserve – необязательное ключевое слово, с помощью которого дается указание, чтобы все элементы переопределяемого массива сохранили свои значения;
<ГраницыИндексов> – новые границы индексов и новая размерность (можно использовать числа, константы или переменные);
<ИмяТипа> – имя прежде объявленного типа, можно использовать суффикс.
Dim mas() As Byte
ReDim mas(9) ‘Одномерный массив
ReDim mas(3, 5) ‘Двухмерный массив
ReDim mas(2 To 4, 8) ‘Двухмерный массив с новыми границами
Итак массивы можно
- Нельзя менять размерность массива (например: одномерный на двухмерный);
Динамические массивы можно уничтожать:
Erase <ИмяМассива1> [,<ИмяМассива2>, …]
Начиная с VB 6.0 имеется возможность присвоения содержимого одного массива другому (MasIn = MasOut). Попытка присвоения может быть успешной или неуспешной в зависимости от следующих факторов:
Результаты присвоения массивов приведены в таблице 7.3.1.
Таблица 7.3.1
Тип массива в левой части оператора присваивания |
Совпадают ли размерности массивов? |
Совпадает ли число элементов в каждой размерности? |
Тип массива в правой части оператора присваивания |
Результат присваивания |
Динамический |
Да или нет |
Да или нет |
Любой |
Успешно. Размерность и число элементов массива левой части оператора присваивания при необходимости меняется |
Статический |
Да или нет |
Да или нет |
Любой |
Неуспешно, ошибка компиляции или выполнения |
Создание нового типа осуществляется следующей конструкцией:
[Private / Public] Type <ИмяТипа>
<ИмяПеременной1> [([<Размерность1>])] [As <ИмяТипа1>]
[<ИмяПеременной2> [([<Размерность2>])] [As <ИмяТипа2>]
..............................
<ИмяПеременнойN> [([<РазмерностьN>])] [As <ИмяТипаN>]]
End Type
Тип переменной может быть любым, в том числе и созданным ранее пользователем.
Определение собственного типа данных возможно в разделе глобальных объявлений модуля ( (General) (Declarations) ). В этом случае тип будет доступен во всех процедурах всех форм. Определив собственный тип данных, можно объявить переменную такого типа, которую можно использовать в программе:
(General) (Declarations) ‘Модуля
Type ss
a() As Integer
b As Byte
End Type
Command1 Click
Private Sub Command1_Click() ‘Формы
Dim s As ss
ReDim s.a(2, 3)
s.a(1, 2) = 1
Print s.a(1, 2), s.a(1, 1), s.b ‘ 1 0 0
End Sub
Если изначально модуля нет, его надо создать: войти в опцию “Проект” Главной панели верхнего меню, далее “Добавить модуль”, получим окно, которое дает возможность добавить модуль или использовать уже существующий.
После создания собственного типа его можно использовать при создании следующего и т.д., или при создании типа можно использовать все ранее созданные. Кроме того можно объявить массив, каждый элемент которого есть переменная, созданного типа.
Чтобы упростить доступ к переменным можно использовать оператор With,
который имеет вид:
With <НачальнаяЧастьИмени>
<Операторы с переменными без начальной части имени>
End With
Оператор With допускает вложения, то есть внутри оператора With могут находиться другие операторы With. Кратность вложения ничем не ограничена, кроме структуры созданного типа.
Пример:
(General) (Declarations)
Option Explicit
Private Type dat
Y As Integer
M As String * 10
D As Byte
End Type
Private Type pr
Fio As String * 15
Pol As String * 1
Bd As dat
End Type
Form Click
Private Sub Form_Click()
Dim P As pr
P.Fio = "Иванов"
Print P.Fio 'Иванов
With P
.Pol = "М"
Print .Pol 'М
.Bd.Y = 1985
Print .Bd.Y '1985
With .Bd
.M = "Январь"
Print .M 'Январь
End With
End With
With P.Bd
.D = 28
Print .D '28
End With
End Sub
Константы – это величины, которые не меняют своих значений во время выполнения программы. Мы будем различать именованные и неименованные константы.
Примеры неименованных констант:
“Visual”, “45.1” – две неименованные символьные константы;
68, 1024 – две неименованные
&H16, &H10 – две шестнадцатеричные константы, равные 22 и 16;
&O16, &O10 – две восьмеричные константы, равные 14 и 8;
3.8, 44., .3e1, -4.5E-1 – четыре вещественные константы, вещественные числа.
Среди именованных констант будем различать встроенные константы VB и константы, созданные пользователем (программистом). Информацию о существующих константах можно получить, обратившись к каталогу объектов – “Проводник Объектов” (см. Рис. 11.), который можно вызвать клавишей F2.
Пользователь может объявить (создать) собственную константу следующим образом:
[Public / Private] Const <ИмяКонстанты> [As <ИмяТипа>] = <Значение>
Примеры:
Const Pi As Single = 3.14159265
Public Const Name As String * 10 = “Вася”
Const I% = 5
Перечни служат для
объявления группы
[Public / Private] Enum <ИмяПеречня>
<ИмяКонстанты1> [ = <Значение1>]
<ИмяКонстанты2> [ = <Значение2>]
..............................
<ИмяКонстантыN> [ = <ЗначениеN>]
End Enum
Для обращения к константам перечня используется составное имя:
<ИмяПеречня>.<ИмяКонстанты>
Если при объявлении перечня значения констант не задаются, то им по умолчанию присваиваются их порядковые номера в соответствии с последовательностью объявления:
(General) (Declarations)
Enum n
Num1
Num2 = -23.4
Num3 = -23.5
Num4
Num5 = 10.4
Num6 = 10.5
Num7 = 10.6
Num8
End Enum
Command1 Click
Private Sub Command1_Click()
Print n.Num1; n.Num2; Num3; Num4; Num5; Num6; Num7; Num8
End Sub ‘ 0 -23 -24 -23 10 10 11 12
Мы рассмотрим следующие операции:
- арифметические;
- логические;
- отношения;
- с символьными строками
Если в операциях используются несколько данных, то их типы должны быть одинаковыми либо совместимыми.
Арифметические операции применимы только к величинам целых и вещественных типов.
Операции изменения знака:
+ знак +, поставленный перед числом, не меняет его значения;
-
знак минус, поставленный
Остальные операции в таблице 11.1.1:
Таблица 11.1.1
Знак |
Операция |
Тип чисел |
Тип результата |
+ |
Сложение |
Целые Хотя бы один вещественный |
Целые Вещественный |
- |
Вычитание |
Целые Хотя бы один вещественный |
Целые Вещественный |
* |
Умножение |
Целые Хотя бы один вещественный |
Целые Вещественный |
/ |
Деление |
Любые |
Вещественный |
\ |
Деление целых чисел |
Целые |
Целый |
Mod |
Остаток от деления целых чисел |
Целые |
Целый |
^ |
Возведение в степень |
Любые |
Вещественный |
Замечания:
1) Деление на ноль запрещено.
2) Пример операции деления целых чисел:
10 MOD 3 = 1
10 \ 3 = 3
Логические операции применяются к величинам логического типа, результат тоже логического типа. Это операции:
Not -- отрицание, не, нет;
And – и;
Or -- или;
Xor -- исключающее или;
Eqv – эквивалентность;
Imp – включение (левое в правое).
Рассмотрим операцию NOT:
Таблица 11.2.1.
X |
Not X |
FALSE |
TRUE |
TRUE |
FALSE |
Рассмотрим остальные операции:
Таблица 11.2.2.
X |
Y |
X And Y |
X Or Y |
X Xor Y |
X Eqv Y |
X Imp Y |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
TRUE |
Операции отношения
Операции отношения следующие:
= - равно;
<> - не равно;
< - меньше;
> - больше;
<= - меньше или равно;
>= - больше или равно;
Like - соответствует ли шаблону.
Операция Like проверяет, соответствует ли строка символов, стоящая слева от Like, шаблону, стоящему справа. Шаблон состоит из символов:
? - указывает, что в этой позиции может стоять любой символ: “s%5” Like “???” =
True;
# - указывает, что в этой позиции может стоять только цифра: “a52” Like “?##” = True;
*
- указывает, что в
этой позиции может стоять
любое количество любых
“ab2” Like “a*” = True;
- любой символ указывает, что в этой позиции может быть только этот символ:
“abc” Like “?b?” = True;
Сравнение символьных строк осуществляется слева направо в соответствии с ASCII-кодами соответствующих символов. Сравнивать можно строки разной длины. Выравнивание символьных строк осуществляется по левому краю. Считается, что отсутствующие символы в более короткой строке имеют код меньше, чем код любого символа: “AB” > “A”, “AB” < “ACD”, “AB” < “AC”, “ABC” < “AC”, “я” < “ё”.
В VB кроме операций сравнения есть только одна операция для работы с символьными строками – это операция конкатенации или соединения или объединения символьных строк. Знаком операции является символ амперсант - & или символ плюс - +. Результатом операции является более длинная строка, составленная из исходных строк:
SResult = “Студент” & “ Иванов” ‘SResult = “Студент Иванов”
SResult = “Студент” + “ Иванов” ‘SResult = “Студент Иванов”
Если в результате объединения строк получается строка большей длины, чем объявлена переменная (SResult), то строка обрезается справа.
Вычисление выражений
Таблица 11.5.1
Приоритет |
Тип действия |
Элементы |
1 |
Вычисление функций |
Log, Exp, Sin и т. д. |
2 |
Изменение знака |
+ , - |
3 |
Возведение в степень |
^ |
4 |
Тип умножения |
* , / |
5 |
Деление целых чисел |
\ |
6 |
Остаток от деления целых чисел |
Mod |
7 |
Тип сложения |
+ , - |
8 |
Объединение символьных строк |
& , + |
9 |
Операции отношения |
=, >, >=, <, <=, <>, Like |
10 |
Отрицание |
Not |
11 |
И |
And |
12 |
Или |
Or |
13 |
Исключающее Или |
Xor |
14 |
Эквивалентность |
Eqv |
15 |
Включение |
Imp |
Чем меньше приоритет, тем раньше выполняется действие. Кроме того, в пределах одного приоритета вычисления выполняются слева направо.
Оператор, это некоторое поручение, которое должна выполнить ЭВМ.