Einzelnen Beitrag anzeigen

HenKst

Registriert seit: 7. Jul 2008
113 Beiträge
 
#28

Re: denkfehler; array-> dynarray

  Alt 8. Jan 2009, 13:32
Ich hab jetzt als Initialisierung setlength mit 1 gemacht aber die viecheranzahl auf 0 gelassen, damit funktionierts wunderprächtig

Delphi-Quellcode:
  TViech = record
    laenge: integer;
    haare: integer;
  end;

  TViecherGruppe = record
    viecheranzahl: integer;
    viecher: array of TViech;
  end;
var
  Form2: TForm2;
  blaueviecher: TViecherGruppe;

implementation

{$R *.dfm}

Function mutiere(var viech:tviech): TViech;
begin
  result.laenge:=viech.laenge+random(5);
  result.haare:=viech.haare+random(5);
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  i: integer;
begin
  blaueviecher.viecheranzahl:= 0;
  for i := 0 to 10000 do begin
    inc(blaueviecher.viecheranzahl);
    setlength(blaueviecher.viecher,blaueviecher.viecheranzahl+1); //der array ist 1 größer !!!ALS!!!^^ die benötigte anzahl
    blaueviecher.viecher[blaueviecher.viecheranzahl]:=
    blaueviecher.viecher[blaueviecher.viecheranzahl-1]; // hier sieht es so aus wie das letzte
    blaueviecher.viecher[blaueviecher.viecheranzahl]:=
    mutiere(blaueviecher.viecher[blaueviecher.viecheranzahl]) // hier wird es ein inviduum, da es mutiert
  end;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  randomize;
  blaueviecher.viecheranzahl:= 0;
  setlength(blaueviecher.viecher, 1);
  blaueviecher.viecher[0].haare:= 0;
  blaueviecher.viecher[0].laenge:= 1;
end;
narf - not a real function
  Mit Zitat antworten Zitat