1.5. Функции в языках объективно-ориентированного и процедурного программирования
Понятие функции в языках программирования близко к понятию функции в математике. Функция может иметь один или более аргументов или не иметь аргументов, в зависимости от решаемой задачи. Для каждого набора значений аргументов можно определить значение функции. В программировании говорят, что функция возвращает свое значение, если заданы значения ее аргументов. Функции обычно входят в состав выражений, значения которых присваиваются переменным.
Функции могут быть различных типов: математические, строковые, ввода и вывода, даты и времени и др. Тип функции определяется возможными значениями аргументов и значением функции. В математических функциях значениями как аргументов, так и функций являются числа.
Математические функции. Примеры математических функций в языке Gambas и языке OpenOffice.org Basic: синус Sin(), косинус Cos (), квадратный корень Sqr () и др.
В языке Visual Basic математические функции реализуются с помощью методов: синус Math. Sin (), косинус Math. Cos (), квадратный корень Math. Sqrt () и др.
Строковые функции (табл. 1.5). В строковых функциях аргументы и возвращаемые функциями значения могут иметь строковый тип или другой. В языке OpenOffice.org Basic и языке Visual Basic строковые функции оперируют данными в кодировке Unicode, а в языке Gambas — в кодировке ASCII.
Функция вырезания левой подстроки Lef t (). В функции вырезания подстроки (части строки) Left (Строка, Длина) значением функции является левая подстрока. Подстрока начинается от крайнего левого символа аргумента Строка и имеет количество символов, равное значению числового аргумента Длина.
Функция вырезания правой подстроки Right (). В функции вырезания подстроки Right (Строка, Длина) значением функции является правая подстрока. Подстрока начинается от крайнего правого символа аргумента Строка и имеет количество символов, равное значению числового аргумента Длина.
Функция вырезания произвольной подстроки Mid (). В функции вырезания подстроки Mid (Строка, Позиция, Длина) значением функции является подстрока. Подстрока начинается с символа аргумента Строка, позиция которого задана числовым аргументом Позиция, и имеет количество символов, равное значению числового аргумента Длина.
Функция определения длины строки Len (). В функции определения длины строки Len (Строка) аргументом является строка Строка, а возвращает функция числовое значение длины строки (количество символов в строке).
Функция Asc (). Функция Asc (Строка) осуществляет преобразование строки в числовой код ее первого символа. Аргументом функции является строка, а значением — число.
Функция Chr(). Функция Chr (Число) осуществляет преобразование числового кода в символ. Аргументом функции является число, а значением — символ.
Таблица 1.5. Строковые функции и их значения
Функции ввода/вывода данных. В языке OpenOffice.org Basic и в языке Visual Basic для ввода данных может использоваться функция InputBox (), которая позволяет вводить данные с помощью диалогового окна ввода (рис. 1.9).
Рис. 1.9. Диалоговое окно ввода функции inputBox ()
Аргументами этой функции являются две строки: "Сообщение" и "Заголовок", а значением функции является строка, введенная пользователем в текстовое поле:
А = InputBox ("Сообщение","Заголовок")
Если пользователь введет строку в текстовое поле и щелкнет по кнопке ОК, то значением функции станет строка, введенная в текстовое поле. Если пользователь щелкнет по кнопке Отмена, то значением функции станет пустая строка "".
В языке OpenOffice.org Basic и в языке Visual Basic для вывода данных может использоваться функция MsgBox (). Эта функция позволяет выводить сообщения с помощью окна сообщений, в котором можно разместить определенный набор кнопок и информационный значок о типе сообщения:
MsgBox("Сообщение" [,ЧисКод1+ЧисКод2][,"Заголовок"])
Аргумент "Сообщение" выводится в окне сообщений, аргумент ЧисКод1+ЧисКод2 определяет внешний вид окна, а строка "Заголовок" выводится в строке заголовка окна. Последние два аргумента не являются обязательными. Необязательные части программного кода заключаются в квадратные скобки.
Например, для функции
MsgBox("Сообщение", 48+3, "Заголовок")
будет выведено следующее окно сообщений (рис. 1.10).
Рис. 1.10. Диалоговое окно сообщений функции MsgBox ()
Значение, возвращаемое функцией MsgBox (), зависит от того, какая из кнопок в окне сообщений была нажата (табл. 1.6).
Таблица 1.6. Значения функции MsgBox ()
Однако в языке OpenOffice.org Basic для вывода данных часто до сих пор используется оператор Print, который выводит строки или числовые выражения, разделенные в программе запятой или точкой с запятой, в диалоговом окне.
В языках Visual Basic и Gambas для ввода и вывода данных чаще используются элементы управления графического интерфейса. Для ввода данных используется элемент управления текстовое поле TextBox, а для вывода данных — элемент управления метка Label.
Функции даты и времени. В языке OpenOffice.org Basic и в языках Visual Basic и Gambas и существуют функции даты и времени. Для определенности рассмотрим функции даты и времени, принятые в языке OpenOffice.org Basic.
Функция Time возвращает значение текущего времени в формате Часы:Минуты:Секунды.
Функция DateDiff возвращает количество дней между двумя датами, заданными в формате День/Месяц/Год.
1. Какой тип данных могут иметь аргументы и возвращаемые значения математических функций?
2. Какой тип данных могут иметь аргументы и возвращаемые значения строковых функций?
3. Какой тип данных могут иметь аргументы и возвращаемые значения функций ввода и вывода?
4. Какой тип данных могут иметь аргументы и возвращаемые значения функций даты и времени?