Einzelnen Beitrag anzeigen

Nugi89

Registriert seit: 27. Jan 2015
21 Beiträge
 
#1

Items eines List Objektes addieren

  Alt 20. Jul 2015, 15:06
Hallo,
habe folgendes Problem:
- ich habe mir ein Programm erstellt in dem ich einige werte in ein Memofeld übergebe. mein problem liegt darin das ich bestimmte werte nicht addieren kann bzw es wird mir ein relativ großer wert ausgegeben. ich habe mir die werte in einer Liste abgespeichert. nur das addieren funzt nicht so wie es sollte.
Hier mal der Quelltext:

Code:
TItem = class(TObject)
  public
    next: TItem;
    wert: real;
  end;

  TListe = class(TObject)
  private
    first: TItem;
    last: TItem;
  public
    gesamt: real;
    procedure add(wert: real);
    function addieren(gesamt: real):real;
    function count(): integer;
  end;

implementation

{ TListe }

procedure TListe.add(wert: real);   //Item hinzufügen
var Item: TItem;
begin
  Item:= TItem.Create;
  Item.wert:= wert;

  if first = Nil then
  begin
    first:= Item;
    last:= Item;
  end
  else
  begin
    last.next:= Item;
    last:= Item;
  end;
end;

function TListe.addieren(gesamt: real):real; //Items addieren
var
  i: integer;
  Item: TItem;
begin

  gesamt:= 0;
  i:= count;
 
  for i := 0 to count - 1 do
  begin
    gesamt:= gesamt + Item.wert; <--(Item.wert) hier wird mir dieser riesige wert übergeben
  end;

  Result:= gesamt;

 end;

function TListe.count: integer; //Zählen der Items
var
  i: integer;
  Item: TItem;
begin
  i:= 1;
  Item:= first;

  if first = Nil then
  begin
    i:= 0;
  end
  else
  begin
    while Item.next <> Nil do
    begin
      i:= i+1;
      Item:= Item.next;
    end
  end;

  result:= i;

end;

end.

ich hoffe es kann mir jemand helfen
  Mit Zitat antworten Zitat