program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils;

type
  PCalc = ^TCalc;

  TCalc = function(X: Integer; Y: Integer): Integer;

function CalculateSum(X: Integer; Y: Integer): Integer;
begin
  Result := X + Y;
end;

function CalculateDiv(X: Integer; Y: Integer): Integer;
begin
  Result := X div Y;
end;

var
  Calc: PCalc;
  iResult: Integer;
begin
  try
    Calc := @CalculateSum;
    iResult := TCalc(Calc)(5, 5);

    Calc := @CalculateDiv;
    iResult := TCalc(Calc)(10, 2);
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.