Функции, изменяющие тип данных

Явное приведение типов данных

Тип значения можно изменить и явным способом: просто указав новый тип выражения, например: a:= byte(b). В этом случае переменной а будет присвоено значение, полученное новой интерпретацией значения переменной b. Скажем, если b имеет тип shortint и значение -23, то в a запишется 233 (= 256 - 23).

Приводить явным образом можно и типы, различающиеся по длине. Тогда значение может измениться в соответствии с новым типом. Скажем, если преобразовать тип longint в тип integer, то возможны потери из-за отсечения первых двух байтов исходного числа. Например, результатом попытки преобразовать число 100 000 к типу integer станет число 31 072, а к типу word - число 34 464.

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

trunc8): real -> integer;round: real -> integer;val9): string -> byte/integer/real;chr10): byte -> char;ord: <порядковый_тип> -> longint;

1) Появляется в Turbo Pascal начиная с версии 7.0.
2) Математический порядок определен и на вещественных числах. Однако в программировании вещественные типы данных противопоставлены порядковым: возможность нумерации доминирует над возможностью упорядочивания.
3) Не путать с перечислимыми, то есть порядковыми.
4) Имеется в виду минимальный тип данных, необходимый для представления результата
5) В отличие от бинарных операций, требующих двух операндов, унарные операции применимы только к одному операнду.
6) В параметр-значение (см. лекцию 8).
7) Запрещается даже участие файлового типа как поля любого уровня в структурированных типах данных.
8) Для сравнения: int: real -> real
9) См. лекцию 5.
10) См. лекцию 5.

 

 

3. Лекция: Ветвления. Массивы. Циклы:
Операторы ветвления: if и case. Массивы: описание и использование. Операторы цикла: for, while и repeat. Прерывание циклов: break, continue и goto.