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

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

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

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

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

var
    x: real;
    sign: integer;
begin
    readln(x);
    sign:= byte(x>0)-byte(x);
    writeln(sign);
end.

В программе при положительном значении x выражение x>0 принимает значение true, а выражение x0) = 1, byte(x0)=0, byte(x

Комментарии

почему?

не идёт программа?

var
    x: real;
    sign: integer;
begin
    readln(x);
    sign:= byte(x>0)-byte(x);
    writeln(sign);
end.

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

Тому що )))

Program efwf;
var
    x: real;
    sign: integer;
begin
    readln(x);
    sign:= byte(x>0)-byte(x);
    writeln(sign);
end.

Вона не запускається тому ,що не було назви програми (Program efwf;)

прграмма не запускается и readln; не помогает

var
    x: real;
    sign: integer;
begin
    readln(x);
    sign:= byte(x>0)-byte(x);
    writeln(sign);
end.

У меня все работает

У меня все работает (freepascal в Linux)

Все идет

В конце перед end. readln; допиши и пойдет)