Einzelnen Beitrag anzeigen

Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#4

Re: Falsche Ausgabe bei Durchschnittsberechnung

  Alt 24. Jul 2007, 10:12
Als erstes solltest Du Dir mal eine ordentliche Formatierung einfallen lassen.
Als zewites sind die beiden einzigen ifs, bei denen ein Begin..end Block erforderlich ist ohne begin..end block.
Als drittes solltest Du nicht eine 1 nach string konvertieren und mit dem Text vergleichen, sondern den Text in ein Float und mit 1 vergleichen (bei Dir wird nämlich ein String-Vergleich durchgeführt und das willste sicher nicht)
Als viertes würde ich empfehlen, eben diesen Vergleich in eine weitere Funktion auszulagern, die ein Edit und eine Vergleichszahl übernimmt und einen boolean zurückgibt.
Als fünftes würde ich das Gefummel mit den Texten anders machen:
Delphi-Quellcode:
Function AddToAverage(_oEdit: TEdit, var _iCount: Integer, var _fAverage: Double): Boolean;
Var
  fValue: Double;
begin
  try
    fValue:=StrToFloat(_oEdit.Text);
  except
    fValue:=0;
  end;
  if (fValue>1)
  then begin
    inc(_iCount);
    _fAverage:=_fAverage+fValue;
    Result:=True
  end else Result:=False;
end;
Jetzt kannst Du die Funktion mit jedem Edit rufen und wenn der Wertt >1 dann wird die Anzahl um eins und der Gesamtwert um den Wert erhöht. Wenn Du mit allen durch bist, dann kannst Du mit Label72.Caption:=FloatToStr(fAverage/iCount)) bequem das Ergebnis ausgeben.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat