Для того, чтобы в программе не получилось путаницы с величинами разных типов нужно правильно применять понятия тождественности и совместимости типов.
Два типа называются тождественными, если они описаны вместе или если их определения используют один и тот же идентификатор типа.
Type
M1, M2= array [1..9] of real
S=array[1..9] of integer;
M1,M2 - тождественные типы
M1,S- не - тождественные типы.
Тождественность требуется при замене формальных параметров на фактические в процедурах и функциях. Например, abs(x), где х- целое или вещественное число, мы не можем поставить abs(x), если х- символьная или булевская переменная.
Огромную роль в выражениях и операциях сравнения, операторе присваивания играет совместимость типов.
В операциях сравнения два типа являются совместимыми, если соблюдается хотя бы одно из условий:
Оба типа одинаковые
Оба типа вещественные
Оба типа целые
Один тип является поддиапазоном другого
Оба типа поддиапазоны одного и того же типа
Один тип строковый, другой символьный
Например, ‘a’>’3’-допустимо ‘a’>3- недопустимо!!!
В операции присваивания два типа совместимы, если выполняется хотя бы одно из условий:
Типы тождественны
Первый строковый, второй литерный
Первый вещественный, второй целый
Например,
Var a: integer;
B: real;
C: char;
S: string;
A:=b;- НЕЛЬЗЯ!
B:=a;
C:=s; - НЕЛЬЗЯ!
S:=c;
A:=s; - НЕЛЬЗЯ!