Выполнение инструкции присваивания
Инструкция присваивания выполняется следующим образом:
1. Сначала вычисляется значение выражения, которое находится справа от символа инструкции присваивания.
2. Затем вычисленное значение записывается в переменную, имя которой стоит слева от символа инструкции присваивания.
Например, в результате выполнения инструкций:
· i:=0; — значение переменной i становится равным нулю;
· а:=b+с; — значением переменной а будет число, равное сумме значений переменных ь и с;
· j :=j+1; — значение переменной j увеличивается на единицу.
Инструкция присваивания считается верной, если тип выражения соответствует или может быть приведен к типу переменной, получающей значение. Например, переменной типа real можно присвоить значение выражения, тип которого real или integer, а переменной типа integer можно присвоить значение выражения только типа integer.
Так, например, если переменные i и п имеют тип integer, а переменная d — тип real, то инструкции
i:=n/10; i:=1.0;
неправильные, а инструкция
d:=i+1; правильная.
Во время компиляции выполняется проверка соответствия типа выражения типу переменной. Если тип выражения не соответствует типу переменной, то компилятор выводит сообщение об ошибке:
Incompatible types ... and ...
где вместо многоточий указывается тип выражения и переменной. Например, если переменная п целого типа, то инструкция n: = m/2 неверная, поэтому во время компиляции будет выведено сообщение :
Incompatible types 'Integer' and.'Extended'.
К целочисленным типам применимы следующие процедуры и функции:
Обращение | Тип результата | Действие |
abs (x) | x | Возвращает модуль х |
chr (Byte) | Char | Возвращает символ по его коду |
dec(x[,i]) | --- | Уменьшает значение x на i, а при отсутствии i - на 1 |
inc(x[,i]) | — | Увеличивает значение v на i, а при отсутствии i - на 1 |
Hi(word) | Byte | Возвращает старший байт аргумента |
Hi(integer) | Byte | Возвращает третий по счету байт |
Lo(integer) | Byte | Возвращает младший байт аргумента |
Lo (word) | Byte | Возвращает младший байт аргумента |
Odd(LongInt) | Boolean | Возвращает True, если аргумент - нечетное число |
Random(word) | ---- | Возвращает псевдослучайное число, равномерно распределенное в диапазоне 0...(word) |
sqr (x) | х | Возвращает квадрат аргумента |
swap (integer) | Integer | Меняет местами байты в слове |
swap(word) | Word | Меняет местами байты в слове |
Для работы с вещественными типами имеются стандартные функции: