Skip to content
Procedures and Functions
step 1/5

Reading — step 1 of 5

Learn

~1 min readProcedures and Arrays

Pascal distinguishes:

  • procedure — does work, returns nothing (like void)
  • function — returns a value
procedure SayHi(name: string);
begin
    WriteLn('Hello, ', name);
end;

function Square(n: integer): integer;
begin
    Square := n * n;     { assign return value to function name }
end;

In newer FPC you can also use Result := ... instead of the function name:

function Cube(n: integer): integer;
begin
    Result := n * n * n;
end;

Declarations go BEFORE the main begin:

program Demo;

function Square(n: integer): integer;
begin
    Result := n * n;
end;

begin
    WriteLn(Square(7));
end.

Parameters are pass-by-value by default. Use var for pass-by-reference:

procedure Swap(var a, b: integer);
var tmp: integer;
begin
    tmp := a; a := b; b := tmp;
end;

Discussion

Ask a question, share an insight, or help someone who’s stuck.

Sign in to post a comment or reply.

Loading…