AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Summe Bilden aus einer Bestimmten Array

Ein Thema von Hallo_Thomas · begonnen am 8. Jun 2005 · letzter Beitrag vom 9. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

Summe Bilden aus einer Bestimmten Array

  Alt 8. Jun 2005, 23:46
Und Zwar folgendes


x:=y+z+h+D[1..255]

Wie schreibe ich das richtig?

Damit auch die D[1..255]addiert werden?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Summe Bilden aus einer Bestimmten Array

  Alt 8. Jun 2005, 23:56
Hallo Thomas,

lauf mit einer Schleife durch das Array und zaehle alle Felder zusammen:

Delphi-Quellcode:
Sum := 0;
for i := Low(ar) to High(ar) do
  Sum := Sum+ar[i];
Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Summe Bilden aus einer Bestimmten Array

  Alt 9. Jun 2005, 00:26
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?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Summe Bilden aus einer Bestimmten Array

  Alt 9. Jun 2005, 00:56
Dann schreibs dir doch einfach, z.B. so:

Delphi-Quellcode:
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;
Greetz
alcaeus

PS: Die ganzen (5 insg.) Fehler im Quelltext sind dazu da, dass du dich auch damit befasst

[edit]Kleine Hinweise vom [user=Robert_G]"G"[/user] eingearbeitet[/edit]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#5

Re: Summe Bilden aus einer Bestimmten Array

  Alt 9. Jun 2005, 05:37
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:
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;
Rainer
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Summe Bilden aus einer Bestimmten Array

  Alt 9. Jun 2005, 10:08
@ 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)
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Summe Bilden aus einer Bestimmten Array

  Alt 9. Jun 2005, 10:18
@ 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
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Summe Bilden aus einer Bestimmten Array

  Alt 9. Jun 2005, 10:23
Hallo Thomas,

Zitat von Hallo_Thomas:
@ 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)
naja, anstatt Summe(A1:A255) zu schreiben wuerdest du bei diesem Beispiel
Delphi-Quellcode:
Summe1:=Werte[1..255] +....
Summe2:=Werte[10..100]+.....
einfach
Delphi-Quellcode:
Summe1 := Array_Sum(Werte, 1, 255);
Summe2 := Array_Sum(Werte, 10, 100);
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.
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#9

Re: Summe Bilden aus einer Bestimmten Array

  Alt 9. Jun 2005, 11:08
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
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#10

Re: Summe Bilden aus einer Bestimmten Array

  Alt 9. Jun 2005, 12:41
Perfekt, ich habs noch nicht probiert, aber das sieht glaub genau so aus wie ichs mir vorgestellt hab. Danke!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz