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