Функции в языке VB
Функция может иметь один и более аргументов, разделяемых запятыми, и в общем виде записывается так:
ИмяФункции(СписокАргументов)
Функции могут быть различных типов:
преобразования типов данных;
математические;
строковые;
финансовые;
даты и времени;
логические и т.д.
Функции преобразования типов данных
Во избежание ошибок и для получения правильного результата при построении выражений необходимо учитывать тип входящих в него переменных и тип результата. В VB предусмотрена возможность преобразования переменных из одного типа в другой при помощи специальных функций.
Перечень функций преобразования типов данных
Название функции | Получаемый тип данных |
CInt | Integer |
CLng | Long |
CSng | Single |
CDbl | Double |
CCur | Currency |
CStr | String |
CByte | Byte |
CBool | Boolean |
CDate | Date |
CVar | Variable |
Val(Строка$) – преобразует строковое значение в числовое (целое)
Например: Sum=Val(txt1.Text)+Val(txt2.Text)
Str(Число), Oct(Число), Hex(Число) – преобразуют десятичные числа в десятичные, восьмеричные и шестнадцатеричные в строковой форме.
Например: txt3.Text=str(sgnSum)
Asc(Строка$) – осуществляет преобразование строки в числовой код (в таблице ASCII)
Chr(Число)- осуществляет преобразование числового кода в соответствующий ему символ
Математические функции
В VB для решения математических задач существуют встроенные функции, зависящие от одного аргумента.
Перечень основных математических функций
Запись на VB | Математическая запись | Описание |
Abs(x) | Модуль | |
Atn(x) | Арктангенс | |
Cos(x) | Косинус | |
Exp(x) | Экспонента | |
Fix(x) | Отбрасывание дробной части | |
Int(x) | Наибольшее целое число не превосходящее x | |
Round(x,a) | Округление числа x с точностью до a десятичных знаков | |
Log(x) | Натуральный лагорифм | |
Rnd(x) | Датчик случайных чисел | |
Sgn(x) | В зависимости от знака числа возвращаетс 1, 0, -1 | |
Sin(x) | Синус | |
Sqr(x) | Квадратный корень | |
Tan(x) | Тангенс |
Аргумент во всех тригонометрических функциях задается в радианах, а не в градусах. При необходимости можно использовать формулу перевода радианов в градусы:
Радианы = градусы х p/180
Стандартный датчик случайных чисел генерирует число в интервале [0;1], при этом аргумент x в функции Rnd можно опустить.
Особое внимание нужно обратить на округление чисел с помощью функции Round. Здесь реализован принцип “бухгалтерского ” округления. В математике 5,5 будет округлено до 6, а 5, 49 – до 5, “бухгалтерского ” округление предусматривает чередование четных и нечетных чисел, при этом четные числа округляются в меньшую сторону (по модулю), а нечетные – в большую, при этом 3,5 будет округлено до 3, а 4,5 тоже до 3. Аналогично действует и функция Int , которая преобразует числовой тип данных к целому значению. При этом будет округлена дробная часть числа, если она была.
Например: математическое выражение на языке VB запишется следующим образом: y=SQR(COS(u+v)+2.1)
запишется: 2.1^ATN(x-cos(b))+1
Строковые функции
В строковых функциях строками являются либо аргументы, либо возвращаемые функцией значения.
Для объединения строк используется операция, называемая конкатенацией, которая реализуется с помощью оператора &(конъюнкция) и + (сложение), если объединяемые величины являются строками.
Len(Строка$) - функция определения длины строки.
Например: intL=Len(“информатика”) Þ intL=11
Left(Строка$, Длина%) - вырезает из строки символов Строка$ начиная от крайнего левого символа количество символов, равное числовому аргументу Длина%.
Например: strLL=Left(“информатика”, 6) Þ strLL= “информ”
Right(Строка$, Длина%) - вырезает из строки символов Строка$ начиная от крайнего правого символа количество символов, равное числовому аргументу Длина%.
Например: strLR=Right(“информатика”, 6) Þ strLR= “матика”
Mid(Строка$, Позиция%, Длина%) - вырезает из строки символов Строка$ начиная с символа, находящегося в позиции, заданной числовым аргументом Позиция%, количество символов, равное числовому аргументу Длина%.
Например: strLM=Mid(“информатика”, 3,5) Þ strLM= “форма”
Для удаления пробелов в начале и в конце строки используются следующие функции:
LTrim(Строка$) – удаляет все лишние пробелы в начале строки
RTrim(Строка$) – удаляет все лишние пробелы в конце строки
Trim(Строка$) – удаляет все лишние пробелы как в начале так и в конце строки.
Для создания или добавления строки пробелов заданной длины используется функция Space (число%) .
Для замены в строке символов одной подстроки другой используется функция
Replace(Строка$, подстрока1$, подстрока2$)
Например: strLM=Replace(“информатика”, “инфор”, “мате”) Þ strLM= “математика”
Функции даты и времени
Date - возвращает значение текущей даты, которое можно присвоить переменным типа Date. Значение даты представляется в виде Месяц/Число/Год
Time$ - возвращает значение текущего времени, имеющее тип String, которое можно вывести в текстовое поле.
Значение времени представляется в виде Часы: Минуты: Секунды. Для периодического обновления времени используется объект Timer, который не отображается на форме и выполняет всего одну функцию – проверяет показания системных часов по событию Timer. Периодичность события Timer может быть задана с помощью значения свойства Interval, задаваемого в милисекундах, для того, чтобы событие происходило каждую секунду, необходимо свойству Interval присвоить значение 1000.
Now возвращает значения текущей даты и времени
Функция DatePart(“строковый параметр”,D) – функция выделяет из даты значение “строкового параметра”, все возможные значения которого приведены в таблице.
D – дата, значение которой заключается между значками #, например: D=#2/14/2009 4:45:07 PM# ( PM- после полудня, AM – до полудня)
Например:
DatePart(“m”,D) – выделяет из даты номер месяца в году;
DatePart(“s”,D) – выделяет из даты номер секунды в минуте;
DatePart(“w”,D) – выделяет из даты номер дня в неделе, но делает это по-американски, в США первый день недели – воскресенье;
DatePart(“w”,D, vbMonday ) – – выделяет из даты номер дня в неделе, считаем первым днем недели понедельник.
Функция DateAdd(“строковый параметр”, ± число,D) – добавляет ( вычитает) к дате число.
Например:
DateAdd(“s”,10,D) – добавляет к дате 10 секунд
DateAdd(“m”,-1,D) – вычитает из даты 1 месяц
Функция DateDiff(“строковый параметр”,D1,D2) – определяет промежуток с момента даты D1 до момента даты D2 в единицах, определяемых строковым параметром
Например:
DateDiff(“h”,D1,D2) – количество часов, прошедших с момента даты D1 до момента даты D2
Функция MonthName(число%) – определяет название месяца по заданному числовому выражению месяца
Например: MonthName(5) - май
Функция WeekdayName(число%) – определяет название дня недели по заданному числовому выражению
Например: WeekdayName(5) - пятница
Таблица значений строкового параметра для функций работы с датами
Строковый параметр | Смысл |
yyyy | Год |
q | Квартал в году |
m | Номер месяца в году |
y | Номер дня в году |
d | Номер дня в месяце |
w | Номер дня в неделе (1-воскресенье) |
ww | Номер недели в году |
h | Час в сутках |
n | Минута в часе |
s | Секунда в минуте |
Логические функции
В VB можно вычислять значения логических выражений, которые будут иметь тип Boolean и могут принимать одно из двух значений: True (истина, 1) и False(ложь, 0).
Например:
Dim x, y, blnA
x=5
y=2
blnA =x>y ‘blnA = True
blnA = x<y ‘blnA= False
Можно использовать следующие логические функции:
Not – логическое отрицание;
And – “конъюнкция” (логическое “и”);
Or – “дизъюнкция” (логическое “или”);