program COMB4P;
{ TURBO PASCAL 7 SOURCE
DELPHI SOURCE
Calculo de combinacoes de MAX elementos 4x4 em POO
Joao Paulo Schwarz Schuler}
{FPC Source Code}
{$X+}
{$F+}
type TOnCalcEvent = procedure (X,Y,Z,W: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,Z,W:integer;
begin
for X:=1 to MAXIMO do
for Y:=succ(X) {X+1} to MAXIMO do
for Z:=succ(Y) {Y+1} to MAXIMO do
for W:=succ(Z) {Z+1} to MAXIMO
do OnCalc(X,Y,Z,W);
end;
destructor TCombinacao.Done;
begin
end;
const MAX = 5; { experimente outros valores}
procedure Imprime(X,Y,Z,W:longint);
const VIRG : char = ',';
begin
writeln('(',X,VIRG,Y,VIRG,Z,VIRG,W,')');
end;
var C:TCombinacao;
begin
C.Init(Imprime,MAX);
C.Run;
C.Done;
end.