Dúvida com Orientação a Objetos en Delphi
01/11/2003
0
Tenho duas classe, Tindividuo e Tpopulacao que são estas:
type
Tindividuo = class
public
fitness: real;
gene: array[0..4] of integer;
constructor individuo;
procedure calcFitness;
procedure impIndividuo (ListBox : TlistBox; Indiv : TIndividuo);
end;
type
Tpopulacao = class
public
ind : array[0..9] of Tindividuo;
fitness : real;
constructor populacao;
procedure calcFitness;
function getInd ( i : integer) : Tindividuo;
procedure setInd ( aux : Tindividuo; i : integer);
end;
sendo os construtores os seguintes:
constructor Tindividuo.individuo;
var
i: integer;
k: integer;
begin
i:=0;
while i < constante.qG do
begin
Randomize;
gene[i]:=abs(random(constante.qG)) mod constante.pC;
// verifica se há genes iguais
if i > 0 then
begin
for k:=0 to i - 1 do
begin
if gene[k]=gene[i] then
begin
i := i - 1;
break;
end;
end;
end;
i := i + 1;
end;
end;
e
constructor Tpopulacao.populacao;
var i : integer;
begin
for i := 0 to Constante.qI - 1 do
begin
ind[i] := Tindividuo.individuo;
ind[i].calcFitness;
end;
calcFitness;
end;
quando tento criar uma instancia da classe Tpopulacao,
os valores mostrados para mim são os seguintes:
pop = (ind($8C3FCC,$8C24BC, .., .., .., .., .., .., .., ..); fitness: 7190.125);
quando deveria aparecer o seguinte:
pop=(ind(((0,1,2,3,4); fitness:586.256), .., .., .., .., ..);fitness:7190.125);
se der para entender o que eu quiz dizer por favor me ajudem, pois e um trabalho da Faculdade e preciso entregar na segunda.
Obrigado desde já,
Marco A. Justo
type
Tindividuo = class
public
fitness: real;
gene: array[0..4] of integer;
constructor individuo;
procedure calcFitness;
procedure impIndividuo (ListBox : TlistBox; Indiv : TIndividuo);
end;
type
Tpopulacao = class
public
ind : array[0..9] of Tindividuo;
fitness : real;
constructor populacao;
procedure calcFitness;
function getInd ( i : integer) : Tindividuo;
procedure setInd ( aux : Tindividuo; i : integer);
end;
sendo os construtores os seguintes:
constructor Tindividuo.individuo;
var
i: integer;
k: integer;
begin
i:=0;
while i < constante.qG do
begin
Randomize;
gene[i]:=abs(random(constante.qG)) mod constante.pC;
// verifica se há genes iguais
if i > 0 then
begin
for k:=0 to i - 1 do
begin
if gene[k]=gene[i] then
begin
i := i - 1;
break;
end;
end;
end;
i := i + 1;
end;
end;
e
constructor Tpopulacao.populacao;
var i : integer;
begin
for i := 0 to Constante.qI - 1 do
begin
ind[i] := Tindividuo.individuo;
ind[i].calcFitness;
end;
calcFitness;
end;
quando tento criar uma instancia da classe Tpopulacao,
os valores mostrados para mim são os seguintes:
pop = (ind($8C3FCC,$8C24BC, .., .., .., .., .., .., .., ..); fitness: 7190.125);
quando deveria aparecer o seguinte:
pop=(ind(((0,1,2,3,4); fitness:586.256), .., .., .., .., ..);fitness:7190.125);
se der para entender o que eu quiz dizer por favor me ajudem, pois e um trabalho da Faculdade e preciso entregar na segunda.
Obrigado desde já,
Marco A. Justo
Manjuneiro
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)