в том виде как есть ничего не делает. После исправления ошибок, принимает следующий вид:
program p2;
var
d, e, f, g, h, i, j, k : integer;
function Sub1(x, y : integer) : integer;
begin
if x+y = 3 then Sub1 := 3 else Sub1 := y-x;
end;
function Sub2(p, q : integer) : integer;
begin
Sub2 := Sub1(p, q)+Sub1(q, p);
end;
begin
g := 4; h := 7; i := 9; j := 5; k := 2; d := 1; e := 3;
f := Sub1(g, h);
f := Sub2(i, j);
f := sub1(g, k);
writeln(g, ' ', h, ' ', i, ' ', j, ' ', k, ' ', d, ' ', e, ' ', f);
end.
и на выходе печатает следующее:
4 7 9 5 2 1 3 -2