Смекни!
smekni.com

Object Pascal (стр. 7 из 16)

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 (иначе).