![]() |
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!
|
Re: Summe Bilden aus einer Bestimmten Array
@alcaeus
Zitat:
Ich meinte damit,dass ich weis, das Summe1:=Werte[1..255]....... aber ich noch nicht weis wieviel ausserdem diese Summe bilden soll Summe1:=Werte[1..255]+ Werte[300..350] könnte dann mal so aussehen. Da ich das noch nicht geschrieben habe aber ich weis, das da noch irgendwann so was geplant ist, wollte ich ein einfache schnelle erweiterbare Möglichkeit. |
Re: Summe Bilden aus einer Bestimmten Array
Irgendwas mach ich noch verkehrt.
Bei mir erscheint: undefinierter Bezeichner "Array_Sum" |
Re: Summe Bilden aus einer Bestimmten Array
Was hast du denn vor? Wenn du die Version von alcaeus verwendest, musst du die Funktion auch einbauen.
Die andere Funktion heisst einfach nur "Sum" bzw. "Sumint". Beide befinden sich in der unit Math. *edit* :oops: hier stand nie jfheins. Leute, die evtl. anderes behaupten machen sich der Threadfälschung schuldig :tongue: ( Das kommt nur davon, weil dein neuer Avatar fast genau wie der von julius aussieht ) |
Re: Summe Bilden aus einer Bestimmten Array
Zitat:
@Thomas: Die Funktion musst du natuerlich uebernehmen, und auch die Fehler darin finden und beheben. Ganz so leicht soll es dann doch nicht sein ;) Greetz alcaeus |
Re: Summe Bilden aus einer Bestimmten Array
Nun ja, ich werd wohl brüten müssen, mal sehen was mir bis heut abend einfällt, in meinen grossen Delphi Büchlein steht nix und Array_Sum, und in der Delhi Hilfe hab ich dazu auch keine Hilfe gefunden.
Ich weis nur vom gefühl her muss deins das richtige sein, naja mmal sehen was ich noch finde. |
Re: Summe Bilden aus einer Bestimmten Array
Zu einer selbstgeschriebenen Funktion wirst du sicher keinen Eintrag in der Delphi-Hilfe finden :wink: .
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 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