Программирование на языке Visual Basic
В объектно-ориентированных языках программирования и, в частности, в языке Visual Basic, переменные играют такую же важную роль, как и в алгоритмических языках программирования. Переменные предназначены для хранения и обработки данных в программах.
Переменные задаются именами, которые определяют области памяти, в которых хранятся их значения. Значениями переменных могут быть данные различных типов (целые или вещественные числа, последовательности символов, логические значения и т.д.).
Тип переменных определяется типом данных, которые могут быть значениями переменных. Значениями переменных числовых типов (Byte, Integer, Long, Single, Double) являются числа, логических (Boolean) — True или False, строковых (String) — последовательности символов и т.д. Обозначения типов переменных являются ключевыми словами языка и поэтому выделяются.
Различные типы данных требуют для своего хранения в оперативной памяти компьютера различное количество ячеек (cм. табл.3). Так, для хранения целых чисел в интервале от 0 до 255 в переменных типа Byte достаточно одной ячейки памяти (одного байта), для хранения вещественного числа с двойной точностью в переменных типа Double требуется уже восемь ячеек (восемь байт), а для хранения символьных строк в переменных типа String требуется одна ячейка на каждый символ.
Имя каждой переменной уникально и не может меняться в процессе выполнения программы. Имя переменной может состоять из различных символов (латинские и русские буквы, цифры и т.д.), но должно обязательно начинаться с буквы и не должно включать знак точка «.». Количество символов в имени не может быть более 255.
Например, числовую переменную можно назвать А или Число, а текстовую — А или Строка. Однако разработчик языка Visual Basic фирма Microsoft рекомендует для большей понятности текстов программ для программиста в имена переменных включать особую приставку, которая обозначает тип переменных. Тогда, например, имена целочисленных переменных целесообразно записать как intА или intЧисло, а текстовых — strA и strСтрока.
Таблица 3. Типы переменных
Тип данных
| Возможные значения
| Объем занимаемой памяти
| Приставка к имени
| Byte
| целые числа от 0 до 255
| 1 байт
| byt
| Integer
| целые числа от -32768 до 32767
| 2 байта
| int
| Long
| целые числа двойной длины
| 4 байта
| Ing
| Single
| Десятичные числа от 1.401298Е-35 до 3.4022823Е38
| 4 байта
| sng
| Double
| Десятичные числа двойной точности
от 1.9406564584 1247Е-324
до 1. 797693 13486232Е308
| 8 байт
| dbl
| Boolean
| Логическое значение True или False
| 2 байта
| bin
| String
| Строка символов
| 1 байт на каждый символ
| str
| Currency
| Число в денежном формате
| 8 байт
| cur
| Date
| Дата от 1 января 1 00 г. до 31 декабря 9999г.
| 8 байт
| dtm
| Object
| Ссылки на любой объект
| 4 байга
| obj
| Variant
| Любые значения
| > 16 байт
| vnt
|
Наборы однотипных переменных могут быть объединены в массивы, объединенные одним именем. Массивы бывают одномерные, которые можно представить в форме одномерной таблицы, и двумерные, которые можно представить в форме двумерной таблицы. Массивы могут быть различных типов: числовые, строковые и т.д.
Массив состоит из пронумерованной последовательности элементов. Номера в этой последовательности называются индексом. Каждый из этих элементов является переменной, т.е. обладает именем и значением, и поэтому массив можно назвать переменной с индексом.
Простейшим способом задания типа переменной (ее объявления) является приписывание к имени переменной определенного суффикса. Например, числовую переменную типа Integer можно задать как А%, а текстовую переменную String как А$.
Для объявления типа переменной можно воспользоваться также оператором определения переменной. Синтаксис (правило записи) этого оператора следующий:
Dim ИмяПеременной [.As ТипПеременной]
Здесь Dim и As ключевые слова языка Visual Basic и поэтому они выделяются жирным шрифтом. Назначение этого оператора — объявить переменную, т.е. задать ее имя и тип, однако объявление типа может отсутствовать. С помощью одного оператора можно объявить сразу несколько переменных, например:
Dim ИмяПеременной As Integer,ИмяПеременной As String
Объявление массива производится аналогично объявлению переменных, необходимо только дополнительно указать диапазон изменения индекса. Например, объявление строкового массива, содержащего 33 элемента, производится следующим образом:
Dim ИмяМассива ( 1 To33) As String
Переменные, значения которых не меняются в процессе выполнения программы, называются константами. Синтаксис объявления констант следующий:
ConstИмяКонстанты [As Тип]= ЗначениеКонстанты
Квадратные скобки здесь означают, что тип указывать не обязательно.
Переменная может получить или изменить значение с помощью оператора присваивания. Синтаксис этого оператора следующий:
ИмяПеременной = Выражение
При выполнении оператора присваивания переменная, имя которой указано слева от знака равенства, получает значение, равное значению выражения (арифметического, строкового или логического), которое находится справа от знака равенства.
Понятие функции в языках программирования близко к понятию функции в математике. Функция может иметь один или более аргументов, если функция имеет один аргумент, то тогда она является функцией одного аргумента. Синтаксис записи функции нескольких аргументов следующий (аргументы в списке отделяются друг от друга запятыми):
ИмяФункции (Список аргументов)
Для каждого набора аргументов можно определить значение функции. В программировании говорят, что функция возвращает свое значение, если задано значение ее аргументов. Функции обычно входят в состав выражений, значения которых присваивается переменным.
Функции могут быть различных типов: математические, строковые, финансовые, даты и др. Тип функции определяется возможными значениями аргументов и функции.
В математических функциях значениями как аргументов, так и функций являются числа. Всего в языке Visual Basic имеется 12 математических функций:
Таблица 4. Математические функции
Функция
| Возвращаемое значение
| Sin(A)
| синус числа А
| Cos (A)
| косинус числа А
| Tan (A)
| тангенс числа А
| Atn(A)
| арктангенс числа А
| Sqr (A)
| квадратный корень из числа А
| Log (A)
| логарифм числа А
| Ехр(А)
| показательная функция числа А
| Int(A)
| наибольшее целое число, не превышающее число А
| Clnt(A)
| целое число, ближайшее к числу А
| Fix (A)
| целое число, равное числу А без дробной части
| Abs (A)
| абсолютное значение числа А
| Rnd
| случайное число в интервале (0, 1)
|
Эти функции можно использовать при записи арифметических выражений, которых помимо функций могут присутствовать переменные и константы, связанные знаками арифметических операций сложения «+», вычитания «–», умножения «*», деления «/», возведения в степень «^». Порядок действий можно изменять с помощью скобок по обычным правилам арифметики.
Например, переменной Y нужно присвоить значение функции (x 2 + 5x –1) e –2x. Оператор присваивания будет иметь вид
Y = (X^2 + 5*X – 1) * Exp( –2*X)
В строковых функциях строками являются либо аргументы, либо возвращаемые функциями значения.
Таблица 5. Строковые функции
Функция
| Возвращаемое значение
| Len(S)
| количество символов в строке
| Left (S, N)
| первые N символов строки S
| Mid(S,K,N)
| N символов строки S, начиная с K-го символа
| Val(S)
| преобразование числа в виде строки S в числовой формат
| Str (N)
| преобразование числа N в строку символов
| Asc(C)
| ASCII – код символа С
| Chr(N)
| символ, ASCII – код которого равен N
|
Программирование разветвляющихся процессов
Изменить последовательность выполнения операторов можно с помощью операторов ветвления.
Одним из них является условный оператор If … Then. Он имеет два форматов записи.
1. Однострочный формат
Ifусловие ThenОператор1 [ Else Оператор2]
(в квадратные скобки взята необязательная часть). Если условие истинно, Оператор1 выполняется, в противном случае он пропускается и выполняется Оператор2, если он указан.
2. Блочный формат.
Ifусловие Then
Операторы1
[ Else
Операторы2]
End If
Эта форма применяется, когда нужно при выполнении или не выполнении заданного условия выполнить не один, а несколько операторов.
В качестве примера рассмотрим задачу вычисления корней квадратного трехчлена с коэффициентами A, B, C. Как известно, вещественные корни существуют при условии, что дискриминант больше либо равен нулю: D = B2 – 4AC ³ 0. Ниже приведен фрагмент программы, в котором дискриминант сравнивается с нулем и если он оказывается меньше нуля, выводится сообщение «Вещественных корней нет», противном случае подсчитываются значения корней.
D = B^2 – 4*A*C
If D < 0 Then
Print “ Вещественных корней нет ”
Else
X1 = (–B + sqr (D)) / (2*A)
X2 = (–B – sqr (D)) / (2*A)
Print “ Вещественных корней нет ”
End If
| | D := B2 – 4AC
да нет
D < 0
“Решений Вычисление
нет” корней X1, X2
Вывод X1, X2
Конец
Рис. 10. Фрагмент программы вычисления корней квадратного уравнения и его блок-схема
Еще одним оператором ветвления является Select Case.
Select CaseВыражение
CaseСписок_значений1
Операторы1
CaseСписок_значений2
Операторы2
……….
[Case ElseСписок_значений3
Операторы3 ]
End Select
Здесь в качестве параметра Выражение может быть как имя переменной, так и арифметическое выражение, а параметры Список_значений1, Список_значений2 и т.д. могут быть как одиночными числовыми значениями, так и списками – несколькими числами, разделенными запятыми.
Если значение выражения не совпадет ни с одним из значений, указанных в списках, будет выполнены операторы, указанные в разделе Case Else (если таковой присутствует, если же его нет, то следующим будет выполнен оператор, следующий за оператором Select.
В качестве списка значений можно указывать не только одно из возможных значений, но и несколько значений, разделенных запятыми. Можно также указать интервал значений (например, 4 To 6), или задать его с помощью ключевого слова IS и одного из знаков отношения < , <=, >, >=, < >, = (например, IS >= 10).
В качестве примера рассмотрим следующую задачу. Пусть задана кусочно-непрерывная функция f (x) следующим образом:
y
–1 для x < –1, 1
f (x) = 0 для –1 £ x < 1,
2 для x ³ 1. –2 –1 0 1 2 x
–1
Требуется написать программу, вычисляющую значение этой функции для любого заданного значения x. Воспользуемся для этой цели оператором ветвления Select Case:
Select CaseX
Case IS < –1
Y = –1
Case IS < 1
Y = 2
Case IS >= 1
Y = 1
End Select
Предположим, что X = –2. Тогда истинными являются условия IS <= –1 иIS < 1. Однако проверка условия IS < –1 идет первой и Y получит значение –1. Хотя второе условие также истинно для текущего значения X, оператор Y = 0 выполняться не будет, поскольку выбор уже будет сделан.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|