Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

AW: durchschnittszeit ermitteln

  Alt 11. Jun 2010, 14:56
Hier mal eine Klasse, die aufgrund der Formel aus Betrag#2 arbeitet.
Wenn man einen Durchschnitt berechnet, dann kommt als Datentyp eigentlich nur ein Fliesskommatyp in Frage.
Delphi-Quellcode:
type
  TDurchschnitt = class(TObject)
  private
    FAvg : Extended;
    FCount : Integer;
    function GetAverage: Extended;
    function GetCount: Integer;

  public
    procedure AddValue(value:Extended);
    procedure RemoveValue(value:Extended);
    procedure Clear;

    property Average:Extended read GetAverage;
    property Count:Integer read GetCount;
  end;

procedure TDurchschnitt.AddValue(value: Extended);
begin
   FAvg := (FAvg * FCount + Value)/(Count+1);
   Inc(FCount);
end;

procedure TDurchschnitt.RemoveValue(value: Extended);
begin
   if FCount > 1 then
   begin
      FAvg := (FAvg * FCount - Value)/(Count-1);
      Dec(FCount);
   end
   else
      Clear;
end;


procedure TDurchschnitt.Clear;
begin
   FAvg := 0.0;
   FCount := 0;
end;

function TDurchschnitt.GetAverage: Extended;
begin
   Result := FAvg;
end;

function TDurchschnitt.GetCount: Integer;
begin
   Result := FCount;
end;
Andreas

Geändert von shmia (11. Jun 2010 um 17:24 Uhr) Grund: kleine Änderung an TDurchschnitt
  Mit Zitat antworten Zitat