Может ли функция (процедура) быть полем record? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! Вопрос был объявлен в заголовке:может ли процедура(функция) быть полем структуры? Если да, то какой должен быть для этого код? Следующий код компилируется без ошибок, но при запуске выдаёт ошибку 216.
Листинг программы
  1. type struc=record
  2. x:integer;
  3. f:procedure;
  4. end;
  5. var
  6. a:struc;
  7. procedure f;
  8. Begin
  9. writeln(1);
  10. End;
  11. BEGIN
  12. struc.f;
  13. END.
Заранее спасибо.

Решение задачи: «Может ли функция (процедура) быть полем record?»

textual
Листинг программы
  1. {$mode delphi}
  2.  
  3. type struc=record
  4.   x:integer;
  5.   procedure f;
  6. end;
  7.  
  8. procedure struc.f;
  9. Begin
  10.   writeln(x);
  11. End;
  12.  
  13. var
  14.   a:struc;
  15.  
  16. BEGIN
  17.   a.x := 10;
  18.   a.f;
  19. END.

Объяснение кода листинга программы

В данном коде используется язык программирования Free Pascal.

  1. В первой строке указывается режим работы {$mode delphi}, который позволяет использовать синтаксис Delphi в коде на Pascal.
  2. Далее определяется структура struc типа record, которая содержит поле x типа integer и процедуру f.
  3. В процедуре f происходит вывод значения поля x в консоль с помощью функции writeln.
  4. Затем определяется переменная a типа struc, которая будет использоваться для работы с полями структуры.
  5. В следующей строке присваивается значение 10 полю x структуры a.
  6. И наконец, вызывается процедура f для структуры a с помощью выражения a.f.
  7. Код завершается точкой END.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы