Иллюстрированный самоучитель по Turbo Pascal

Преобразованя типов и действия над ними

Конечно же, в Турбо Паскале есть все четыре арифметические операции над переменными REAL и INTEGER:

  • + – сложение;
  • - – вычитание;
  • * – умножение;
  • / – деление вещественное;
  • div – деление целочисленное.

Наличие двух операций деления есть еще одно проявление основополагающего принципа Турбо Паскаля: программист должен явно подтверждать компилятору, что он готов к возможным последствиям преобразования типов. Если, например, в языке Фортран используется выражение 1/2, то результат этого выражения будет зависеть от того, переменной какого типа он будет присвоен: если N есть переменная целого типа, а Х – вещественного, то в программе на Фортране присваивания:

N = 1/2
X = 1/2

Дадут значения 0 для N и 0.5 для X. В Турбо Паскале такой двусмысленности нет: выражение 1/2 всегда имеет значение 0.5 и поэтому оператор:

var
N:Integer;
begin
N: = 1/2;

Просто недопустим. В то же время допустимый в Турбо Паскале оператор:

var
X: Real;
begin
X: = 1 div 2;

Самим фактом использования операции целочисленного деления DIV свидетельствует о том, что программист сознательно отбрасывает дробную часть результата. (Надеюсь, что читатель извинит явную искусственность этих примеров, которая вызвана лишь стремлением проиллюстрировать обсуждаемые особенности языка).

Для данных типа INTEGER в Турбо Паскале есть еще одна операция MOD – получение остатка от целочисленного деления. Например:

5 mod 2 = 1
31 mod 16 = 15
18 mod 3 = 0

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

И еще об одном существенном недостатке Турбо Паскаля: в нем отсутствуют комплексный тип и соответствующие операции над ним. Вообще, в отношении реализации разнообразных вычислительных процедур Турбо Паскаль значительно уступает некоторым другим языкам программирования, в частности, тому же Фортрану. В частности, в нем намного беднее набор встроенных математических функций (см. гл. 4).

При работе с целыми числами могут оказаться полезными две процедуры (здесь и далее в квадратных скобках указываются необязательные параметры):

  • DEC (X [, N]) – уменьшает содержимое переменной X на значение выражения N (если N не задано, то на 1); тип переменной X и выражения N – INTEGER (точнее, любой целый, см. гл. 4);
  • INC (X [, N]) – увеличивает значение X на N (если N не задано, то на 1).

Над символами и строками символов определена единственная операция – сцепление двух строк. Операция обозначается символом "+". Например, программа:

var
st: String;
begin
st: = 'Турбо'+'-'+'Паскаль';
WriteLn(st);
end.

Напечатает строку:

Турбо-Паскаль

Все остальные действия над строками и символами реализуются с помощью встроенных процедур и функций (см. гл.4).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.