program COMB2P;
{ TURBO PASCAL 7 SOURCE
DELPHI SOURCE
Calculo de combinacoes de MAX elementos 2x2 em POO
Joao Paulo Schwarz Schuler}
{FPC Source Code}
{$X+}
{$F+}
type TOnCalcEvent = procedure (X,Y:longint);
type TCombinacao = object
private
MAXIMO:longint;
OnCalc:TOnCalcEvent;
public
constructor Init(POnCalcEvent:TOnCalcEvent;PMAX:longint);
procedure Run;
destructor Done;
end;
constructor TCombinacao.Init(POnCalcEvent:TOnCalcEvent;PMAX:longint);
begin
OnCalc:=POnCalcEvent;
MAXIMO:=PMAX;
end;
procedure TCombinacao.Run;
var X,Y:integer;
begin
for X:=1 to MAXIMO do
for Y:=succ(X) {X+1} to MAXIMO
do OnCalc(X,Y);
end;
destructor TCombinacao.Done;
begin
end;
const MAX = 5; { experimente outros valores}
procedure Imprime(X,Y:longint);
begin
writeln('(',X,',',Y,')');
end;
var C:TCombinacao;
begin
C.Init(Imprime,MAX);
C.Run;
C.Done;
end.