Простая программа с процедурными типами не компилируется и не работает - Free Pascal
Формулировка задачи:
uses Crt; Type Func = function(x,y: integer):integer; {$F+} function Adds(x,y:integer):integer; begin Adds:= x + y; end; function Multiplys(x,y:integer):integer; begin Multiplys:= x*y;end; function Funny(x,y:integer):integer; begin funny:= (x+y)*(x-y);end; {$F-} procedure PrintTable(w,h:integer;operation:func); var x,y: integer; begin for y:= 1 to h do begin for x:= 1 to w do write(operation(x,y):5); writeln; end;{End For y} writeln; end;{End PrintTable} BEGIN ClrScr; PrintTable(10,10,Adds); PrintTable(10,10,Multiplys); PrintTable(10,10,Funny); Writeln('This end program click any key'); Readkey; END.
оказывается чтобы не ползать по option
нужно
Чтобы максимально приблизить FPC к Delphi7, используйте -Mdelphi в командной строке
или вставляйте в исходники (перед Unit и Program ) такой код:
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF FPC}
вставил перед program в представленной проге
вот этот код(понравился он мне) {$MODE DELPHI}
и прога заработала безо всяких переключений
Решение задачи: «Простая программа с процедурными типами не компилируется и не работает»
textual
Листинг программы
{$MODE ObjFPC} uses Crt; Type Func = function(x,y: integer):integer; function Adds(x,y:integer):integer; begin Adds:= x + y; end; function Multiplys(x,y:integer):integer; begin Multiplys:= x*y;end; function Funny(x,y:integer):integer; begin funny:= (x+y)*(x-y);end; procedure PrintTable(w,h:integer;operation:func); var x,y: integer; begin for y:= 1 to h do begin for x:= 1 to w do write(operation(x,y):5); writeln; end;{End For y} writeln; end;{End PrintTable} BEGIN ClrScr; PrintTable(10,10,@Adds); // Внимательно смотрим на синтаксис PrintTable(10,10,@Multiplys); PrintTable(10,10,@Funny); Writeln('This end program click any key'); Readkey; END.
Объяснение кода листинга программы
- Объявлены процедурные типы данных: Func, Proc
- Определены функции: Adds, Multiplys, Funny
- Определена процедура PrintTable
- В основной части программы вызываются функции и процедуры для вывода таблиц
- Завершается программа вызовом Readkey
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д