В языке Object Pascal основной программной единицей является подпрограмма. Различают два вида подпрограмм: процедуры и функции. Как процедура, так и функция, представляют собой последовательность инструкций, предназначенных для выполнения некоторой работы. Чтобы выполнить инструкции подпрограммы, надо вызвать эту подпрограмму. Отличие функции от процедуры заключается в том, что с именем функции связано значение, поэтому имя функции можно использовать в выражениях.
Для выполнения часто встречающихся вычислений и преобразований язык Delphi предоставляет программисту ряд стандартных функций.
Значение функции связано с ее именем. Поэтому функцию можно использовать в качестве операнда выражения, например в инструкции присваивания. Так, чтобы вычислить квадратный корень, достаточно записать k:=Sqrt(n), где Sqrt — функция вычисления квадратного корня, п — переменная, которая содержит число, квадратный корень которого надо вычислить.
Функция характеризуется типом значения и типом параметров. Тип переменной, которой присваивается значение функции, должен соответствовать типу функции. Точно так же тип фактического параметра функции, т. е. параметра, который указывается при обращении к функции, должен соответствовать типу формального параметра. Если это не так, компилятор выводит сообщение об ошибке.
Математические функции(Таблица 14.6) позволяют выполнять различные вычисления.
Таблица 14.6 Математические функции
Функция | Значение |
Аbs (n) | Абсолютное значение n |
Sqrt (n) | Квадратный корень из n |
Sqr (n) | Квадрат n |
Sin (n) | Синус n |
Cos (n) | Косинус n |
Arctan (n) | Арктангенс n |
Ехр(n) | Экспонента n |
Ln(n) | Натуральный логарифм n |
Random(n) | Случайное целое число в диапазоне от 0 до n- 1 |
Величина угла тригонометрических функций должна быть выражена в радианах. Для преобразования величины угла из градусов в радианы используется формула (а*3.141525б)/180, где: а— величина угла в градусах; 3.1415926 — число π. Вместо дробной константы 3.1415926 можно использовать стандартную именованную константу PI. В этом случае выражение пересчета угла из градусов в радианы будет выглядеть так: a*Pi/180.
Функции преобразования(Таблица 14.7) наиболее часто используются в инструкциях, обеспечивающих ввод и вывод информации. Например, для того чтобы вывести в поле вывода (компонент Label) диалогового окна значение переменной типа real, необходимо преобразовать число в строку символов, изображающую данное число. Это можно сделать при помощи функции FloatToStr, которая возвращает строковое представление значения выражения, указанного в качестве параметра функции.
Например, инструкция Label1.caption:= FioatTostr(x) выводит значение переменной х в поле Label1.
Таблица 14.7 Функции преобразования
Функция | Значение функции |
Chr(n) | Символ, код которого равен n |
IntToStr (k) | Строка, являющаяся изображением целого k |
FloatToStr (n) | Строка, являющаяся изображением вещественного n |
FloatToStrF(n, f , k,m) | Строка, являющаяся изображением вещественного п. При вызове функции указывают: f — формат (способ изображения); k — точность (нужное общее количество цифр); m — количество цифр после десятичной точки |
StrToInt (s) | Целое, изображением которого является строка s |
StrToFloat (s) | Вещественное, изображением которого является строка s |
Round (n) | Целое, полученное путем округления n по известным правилам |
Trunc (n) | Целое, полученное путем отбрасывания дробной части n |
Frac(n) | Дробное, представляющее собой дробную часть вещественного n |
Int (n) | Дробное, представляющее собой целую часть вещественного n |
Обычно функции используют в качестве операндов выражений. Параметром функции может быть константа, переменная или выражение соответствующего типа. Ниже приведены примеры использования стандартных функций и функций преобразования.
n := Round((x2-x1)/dx);
x1:= (-b + Sqrt(d)) / (2*а);
m := Random(10);
cena := StrToInt(Edit1.Text);
Edit2.Text := IntToStr(100);
mes := 'x1=' + FloatToStr(xl);