Einzelnen Beitrag anzeigen

Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#1

Inkompatible Typen: lokales dynamisches Array und Integer??

  Alt 25. Mär 2005, 12:07
Hi Leute,
warum bekomme ich bei dieser Procedure eine Meldung, dass inkompatible Typen vorliegen:

Delphi-Quellcode:
procedure TForm1.Primfaktoren(Zahl:integer;var Faktoren:array of integer);
var teiler, zaehler, i : integer;
begin
repeat
  SetLength(Faktoren,0); //<- Hier taucht die Meldung einmal auf
  teiler:=0;
  repeat
    teiler := teiler +1;
    zaehler:=0;
    for i:=1 to teiler do
      if teiler mod i = 0 then
        zaehler := zaehler + 1;
  until
    (zahl mod teiler = 0) and (zaehler = 2);
    zahl := zahl div teiler;
    setLength(Faktoren,length(Faktoren)+1); //<- Hier nochmals
    Faktoren[length(Faktoren)] := teiler;
until
  zahl = 1;
end;

Die Funktion soll die übergebene Zahl in ihre Primfaktoren aufteilen und diese Primfaktoren dann in einen Array schreiben, der zurückgegeben wird. Aufrufen tu ich die Prozedur folgendermaßen:

Delphi-Quellcode:
var X: array of integer;

(...)

procedure TForm1.Button1.Click(Sender:TObject);
begin
Primfaktoren(132,X);
end;

(...)

end.

//EDIT1: Es sollte SetLength(Faktoren,0); heißen, voher stand statt 0 ein i!
  Mit Zitat antworten Zitat