Function Round (X: Real): LongInt;
Возвращает округленное до целого значение вещественного аргумента.
j:= Round(12.8235); {j= 13}
Function Trunc (X: Real): LongInt;
Возвращает целое путем отбрасывания дробной части вещественного аргумента.
j:= Round(12.8235); {j= 12}
12.3. Арифметические процедуры и функции
Function Frac (X: Extended): Extended;
Возвращает дробную часть аргумента, например:
r:= Frac(-12.82); {r = -0.82, Frac(12.82)=0.82 }
Function Abs (X: Extended): Extended;
Возвращает абсолютное значение аргумента, например:
r:= Abs(-12.82); {r = 12.82}
Function ArcTan (X: Extended): Extended;
Возвращает арктангенс аргумента.
Function Cos (X: Extended): Extended;
Возвращает косинус аргумента.
Function Sin (X: Real): Real;
Возвращает синус аргумента.
Function ArcCos(X: Extended): Extended;
Возвращает арккосинус аргумента, значение которого должно принадле-жать отрезку [-1, 1]. Возвращает значение из отрезка [0, Pi].
Function ArcSin(X: Extended): Extended;
Возвращает арксинус аргумента, значение которого должно принадле-жать отрезку [-1, 1]. Возвращает значение из отрезка [-Pi/2, Pi/2].
Function ArcTan2(Y, X: Extended): Extended;
Возвращает арктангенс аргументов, вычисляя ArcTan(Y/X) в соответ-ствии с квадрантами координатной плоскости xOy. Возвращает значение из отрезка [-Pi, Pi].
Function Exp (X: Real): Real;
Возвращает экспоненту аргумента.
Function Sinh(X: Extended): Extended;
Возвращает гиперболический синус аргумента.
Function Cosh(X: Extended): Extended;
Возвращает гиперболический косинус аргумента.
Function Tanh(X: Extended): Extended;
Возвращает гиперболический тангенс аргумента.
Function ArcSinh(X: Extended): Extended;
Возвращает гиперболический арксинус аргумента.
Function ArcCosh(X: Extended): Extended;
Возвращает гиперболический арккосинус аргумента.
Function ArcTanh(X: Extended): Extended;
Возвращает гиперболический арктангенс аргумента.
Function Ln (X: Real): Real;
Возвращает натуральный логарифм аргумента.
Function Sqr (X: Real): Real;
Возвращает квадрат аргумента.
Function Sqrt (X: Real): Real;
Возвращает квадратный корень аргумента.
FunctionCeil(X: Extended):Integer;
Возвращает наибольшее целое аргумента.
Сeil(-2.8) = -2
Ceil(2.8) = 3
Ceil(-1.0) = -1
Function Floor(X: Extended): Integer;
Возвращает наименьшее целое аргумента.
Ceil(-2.8) = -3
Ceil(2.8) = 2
Ceil(-1.0) = -1
Function Dec (X, [n]: LongInt): LongInt;
Уменьшает значение аргумента на величину второго параметра. Если он отсутствует, то уменьшает на 1.
J:=67;
K:=Dec(J); {j= 66}
K:=Dec(J, 13); {j= 53}
Function Inc (X, [n]: LongInt): LongInt;
Увеличивает значение аргумента на величину второго параметра. Если он отсутствует, то увеличивает на 1.
J:=67;
K:=Inc(J); {j= 68}
K:=Inc(J, 13); {j= 81}
12.4. Скалярные функции
Function Odd (X: LongInt): Boolean;
Возвращает True, если аргумент четный.
J:=67;
K:=Odd(J); {K= False}
Function Pred (X);
Возвращает предшествующее значение типа аргумента.
Function Succ (X);
Возвращает последующее значение типа аргумента.
12.5. Процедуры завершения
Procedure Exit; Выход из процедуры.
Procedure Halt([Code:Word]);
Выход в операционную систему с кодом возврата, если он указан.
12.6. Процедуры и функции для работы с типами "дата/время"
Типы TDateTime и TTimeStamp, а также производные от них типы предназначены для хранения даты и времени. Эти типы используются в ряде весьма полезных и необходимых процедур и функций для работы с датами и временем.
Function Now: TDateTime;
Возвращает текущую дату и время.
Function Date: TDateTime;
Возвращает текущую дату.
Function Time: TDateTime;
Возвращает текущее время.
Function DateToStr (D: TDateTime): String;
Преобразует дату в строку символов, например:
S:= DateTimeToStr(Date); {текущая дата '26.10.99'}
Function TimeToStr(T: TDateTime): String;
Преобразует время в строку символов, например:
S:= TimeToStr(Time); { текущее время '13.58.13'}
Function DateTimeToStr(DateTime: TDateTime): String;
Преобразует дату/время в строку символов, например:
S:= DateTimeToStr(Now); { текущие дата и время '26.10.99 14.01.51'}
Function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
Конвертирует TDateTime в TTimeStamp, например:
TS:= DateTimeToTimeStamp(Now); {type TS = TTimeStamp}
s:= IntToStr(Ts.Date) + ' ' + IntToStr(Ts.Time); {'730053 51095810' – (прошло дней с 00.00.0000 г. и миллисекунд от полуночи текущего дня}
FunctionTimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
Конвертирует TTimeStamp в TDateTime.
Procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
Раскладывет дату Date на год, месяц и день, например:
DecodeDate(Now, Y, M, D);
s:= IntToStr(Y) + ' ' + IntToStr(M) + ' ' + IntToStr(M); {'1999 10 26'}
.Procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
Раскладывет время Time на час, минуты, секунды и миллисекунды, например:
DecodeTime(Now, H, M, S, MS);
ss:= IntToStr(H) + ' ' + IntToStr(M) + ' ' + IntToStr(S) + ' ' + IntToStr(MS);
{'14 22 34 567', т. е. 14 ч 22 мин 34 с 567 мс}
.Function EncodeDate(Year, Month, Day: Word): TDateTime;
Противоположна DecodeDate;
.Function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
Противоположна DecodeTime;
.Function FormatDateTime(const Frmt: string; DateTime: TDateTime): string;
Преобразует DateTime в строку с заданным форматом. Если формат пуст, то функция возвращает строку в формате "c". Следующий оператор присвоит строковой переменной s значение 'Встреча состоится: пятница, 6 Ноябрь, 1999, в 10:30 AM'.
s:= FormatDateTime('"Встреча состоится:" dddd, mmmm d, yyyy, ' +'"в" hh:mm AM/PM', StrToDateTime('6.11.99 10:30am'));
Виды форматов даны в табл. 16.
12.7. Прочие процедуры и функции
Function Hi(X): byte;
Возвращает старший байт своего целочисленного аргумента.
Function Lo(X) : byte;
Возвращает младший байт своего целочисленного аргумента.
Procedure Swap(X);
Меняет старший и младший байты целочисленного аргумента местами.
Procedure Randomize;
Инициализирует генератор случайных чисел.
Function Random(N: Integer): Integer;
Возвращает случайное число из интервала (0, N).
Function SizeOf(X) : Integer;
Возвращает число байт, занимаемых аргументом.
Procedure Move(Var Source, Dest; Count: Integer);
Копирует Count байт из переменной Source в переменную Dest. В случае перекрытия областей памяти пересылка в перекрывающуюся область не производится.
Function ParamCount: Word;
Возвращает число параметров, переданных в командной строке.
Procedure Break;
Оператор безусловного завершения цикла, процедуры или функции.
. Procedure Continue;
Оператор, используемый в цикле для передачи управления в его начало.
Таблица 16
Формат | Описание |
CDDdDddDdddDddddDdddddMMmMmmMmmmYyYyyyhhhnnnssstttam/pmampma/p/: | Показывает сначала дату в формате дд.мм.гг, затем время в формате чч.мм.сс. Не показывает время, если дробная часть DateTime равна нулюПоказывает день без лидирующего нуля (1 – 31)Показывает день с лидирующим нулём (01 – 31)Показывает день недели в укороченном формате (Вос – Суб) Показывает день недели в полном формате (Воскресенье – Суббота) Показывает дату в формате дд.мм.гг.Показывает дату в формате д Месяц годПоказывает месяц без лидирующего нуля (1 – 12)Показывает месяц с лидирующим нулём (01 – 12)Показывает месяц в сокращенном виде (Янв – Дек)Показывает месяц в полном формате (Январь – Декабрь)Показывает год в виде двух последних цифр (00 – 99)Показывает год в виде четырех цифр (00000 – 9999)Показывает час без лидирующего нуля (0 – 23)Показывает час с лидирующим нулем (00 – 23)Показывает минуту без лидирующего нуля (0 – 59)Показывает минуту с лидирующим нулем (00 – 59)Показывает секунду без лидирующего нуля (0 – 59)Показывает секунду с лидирующим нулем (00 – 59)Показывает время в формате чч:ммПоказывает время в формате чч:мм:ссПоказывает время в 12-часовом формате (am – до полудня, pm – после полудня)Показывает время в 12-часовом формате без указателя до/после полудняИспользует Windows-разделитель даты.Использует Windows-разделитель времени |
. procedure Abort;
Используется в контексте с другим оператором; отменяет "задним числом" оператор в случае его аварийного завершения, блокирует выдачу сообщения об ошибке, удобен к использованию в блоке try … finally.
13. Структурные операторы
К их числу относятся:
· составной оператор,
· условный оператор If,
· оператор варианта Case,
· оператор цикла For – Do,
· оператор цикла While – Do,
· оператор цикла Repeat – Until,
· оператор записи With,
· оператор Try – Except – End,
· оператор Try – Finally – End,
· оператор On – Do,
· оператор Try – Finally – End.
13.1. Составной оператор
Это простая структура следующих друг за другом операторов, заключенных в операторные скобки begin … end.
Синтаксис составного оператора:
Begin
Оператор1
Оператор2
…
ОператорN
End;
Составной оператор применяется в тех случаях, когда какое-либо действие необходимо применить не к одному, а сразу к нескольким операторам.
Пример:
Begin
R:= X;
X:= Y;
Y:= R;
End;
13.2. Условный оператор If
Синтаксис допускает два вида оператора:
if логическое выражение then оператор1 else оператор2;
и его усеченный вариант:
if логическое выражение then оператор1;
Оператор работает следующим образом. Сначала вычисляется логичес-кое выражение. Если оно истинно, то выполняется оператор1, иначе – оператор2. Усеченный оператор выполняет оператор1 только в случае истинного значения логического выражения и не производит никаких действий в случае его ложности.
Примеры:
if (x < 10.7) then a[4]:= 5 else a[4]:= 6;
if (x < 10.7) then a[4]:= 5;
Допустима вложенность условных операторов внутри составного условного оператора. Например, оператору
if L1 then if L2 then St1 else St2 else St3;
эквивалентен оператор
if L1 then
begin
if L2 then St1 else St2;
end
else St3;
В этом операторе для повышения структурированности использованы операторные скобки begin … end. При конструировании сложного условного оператора во избежание логических ошибок следует отдавать предпочтение структурному способу записи такого оператора.
13.3. Оператор варианта Case
Синтаксис оператора:
Case Selector of
Const1: Оператор1;
Const2: Оператор2;
…
ConstN: ОператорN
[else Оператор];
End;
Selector может быть любой простой тип кроме Real. Каждая из Const1 … ConstN может быть значение, несколько перечисленных через запятую значений или отрезок типа. Оператор Else, как видно из описания, может отсутствовать. В том случае, если он присутствует, то действует общее правило: перед словом Else не должно быть символа ";" (точка с запятой). Поясним работу оператора Case на примере:
Case i of
0 : x := 0;
1,3 : x := 1;
10 .. 15: x := 2
else x := 3;
End;
При выполнении оператора Case управление будет передано тому оператору, который помечен константой, являющейся значением переменной i. Например, если к моменту выполнения Case-оператора i = 0, то будет выполнен оператор x := 0. Иначе, если i = 1 или i = 3, то будет выполнен оператор x := 1; иначе, если значение i в диапазоне 10 .. 15, то будет выполнен оператор x := 2; наконец, если i не равно ни одной из вышеперечисленных констант, то будет выполнен оператор x := 3, следующий за словом else (иначе).