Функции в языке 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 – “дизъюнкция” (логическое “или”);