Einzelnen Beitrag anzeigen

mitchel

Registriert seit: 30. Jul 2007
12 Beiträge
 
#1

ständiger Fehler bei einem Array

  Alt 21. Aug 2007, 08:31
Hi,
habe folgenden Code:
Delphi-Quellcode:
procedure TForm1.Button20Click(Sender: TObject);
var
  Grenz, i: Integer;
  fl: double;
  fn: double;
  NormValue: double;
  s: string;
  Summe: double;
  Hilfsarray : array[0..32768] of double;
  s2: string;

begin
  UmrFaktorFFT := tA/Zoombereich; //ta = 10000
  Str(UmrFaktorFFT:2:2,s2);
  form1.label26.caption := s2;
  if Zoombereich < 2100 then
    begin
      form1.panel5.caption := ('nicht def');
      showmessage('Zoombreich kleiner 2100 ms gewählt!' +#13+
                  'Keine Berechnung bis 20Hz möglich!');
    end
    else
    begin
      fl := UmrFaktorFFT;
      Grenz := trunc(Zoombereich / UmrFaktorFFT);
      fn := StrToInt(form1.Edit1.Text) - (2*fl);

      if form1.ComboBox2.ItemIndex = 0 then //Kanal 1 -> Kanal 2
      begin
       Summe := 0;
       for i := 2 to Grenz-1 do
       begin
         Hilfsarray[i] := abs(1-(DATAFFTai0[i] / DATAFFTai1[i]))*fl; //Hier kommt Fehler
         Summe := Summe + Hilfsarray[i];
       end;
       NormValue := 0;
       for i:= 2 to Grenz do
       NormValue := Summe * (1-(1/fn))*100;
       Str(NormValue:2:2,s);
       form1.panel5.caption := s + ' %';
      end;
    end;
end;
Es soll ein Vergleich zwischen 2 Kurven sattfinden (DATAFFTai1 und DATAFFTai0). Bei einem kleinen Zoombereich funktioniert das auch ganz gut, jedoch kommt bei größeren Werten immer die Fehlermeldung "ungültiger Gleitkommaüberlauf". Ist für mich unverständlich, da das Hilfsarray nur so um die 50 Werte beinhaltet....

Hat jemand einen Tipp, wo mein Denkfehler ist???
  Mit Zitat antworten Zitat