>

Больше чем

X1 > X2

Логическое значение True, если значение X1 больше значения X2 в смысле, определенном для типа этих значений, и False в противном случае

<=

Меньше или равно

X1<=X2

Логическое значение True, если значение X1 не больше значения X2 в смысле, определенном для типа этих значений, и False в противном случае

>=

Больше или равно

X1>=X2

Логическое значение True, если значение X1 не меньше значения X2 в смысле, определенном для типа этих значений, и False в противном случае

Когда операции отношения применяются для операндов простых типов, то это должны быть совместимые типы. Однако, если один операнд имеет вещественный тип, то другой может быть целого типа. Можно сравнивать и логические значения. Всегда выполняется True>False.

Обычно логические выражения встречаются в программе либо в операторах управления с условием (IF, WHILE, REPEAT...UNTIL и др.), либо в присваивании значений в логические переменные. С помощью приведения типов можно вставлять логические выражения прямо в числовые. Например, если надо ограничить величину X, например, значением 15, то обычно строится конструкция

if X>15 then X:=X-15;

Но если учесть, что False хранится как байт со значением 0, a True — как байт со значением 1, то можно обойтись без if:

X := X - 15 * Byte( X>15 );

Здесь 15 вычтется только, если (X>15)=True, что значит 1. Иначе же, вычтется 15*0. Можно и из байтов делать логические значения приведением к типу Boolean. Но тут надо помнить, что

Boolean( X ) = False, если X=0,

Boolean( X ) = True , если X<>0.

Значение X должно иметь тип Byte. Как видно, ненулевое значение всегда «истинно».

- 175 -

Еще одно замечание: при сравнении вещественных значений нельзя быть уверенным в его корректности. Например, выражения X и ( 2.23 * X / 2.23 ) формально тождественны, но из-за ошибок округления в вещественном типе будут различаться. Еще большие проблемы возникают при работе с расширенным набором вещественных типов, разрешенных при наличии математического сопроцессора 80X87. Советуем посмотреть разд. 9.5, посвященный использованию сопроцессора, где рассказывается, как бороться с подобными трудностями.

<p>9.4. Математические процедуры и функции</p>

Системная библиотека математических процедур и функций Турбо Паскаля приведена в таблицах 9.6 и 9.7.

Таблица 9.6

МАТЕМАТИЧЕСКИЕ ФУНКЦИИ

Вызов функции

Тип аргумента

Тип значения

Назначение функции

Abs(X)

Целый/вещественный

Как у аргумента

Абсолютное значение X

Pi

Вещественный

Значение числа 'Пи'

Sin(X)

Вещественный

Вещественный

Синус X радиан

Cos(X)

Вещественный

Вещественный

Косинус X радиан

ArcTan(X)

Вещественный

Вещественный

Арктангенс X радиан

Sqrt(X)

Целый/Вещественный

Как у аргумента

Квадратный корень из X, X>0

Sqr(X)

Целый/Вещественный

Как у аргумента

Значение квадрата X

Exp(X)

Вещественный

Вещественный

Значение e в степени X

Ln(X)

Вещественный

Вещественный

Натуральный логарифм X, X>0

Trunc(X)

Вещественный

LongInt

Целая часть значения X

Frac(X)

Вещественный

Вещественный

Дробная часть значения X

Int(X)

Вещественный

Вещественный

Целая часть значения X

- 176 -

Round(X)

Вещественный

LongInt

'Правильное' округление X до ближайшего целого

Random

Вещественный

Случайное число (0…1)

Random(X)

Word

Word

Случайное число (0…X)

Odd(X)

Целый

Логический

Возвращает True, если X – нечетное число

Таблица 9.7

МАТЕМАТИЧЕСКИЕ ПРОЦЕДУРЫ

Перейти на страницу:

Поиск

Похожие книги