Einzelnen Beitrag anzeigen

aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#1

Array zählt nicht hoch ?!

  Alt 31. Jul 2009, 08:14
Hallo,

Ich habe ein A_Array[i,0] und ein ValueArray[i*4,0] in das die TabWerte aus A_Array + erste neue Werte (min,max,sum.avr) gespeicher werden sollen. (abc := 0)

Folgender Code dazu:

Delphi-Quellcode:
procedure TMomFiles.WerteBerechnen;
var
    temp, Avr, Mini, Maxi : real;
begin
    if Zeile = 0 then //Erste Zeile als Default übernehmen
    begin
      ValueArray[abc, 0] := TabWert;
      ValueArray[abc+1,0] := TabWert;
      ValueArray[abc+2,0] := TabWert;
      ValueArray[abc+3,0] := (temp)/(Zeile+1);
      if abc < (Spaltenanzahl-1)*4 then abc := abc+4;
    end;

    if Zeile <> 0 then
    begin
    //Minimum
      if (TabWert < ValueArray[abc,0]) then
      ValueArray[abc,0] := TabWert;
    //Maximum
      if (TabWert > ValueArray[abc+1,0]) then
      ValueArray[abc+1,0] := TabWert;
    //Mittelwert
      ValueArray[abc+2,0] := (ValueArray[abc+2,0]+TabWert);
      ValueArray[abc+3,0] := ValueArray[abc+2,0]/(Zeile+1);
      if abc < (Spaltenanzahl-1)*4 then abc := abc+4;
    end;
end;
Minimum, Maximum ist klar und Mittelwert an sich auch. Das Problem ist nur, dass er in
ValueArray[abc+2,0] die Summe der entsprechenden Tabwerte speichern soll für die Mittelwertberechnung.
z.B. 1. Durchlauf: TabWert = 2 -> ValueArray[abc+2,0] = 2
2. Durchlauf: TabWert = 5 -> ValueArray[abc+2,0] = 7 usw.
Aber er schreibt immer nur den neuen Wert hinein, ohne die Summe zu bilden. Was läuft da schief?

EDIT : Ich glaube, es liegt an
Setlength(ValueArray,Spaltenanzahl*4,1); //4 Felder pro Spalte (Min,Max,Value,Avr) Ich habe dieses in der Schleife, wo die Spalten durchlaufen werden und dabei wird dann wohl auch immer das Array neu erstellt?!
Aber wo soll ich damit hin? Schließlich weiß ich doch erst an der Stelle, was 'Spaltenanzahl' ist .
  Mit Zitat antworten Zitat