Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Развёрнутые лекции по Паскалю.doc
Скачиваний:
8
Добавлен:
01.03.2025
Размер:
512.51 Кб
Скачать

9.6.Функции определения порядка

К любым переменным порядкового типа можно применять функции

определения порядка, такие как:

=>Ord(X) - Определяет номер элемента X в последовательности.

=>Succ(X) - Определяет последующий элемент в последовательности.

=>Pred(X) - Определяет предыдущий элемент в последовательности.

=>Low(X) - Определяет наименьший элемент (начиная с 7.0).

=>High(X) - Определяет наибольший элемент (начиная с 7.0).

Пример 9.

->Ord('a') -> 97;

->Ord(-100) -> -100;

->Succ(False) -> True;

->Pred(Th) -> We для типа Days.

->Ord(X)-Ord('0') -> дает возможность получить из символа-циф-

ры X (X: '0','1','2',..,'9') цифру.

Примечания:

->Не определены Succ для последнего и Pred -первого элементов.

Если включена директива {$R+}, то программа прервется.

->Для целого типа функции определения порядка не имеют смысла.

10.Тип вещественный

Примечания:

->Вещественный тип включает пять разновидностей, которые пред-

ставлены в табл.4.

Таблица 4

┌──────────┬─────────┬──────────────────────────┬────────────┐

│ Название │ Размер, │ Диапазон значений │ Число зна- │

│ типа │ байт │ │ чащих цифр │

├──────────┼─────────┼──────────────────────────┼────────────┤

│ Real │ 6 │ 2.9*E-39..1.7*E38 │ 11-12 │

│ Single │ 4 │ 1.5*E-45..3.4*E38 │ 7-8 │

│ Double │ 8 │ 5.0*E-324..1.7*E308 │ 15-16 │

│ Extended │ 10 │ 3.4*E-4932..1.1*E4932 │ 19-20 │

│ Comp │ 8 │ -2^63+1..2^63-1 (целые) │ 19-20 │

└──────────┴─────────┴──────────────────────────┴────────────┘

->Объявляются переменные вещественного типа следующим образом:

Var R1,R2:Real;

->Переменная вещественного типа занимает в памяти 6 байт и все

ее возможные значения заключены в диапазоне 2.9E-39..1.7E38.

->Над переменными вещественного типа можно производить опера-

ции отношения из 5.г. и математические, кроме Div и Mod.

->Правильная запись вещественного числа подразумевает указание

не менее одной цифры после запятой (точки).

->Для всех, кроме Real, {$N+} - нужен сопроцессор, {$N-} -эму-

лятор сопроцессора. Проверка сопроцессора {$E}.

->Встроенные процедуры и функции приведены в табл.5.

Таблица 5

┌──────────────┬─────────────────────────────────────────────┐

│ Наименование │ Действие │

├──────────────┼─────────────────────────────────────────────┤

│ ArcTan(X) │ Арктангенс в радианах(-Pi/2..Pi/2) │

│ Sin(X) │ Синус (X - в радианах) │

│ Cos(X) │ Косинус (X - в радианах) │

│ Exp(X) │ Экспонента от X │

│ Ln(X) │ Логарифм натуральный от X │

│ Sqr(X) │ Квадрат числа X │

│ Sqrt(X) │ Корень квадратный из X │

│ Frac(X) │ Дробная часть-результат вещественный │

│ Int(X) │ Целая часть числа-результат вещественный │

│ Round(X) │ Округление до ближайшего целого │

│ Trunc(X) │ Отбрасывание дробной части-результат целый X│

│ Pi │ 3.14159263... │

│ Abs(X) │ Абсолютное значение от X │

│ Random │ Случайное число в диапазоне 0..1 │

└──────────────┴─────────────────────────────────────────────┘

Примечания:

->Тригонометрические функции, а также Ln и Exp работают и с

переменными целых типов.

->Для правильной работы Random необходимо предварительно испо-

льзовать процедуру Randomize, которая исключает совпадение

случайных последовательностей при последовательных запусках.

11.ТИПИЗИРОВАННЫЕ КОНСТАНТЫ (ПЕРЕМЕННЫЕ С НАЧАЛЬНЫМ ЗНАЧЕНИЕМ)

Когда программа начинает работать, то переменные уже объявле-

ны, но их значения не определены. В TP можно задавать переменные со

стартовым (начальным) значением. При этом их из секции Var раздела

описания необходимо переместить в секцию Const. Типизированные кон-

станты могут принимать новые значения при выполнении программы.

Начальные значения типизированных констант простых типов, рас-

смотренных нами в разделах 8.1 и 8.2, задаются следующим образом:

Const R:Real=1.1523; {вещественного типа}

I:Integer=-10; {целого типа}

C:Char='A'; {символьного типа}

Tf:Boolean=True; {логического типа}

Col:Color=Red; {перечисляемого типа}

Примечания:

->Типизированные константы - это, прежде всего, переменные, а

не константы, поэтому их нельзя использовать в тех случаях,

когда требуются именно Const.

->Нельзя объявить за один раз более одной константы, т.е. не-

льзя записать Const a, b:Byte=5; Необходимо: Const a:Byte=5;

b:Byte=5;

->При объявлении таких констант можно использовать адресно-ко-

нстантные выражения, например, FufSeg:Word=Seg(Buf);