![]() |
schleife für Rechenaufgabe...
Hi Leute,
ich habe ein Problem. Ich weis nicht wie ich eine Schleife erstellen soll, die aus einem unsichtbaren Memo mit immer wieder neu dazukommenden €-Beträgen die Summe ausrechnet. Habe echt keine Ahnung. Wäre lieb, wenn der Code gepostet werden könnte, bitte, wenn möglich, mit Erklärung. vielen Dank |
Re: schleife für Rechenaufgabe...
Moin !
Ich würd die zahlen lieber in einen dynamischen array speichern da ist's einfacher die Summe auszurechen! |
Re: schleife für Rechenaufgabe...
Ja, tut mri leid, davon habe ich noch weniger Ahnung. Könntest du mri das mal erklären?
Wäre nett |
Re: schleife für Rechenaufgabe...
Meinst du einfach ein Memofeld und addieren der Zahlen?
Wenn ja, schau nach wieviele Zeilen das ganze hat (mit zb. MMein.Lines.Count), und mach eine Schleife von i:= 1, bis zu dieser Anzahl. Dann Speicherst du dem Feld die einzelnen Werte zu, und addierst diese anschließend zur Summe die du zu Beginn auf 0 gesetzt hast. Wenn weitere hinzukommen, schaust du wieder nach wieviel vorher da waren, rechnest vom vorigen und diesem die Differenz, und vom vorigen+1 bis zum vorigen+Differenz addierst du wieder hinzu. Ich hoffe mal das ist nicht etwas zu kompliziert für was einfaches... :shock: |
Re: schleife für Rechenaufgabe...
jep :
Delphi-Quellcode:
is jetzt nich getested , aber müsste funzen
type Tintarray = array of integer;
var zahlen : Tintarray; //global //im code um ne zahl zum array hinzuzufügen ... setlength(zahlen,high(zahlen)+2); zahlen[high(zahlen)) := x //x ist die zahl deiner wahl ... //funtion um die summe zu errechnen function getsum(intarray : Tintarray):integer; var i :integer; begin for i := 0 to high(intarray) do result := result + intarray[i]; end; //funtion aufrufen im code ... summe := getsum(zahlen); ... |
Re: schleife für Rechenaufgabe...
Hi, danke für die Antwort...
muss ich das in TForm4.Create schreiben oder muss nur das Arrey und die Function unter implementation und der aufruf ins Create? Wenn ihr mir das noch sagen könntet... |
Re: schleife für Rechenaufgabe...
Machs einfach so:
Delphi-Quellcode:
Spider
var
a, b, c, d, z1, z2, er: Extended; begin Z1 := strtofloat(Edit1.text); Z2 := strtofloat(Edit2.text); Z1 := a + b; //oder auch +-*/ Z2 := Z1+ c; //oder auch +-*/ er := Z2+ d; //oder auch +-*/ Panel1.caption := floattostr (er); end; |
Re: schleife für Rechenaufgabe...
Hier sorry, das geht net, ich nehme die Beträge aus einem Memo-feld...
|
Re: schleife für Rechenaufgabe...
Ich hoffe, ich habe dich nicht falsch verstanden. ;)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; Ergebnis: extended; begin Ergebnis:=0; for i:=0 to Memo1.Lines.Count-1 do begin Ergebnis:=Ergebnis+StrToFloat(Memo1.Lines[i]); end; Label1.Caption:=FloatToStr(Ergebnis); end; |
Re: schleife für Rechenaufgabe...
Hey Matze,
danke, deinen Code habe ich verstanden und angewandt. Nur ein Fehler ist drin: Momentan sieht's so aus:
Delphi-Quellcode:
So. er rechnet und gibt alles gut aus - Solange keine Kommazahlen im Spiel sind.
var i1: integer; Ergebnis2: extended;
begin Ergebnis2:=0; for i1:=0 to Memo3.Lines.Count-1 do begin Ergebnis2:=Ergebnis2+StrToFloat(Memo3.Lines[i1]); end; Edit42.text:=FloatToStr(Ergebnis2); . . . Ich gebe ein: 200+200+200+200. Es kommt raus 800. Ich gebe ein: 200+200+200+200+1549,33+1000,12 Es kommt raus: 3354,4 Es müsste 3349,45 rauskommen. D.H, der Pc addiert die zweite zahl nach dem Komma vor die Kommastelle und verfälscht das ergebnis. Warum? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz