Иллюстрированный самоучитель по Delphi 7 для начинающих

Тип выражения. Выполнение инструкции присваивания.

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

Важно уметь определять тип выражения. При определении типа выражения следует иметь в виду, что тип константы определяется ее видом, а тип переменной задается в инструкции объявления. Например, константы 0, 1 и -512 – целого типа (integer), а константы 1.0, 0.0 и 3.2Е-05 – вещественного типа (real).

В табл. 1.5 приведены правила определения типа выражения в зависимости от типа операндов и вида оператора.

Таблица 1.5. Правила определения типа выражения.

Оператор Тип операндов Тип выражения
*, +, - Хотя бы один из операндов real real
*, +, - Оба операнда integer integer
/ real или integer Всегда real
DIV, MOD Всегда integer Всегда integer

Выполнение инструкции присваивания

Инструкция присваивания выполняется следующим образом:

  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'.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.