Простая программа с процедурными типами не компилируется и не работает - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д