Совместимость по присваиванию необходима, если имеет место присваивание значения, например, в операторе присваивания или при передаче значений-параметров в подпрограмму.
Объект хранения данных, имеющий тип Т1, является совместимым по присваиванию со значением, имеющим тип Т2 (то есть допустимо Т1:=Т2), если выполняется одно из следующих условий:
§ Т1 и Т2 имеют тождественные типы (правила определения тождественности см. в пункте Параметры-переменные);
§ Т1 и Т2 являются совместимыми порядковыми типами, и значения типа Т2 попадают в диапазон возможных значений Т1;
§ Т1 и Т2 являются вещественными типами, и значения типа Т2 попадают в диапазон возможных значений Т1;
§ Т1 является вещественным типом, а Т2 является целочисленным типом;
§ Т1 и Т2 являются строковыми типами;
§ Т1 является строковым типом, а Т2 является символьным типом.
Если в операторе необходима совместимость по присваиванию, а ни одно из условий предыдущего списка не выполнено, то на этапе компиляции выдается сообщение об ошибке.
|
|
Операторы вызова процедуры
Оператор вызова процедуры простой оператор, который инициализирует формальные параметры процедуры фактическими (также этот процесс называют передачей параметров в процедуру), и передаёт ей управление (см. пункт Параметры).
Синтаксис оператора вызова процедуры:
Ид_процедуры (Фактич_парам1, Фактич_парам2,...);
Стандартные процедуры
Процедуры вывода
Write(Зн1 [,Зн2,..., Знn]) – записывает одно или более значений из одной или более переменных в текстовый файл.
Каждые параметры Зн являются выражениями, значения которых должны быть выведены на экран. Каждое выводимое выражение должно быть символьного, целого, вещественного, строкового, или булевского типа.
Writeln(Зн1, [,Зн2,..., Знn]) – данная процедура является расширением процедуры Write. После выполнения процедуры Write процедура Writeln переводит курсор на следующую строку.
Пример использования процедур вывода:
Рассмотрим выполнение процедур вывода следующей программы:
program Wrt;
Var
r:real; i:integer;
s:string[10];
Begin
i:=12;
r:=100;
s:= 'r=';
write(s,r);
writeln('i=',i);
write(i+1,r+i);
writeln();
write(i,', ',i);
End.
При выполнении программы на экране будут появляться выводимые процедурами вывода значения (таблица 4).
Таблица 4 – Пошаговое выполнение процедур вывода
Выполняемый оператор | Экран программы | |
write(s,r); | r=1.0000000000E+02 | |
writeln('i=',i); | r=1.0000000000E+02i=12 | |
write(i+1,r+i); | r=1.0000000000E+02i=12 13 1.1200000000 E+02 | |
writeln(); | r=1.0000000000E+02i=12 13 1.1200000000 E+02 | |
write(i,', ',i); | r=1.0000000000E+02i=12 13 1.1200000000 E+02 12, 12 |