на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: Object Pascal


 

12.2. Стандартные функции

Function Char (X: byte): Char;

Возвращает символ с номером X.

Ch:= Char(74); {Ch= 'J'}

Function Ord (X): LongInt;

Возвращает порядковый номер скалярного аргумента.

j:= Ord('J'); {j= 74}

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;

Возвращает квадратный корень аргумента.

Function Ceil(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 г. и миллисекунд от полуночи текущего дня}

Function TimeStampToDateTime(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

Формат Описание

C

 

D

Dd

Ddd

Dddd

Ddddd

Dddddd

M

Mm

Mmm

Mmmm

Yy

Yyyy

h

hh

n

nn

s

ss

t

tt

am/pm

ampm

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

13.4. Оператор цикла For – Do

Синтаксис оператора имеет две разновидности:

For счетчик цикла:=нач.знач. To конеч.знач. Do оператор

For счетчик цикла:=нач.знач. Downto конеч.знач. Do оператор

Здесь конструкция For .. Do называется заголовком цикла, оператор – телом цикла.

Для циклов должны соблюдаться следующие правила и ограничения:

начальное и конечное значения счетчика цикла должны быть одинаковых простых типов, кроме Real;

в теле цикла счетчик не должен менять значение;

вход в цикл минуя заголовок запрещен;

для первой разновидности начальное значение не должно быть больше конечного;

для второй разновидности начальное значение не должно быть меньше конечного.

Первая разновидность оператора цикла For работает следующим образом. Сначала счетчик цикла принимает нач.знач. и выполняется оператор, расположенный вслед за словом Do. Затем значение счетчика будет увеличено на шаг счетчика 1 и вновь будет выполнен оператор и т. д., пока счетчик не переберет все значения от нач.знач. до конеч.знач.

Пример.

s:= 0;

For i:=1 to 44 do s:= s + z[i];

В результате в переменной s будет накоплена сумма первых 44 элементов массива z.

Другая разновидность оператора For отличается лишь отрицательным шагом –1 счетчика.

Пример.

s:= 0;

For i:=44 Downto 1 do s:= s + z[i];

Будет получен тот же результат.

13.5. Оператор цикла While – Do

Синтаксис оператора:

While логическое выражение Do оператор;

Цикл выполняет оператор, расположенный вслед за словом Do до тех пор, пока истинно логическое выражение, расположенное за словом While ("выполняй, пока истинно").

Пример.

x:= 0;

i:=0;

While (x < 101.667) do

Begin

Inc (i);

X:= X + 5.617;

Y[i]:= Func (i + 6, 9 * i, X);

End;

В этом примере цикл будет выполняться до тех пор, пока не выполнится условие x < 101.667. В теле цикла переменная X с каждым шагом цикла увеличивает свое значение на 5.617 так, что на определенном шаге условие x < 101.667 впервые не будет выполнено. В этот момент без входа в тело цикл закончит работу.

13.6. Оператор цикла Repeat – Until

Синтаксис оператора:

Repeat

Оператор1;

Оператор2;

ОператорN;

Until логическое выражение;

Цикл работает, пока логическое выражение ложно ("повторяй, пока не выполнится").

Пример.

s:= 0;

i:=0;

Repeat

Inc (i);

s:= s + z[i];

Until (i = 44);

В этом примере цикл будет выполняться до тех пор, пока не выполнится условие i = 44. Результат будет тот же, что в примере для For-цикла.

13.7. Операторы Break и Continue

Оператор Break может быть размещен в теле цикла. При его выполнении цикл прекращает работу и считается выполненным.

Пример.

s:= 0;

i:=0;

Repeat

Inc (i);

s:= s + z[i];

if (s > 14) then Break;

Until (i = 44);

В этом примере цикл будет выполняться до тех пор, пока не выполнится условие i = 44 или если в операторе if переменная s превысит значение 14.

Оператор Continue также может быть размещен в теле цикла. При его выполнении управление независимо от того, где он расположен, сразу передается в начало цикла для выполнения следующего шага.

Пример.

s:= 0;

i:=0;

Repeat

Inc (i);

s:= s + z[i];

if (s > 20) then Continue;

if (s > 14) then Break;

Until (i = 44);

В этом примере если в первом операторе if выполнится условие s > 20, то сработает оператор Continue. Он сразу передаст управление на первый оператор в теле цикла – Inc (i), предотвратив тем самым выполнение ниже-следующих операторов – второго if и Until.

13.8. Вложенные циклы

В теле оператора цикла могут быть размещены другие операторы цикла. Такие структуры называются вложенными циклами. Язык допускает любую глубину вложенности циклов. При использовании вложенных циклов необходимо иметь в виду следующее:

все вложенные циклы For – Do должны иметь различные счетчики (иначе это противоречило бы требованию на запрет изменения значения счетчика внутри цикла);

нет никаких ограничений на досрочный выход из внутреннего цикла наружу;

недопустим вход во внутренний цикл For – Do, минуя его заголовок, что соответствует общему требованию о корректном входе в цикл.

Вложенные циклы используются в ситуациях, когда на каждом шаге наружного цикла необходимо полностью выполнить внутренний цикл.

Пример.

Const

n = 15;

m = 24;

Var

i,j: Byte;

R,Tau,s: Real;

z: array[1..n, 1..m] of Real;

{заполнение массива z с использованием вложенных циклов}

Tau:= Pi/m;

For i:=1 to n do begin

R:=4.0*Pi*Sin(i*Tau); {первый оператор в теле цикла по i}

For j:=1 to m do z[i, j] := R+j; {второй оператор в теле цикла по i}

end {i};

{вычисление суммы положительных элементов массива z с использованием вложенных циклов }

s:=0;

For i:=1 to n do

For j:=1 to m do

 if ( z[i, j] > 0) then s:= s + z [i, j];

Приведенный пример содержит две структуры вложенных циклов. Первая структура предназначена для заполнения элементов двумерного массива z с помощью математической формулы

Наружный цикл со счетчиком i в теле цикла содержит два оператора – оператор присваивания (вычисление значения вспомогательной переменной R с целью сокращения времени вычислений) и оператор внутреннего цикла со счетчиком j. Поскольку наружный цикл в своем теле содержит несколько операторов, то они заключены в операторные скобки begin … end.

Эта структура работает следующим образом. После входа в наружный цикл переменная i (счетчик этого цикла) примет значение 1. Далее будет вычислено значение переменной R при i = 1. После этого будет выполнен внутренний цикл со счетчиком j, где j на каждом шаге будет последовательно принимать значения 1, 2, 3, … m (i при этом остается неизменным и равным 1). В результате будут вычислены элементы z11, z12, …, z1m первой строки массива. Затем будет выполнен возврат к заголовку наружного цикла, где значение счетчика i будет увеличено на 1 (т. е. i станет равно 2) и вновь будет выполнены операторы, расположенные в его теле. В результате будут определены элементы z21, z22, …, z2m второй строки массива и т.д.

Вторая структура вложенных циклов предназначена для вычисления суммы положительных элементов массива z. Для этого сначала переменной s будет присвоено значение 0, а затем во вложенных циклах будет накоплена требуемая сумма в ячейку s.

13.9. Оператор записи With

В ранних версиях языка оператор использовался для более удобного доступа к полям записи.

Пример:

Var

Student : Record

Fam: String[30];

Name: String[20];

Age: Word;

End;

Student.Fam:= 'Колокольников';

Student.Name:= 'Павел';

S:=Student.Fam + ' '+Student.Name;

{предыдущих три оператора эквивалентны следующим}

With Student do

Begin

Fam:= 'Колокольников';

Name:= 'Павел';

S:= Fam + ' '+ Name;

End;

13.10. Оператор Try – Except – End

Это новейшее средство языка. Блок Try – Except – End используется для предотвращения исключительных ситуаций (ИС), которые могут возникнуть при выполнении программы. К их числу относятся сбои в работе аппаратуры, ошибки вычислений (например деление на нуль), попытки присвоить значение, выходящее за пределы типа и т. д.

Синтаксис:

Try

{операторы, способные генерировать ИС}

Except

{операторы, обрабатывающие генерированные ИС}

end;

Блок Try – Except – End работает следующим образом. Выполнение начинается с операторов, расположенных в блоке Try – Except. Если в каком-либо операторе возникает ИС, то она подавляется и затем выполняются все операторы, расположенные в блоке Except – End. В результате предотвращается аварийное прерывание программы. Использование блока Try – Except – End открывает возможность программного контроля за ИС.

Пример.

i:= 0;

n:= 8;

Try

i:= n div i; {Деление на нуль. Оператор генерирует ИС}

n:= i + 9;

Except

ShowMessage('Ошибка. Деление на нуль в операторе i := n / i');

End;

Результатом выполнения блока операторов будет появление на экране формы с сообщением "Ошибка. Деление на нуль в операторе i := n / i", после чего программа продолжит работу с оператора, следующего за словом End, а не с оператора n := i + 9.

Если бы оператор i := n div i не был защищен блоком Try – Except – End, то возникшая при его выполнении ИС привела бы к нежелательному аварийному завершению программы.

13.11. Оператор On – End

При возникновении ИС язык позволяет не только предотвратить прерывание программы, но и определить, какого именно вида была ИС. Для этого в блоке Except – End можно использовать оператор On –Do.

Пример

i:= 0; n:= 8;

Try

i:= n div i; {Деление на нуль. Оператор генерирует ИС}

n:= i + 9;

Except

Страницы: 1, 2, 3, 4, 5, 6, 7, 8


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.