![]() |
Summe Bilden aus einer Bestimmten Array
Und Zwar folgendes
Delphi-Quellcode:
x:=y+z+h+D[1..255]
Wie schreibe ich das richtig? Damit auch die D[1..255]addiert werden? |
Re: Summe Bilden aus einer Bestimmten Array
Hallo Thomas,
lauf mit einer Schleife durch das Array und zaehle alle Felder zusammen:
Delphi-Quellcode:
Greetz
Sum := 0;
for i := Low(ar) to High(ar) do Sum := Sum+ar[i]; alcaeus |
Re: Summe Bilden aus einer Bestimmten Array
Ich hatte auch schon an so was ähnliches gedacht mein Hauptproblem ist dabei folgendes.
Summe1:=Werte[1..255] +.... Summe2:=Werte[10..100]+..... Es werden bei mir immer erschiedene Reihenfolgen von den Summanden benötigt.Gibt es da ne Möglichkeit die wie Sum(Werte[10..100]) alles, Irgendwie sowas? |
Re: Summe Bilden aus einer Bestimmten Array
Dann schreibs dir doch einfach, z.B. so:
Delphi-Quellcode:
Greetz
functoin Array_Sum(cost aArray: array of Integer; aStart, aEnd: Integer): Intger;
begin Result := 0 for i := aStart to aEnd do Result := Result + aArray[i]; end; alcaeus PS: Die ganzen (5 insg.) Fehler im Quelltext sind dazu da, dass du dich auch damit befasst :zwinker: [edit]Kleine Hinweise vom [user=Robert_G]"G"[/user] eingearbeitet[/edit] |
Re: Summe Bilden aus einer Bestimmten Array
Hallo,
es gibt eine Funktion in der Unit math, die das macht. function Sum(const Data: array of Double): Extended; Als kleines Beispiel:
Delphi-Quellcode:
Rainer
procedure TForm1.Button2Click(Sender: TObject);
var a:array[1..5] of double;b:double;s:string; begin a[1]:=3;a[2]:=-5;a[3]:=-13;a[4]:=45;a[5]:=3; b:=Sum(a); str(b,s); label2.caption:=s; end; |
Re: Summe Bilden aus einer Bestimmten Array
@ alcaeus Das sind ja beides Schleifen, da ich jetzt noch nicht weis was alles in Result:=...... herreinkommt und ich später da wohl nur noch schwer durchsehe, wollte ic es eher zusammenfassen, als es in ne schleife zu bringen.
So ähnlich wie bei Exel Summe(A1:A255) |
Re: Summe Bilden aus einer Bestimmten Array
@ Runger
Das kommt dem dem ganz nahe was ich mir Vorstelle. Hab hier aber wieder ein kleines Problem. (Ich habs noch nicht probiert aber wenn ich statt Double ,Integer nehme denke ich wirds keine Probleme geben.) b:=f+e+w+Sum(a1)+Sum(a2) c:=d+s+f+g+Sum(a3) D:= a1:= array 1..255 a2:= array 300..355 a3:= array 1..50 |
Re: Summe Bilden aus einer Bestimmten Array
Hallo Thomas,
Zitat:
Delphi-Quellcode:
einfach
Summe1:=Werte[1..255] +....
Summe2:=Werte[10..100]+.....
Delphi-Quellcode:
schreiben. Die Summe eines Arrays kannst du nur machen, indem du durch das Array gehst, und jedes Element zur Summe hinzuzaehlst. Und damit du die Schleife nicht jedesmal schreiben musst, wird es eben in eine Funktion gepackt. So einfach ist das.
Summe1 := Array_Sum(Werte, 1, 255);
Summe2 := Array_Sum(Werte, 10, 100); Wichtig: "Zusammenfassen" kannst du es nicht. Du kannst nur Teile, die oefters gebraucht werden, auslagern, wie ich es gemacht habe. Und was meinst du mit "da ich jetzt noch nicht weis was alles in Result:=......herreinkommt"? Du musst irgendwie wissen was reingeschrieben wird, sonst koenntest du auch nicht die Arraygrenzen so angeben wie du es im ersten Beitrag gemacht hast ;) Noch was: die Funktion die ich geschrieben habe unterscheidet sich nur geringfuegig (wenn wir mal die ASM-Optimierung weglassen) von der Sum-Funktion. Bei meiner Funktion hast du noch die Option, die Arraygrenzen anzugeben. Greetz alcaeus |
Re: Summe Bilden aus einer Bestimmten Array
Hallo,
ersetze sum durch sumint, dann gehts auch mit Integer. Wenn du mit variablen Grenzen arbeiten willst ist die Lösung von Alcaeus die erste Wahl. Rainer |
Re: Summe Bilden aus einer Bestimmten Array
Perfekt, ich habs noch nicht probiert, aber das sieht glaub genau so aus wie ichs mir vorgestellt hab. Danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 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