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