Может ли функция (процедура) быть полем record? - Free Pascal
Формулировка задачи:
Всем доброго времени суток! Вопрос был объявлен в заголовке:может ли процедура(функция) быть полем структуры? Если да, то какой должен быть для этого код?
Следующий код компилируется без ошибок, но при запуске выдаёт ошибку 216.
Заранее спасибо.
type struc=record x:integer; f:procedure; end; var a:struc; procedure f; Begin writeln(1); End; BEGIN struc.f; END.
Решение задачи: «Может ли функция (процедура) быть полем record?»
textual
Листинг программы
{$mode delphi}
type struc=record
x:integer;
procedure f;
end;
procedure struc.f;
Begin
writeln(x);
End;
var
a:struc;
BEGIN
a.x := 10;
a.f;
END.
Объяснение кода листинга программы
В данном коде используется язык программирования Free Pascal.
- В первой строке указывается режим работы {$mode delphi}, который позволяет использовать синтаксис Delphi в коде на Pascal.
- Далее определяется структура
strucтипа record, которая содержит поле x типа integer и процедуру f. - В процедуре f происходит вывод значения поля x в консоль с помощью функции writeln.
- Затем определяется переменная a типа struc, которая будет использоваться для работы с полями структуры.
- В следующей строке присваивается значение 10 полю x структуры a.
- И наконец, вызывается процедура f для структуры a с помощью выражения a.f.
- Код завершается точкой END.