Программирование в среде Турбо Паскаль (Поляков, Круглов) - страница 104

{$r-}

VAR LongV : LongInt; WordV : Word;

WordV := 0; { начальная очистка WordV }

Val( S, LongV, ErrCode }; { вызов преобразования }

if ErrCode=0

then begin { в S записано число }

if ( LongV >= 0 ) and ( LongV <= 65535 )

then { Все в порядке! }

WordV := LongV

else { Иначе несовместимость! }

WriteLn('Ошибка диапазона при преобразовании ',LongV );

end {then}

else { содержимое S не годится }

WriteLn('Ошибка в строке ',S,' в символе ',S[ErrCode]);

При преобразовании строк в другие целые типы достаточно лишь менять диапазон разрешенных значений в операторе IF.

- 161 -

Глава 9. Математические возможности Турбо Паскаля

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

9.1. Базовые операции


Математические выражения в алгоритмической записи состоят из операций и операндов. Большинство операций в языке Турбо Паскаль являются бинарными, т.е. содержат два операнда. Некоторые операции являются унарными и содержат только один операнд. В бинарных операциях используется обычное двухместное алгебраическое представление. В унарных операциях операция всегда предшествует операнду, например: -b.

В сложных выражениях порядок, в котором выполняются операции, соответствует приоритету операций (табл. 9.1).

Таблица 9.1

Первый (высший) приоритет

Унарные операции

Название

Тип операндов

Тип результата

@

Взятие адреса

Любой

Pointer

-

+

Унарный минус

Унарный плюс

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

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

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

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

not

not

Логическое 'НЕ'

Поразрядное 'НЕ'

Логический

Целый

Логический

Целый

- 162 -

Второй приоритет

Бинарные операции

*

Операция умножения

Целый*Целый

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

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

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

Целый

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

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

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

/

Операция деления

Целый/Целый

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

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

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

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

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

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

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

div

Целочисленное деление

Целый div Целый

Целый

mod

Остаток от деления нацело

Целый mod Целый

and

and

Логическое 'И'

Поразрядное 'И'

Логический

Целый

Логический

Целый

shl

shr

Циклический сдвиг влево

Циклический сдвиг вправо

Целый

Целый

Целый

Целый

Третий приоритет

Бинарные операции

+

Операция сложения

Целый+Целый

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

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