Javascript must be enabled in your browser to use this page.
Please enable Javascript under your Tools menu in your browser.
Once javascript is enabled Click here to go back to �нтеллектуальная Кобринщина

Явное преобразование типов

В ряде случаев в Pascal происходит автоматический переход от одного типа данных к другому (от целого к действительному, от символьного к строковому и т.д.). Существует также ряд функций, осуществляющих преобразование типов (ord, chr, trunc, round). Наряду с этим в Паскаль возможно явное преобразование типов (ретипизация данных). Для того, чтобы осуществить явное преобразование типа, необходимо использовать имя типа аналогично тому, как используется имя функции. В качестве параметра в этом случае указывается имя преобразуемой переменной.

Преобразовать можно любой тип к любому другому, однако следует выполнять требование: в операторе присваивания переменная слева должна занимать в памяти столько же или больше байт, сколько занимает преобразуемое значение.

Пример задачи, где используется явное преобразование типов

Вычислить значение функции sign(x) = 1 при x>0; 0 при x=0; -1 при x<0.

var

    x: real;

    sign: integer;

begin

    readln(x);

    sign:= byte(x>0)-byte(x<0);

    writeln(sign);

end.

В программе при положительном значении x выражение x>0 принимает значение true, а выражение x<0 — false. В результате получается, что byte(x>0) = 1, byte(x<0)=0, а sign=1. При отрицательном значении x byte(x>0)=0, byte(x<0)=1, sign=-1. При нулевом значении x sign=0.