Thema: Delphi Arrays sortieren

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Arrays sortieren

  Alt 6. Okt 2005, 22:01
Hallo Chippie,

herzlich willkommen in der Delphi-PRAXiS.

Vielleicht kannst du ja deinen Quelltext noch in die Delphi-Code tags einwickeln - sonst tun einem die Augen so weh.

Wenn du die Werte in einer Schleife entgegen nimmst, dann kannst du die Sortierung über einen insertion sort realisieren - jeder andere Sortier-Algorithmus ist aber auch okay. Ich würde mir eine Klasse zur Verwaltung der Messwerte schaffen:

Delphi-Quellcode:
unit DblList;

interface

type
  TDoubleList = class
  private
    FValues: array of double;
    FSum: double;
    function GetValue(index: integer): double;
  public
    procedure Add(value: double);
    function Count: cardinal;
    procedure Empty;
    property Sum: double read FSum;
    property Value[index: integer]: double read GetValue;
  end;

implementation

procedure TDoubleList.Add(value: double);
var
  i: integer;
begin
  SetLength(FValues, Succ(Length(FValues)));
  i := High(FValues);
  repeat
    Dec(i);
    if (i < 0) or (FValues[i] <= value) then
    begin
      FValues[Succ(i)] := value;
      Break;
    end else FValues[Succ(i)] := FValues[i];
  until false;
  FSum := FSum + value;
end;

// hier fehlt noch ein wenig
// aber das schaffst du bestimmt alleine
Das Einlesen der Messwerte könnte dann so aussehen:

Delphi-Quellcode:
uses
  QDialogs;

procedure TMainForm.InputButtonClick(Sender: TObject);
var
  dValue: double;
begin
  dValue := 0;
  repeat
    if not InputQuery('Messwert eingeben', 'Wert', dValue)
    or (dValue = 0) then
      Break;
    DoubleList.Add(dValue);
  until false;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat