AGB  ·  Datenschutz  ·  Impressum  







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

Mit Arrays rechnen

Ein Thema von Mysterio08 · begonnen am 5. Mär 2009 · letzter Beitrag vom 21. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#1

Mit Arrays rechnen

  Alt 5. Mär 2009, 15:58
Guten Tag,
folgende Situation:
Ich möchte, dass man in ein StringGrid Umsätze von einem ganzen Jahr eingeben kann (Januar, Februar...bis Dezember). Dafür habe ich folgende Zeilen geschrieben:
Delphi-Quellcode:
procedure TForm1.Button_BerechnenClick(Sender: TObject);
var
  Umsatz: Array [1..12] of Single;
begin
  for i := 1 to 12 do
    Umsatz[i] := StrToFloat (StringGrid1.Cells[1,i]);
end
Nun möchte ich, dass der Jahresumsatz errechnet wird. Klar, ich könnte mir das ganze viel einfacher machen und direkt mit den StringGrid-Zellen rechnen, das möchte ich aber nicht.
Wenn ich dann alle Umsätze zugewiesen habe-wie rechne ich dann?
Gesamtumsatz := Umsatz[1] + Umsatz[2]..... + Umsatz[12] Ich glaube da, würde ich mich dumm und dämlich schreiben, und es soll ja Fälle geben, in denen vielleicht tausende Arrays zusammengerechnet werden, ich habe schon bei Delphi-Treff.de geschaut, aber da habe ich nichts Brauchbares gefunden.
Danke schonmal im Vorraus.
mfg. Mysterio08
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Mit Arrays rechnen

  Alt 5. Mär 2009, 16:11
Wie wäre es so?
Delphi-Quellcode:
var
  MySum: Double;
  i: Integer;
begin
  MySum := 0;
  for i := Low(Umsatz) to High(Umsatz) do
    MySum := MySum + Umsatz[i]
// EDIT:
Und mit SetLength und dynamischen Arrays wärst du wohl auch besser bedient.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#3

Re: Mit Arrays rechnen

  Alt 5. Mär 2009, 16:21
Nur ich habe mich weder mit dynamischen Arrays beschäftigt, noch mit SetLength. Ich weiß nur, dass man damit Positionen von Strings herausfinden kann, aber das man das auch zum Rechnen nehmen kann, habe ich nicht gewusst.
Könntest du mir das vielleicht mal so posten, würde mich mal interessieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#4

Re: Mit Arrays rechnen

  Alt 5. Mär 2009, 16:39
Zitat von Mysterio08:
Nur ich habe mich weder mit dynamischen Arrays beschäftigt, noch mit SetLength. Ich weiß nur, dass man damit Positionen von Strings herausfinden kann, aber das man das auch zum Rechnen nehmen kann, habe ich nicht gewusst.
mit SetLength kann man die Position eines Strings finden?
ließ am Besten nochmal in deiner Delphi-Hilfe nach, was das wirklich macht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#5

Re: Mit Arrays rechnen

  Alt 5. Mär 2009, 16:46
OMG, na klar, du hast Recht. Ich habe SetLength mit Length verwechselt.....
Aber ich habe noch eine andere Möglichkeit - eine wie ich finde eine viel einfachere - gefunden:
Delphi-Quellcode:
  for i := 1 to 12 do
    Gesamtumsatz := Gesamtumsatz + Umsatz[i]
Nur eine Sache ist jetzt noch offen: In meinem StringGrid soll der Nutzer die Umsätze direkt eingeben - die Eigenschaft goEditing in den Options habe ich auf True gesetzt. Nur kann der Nutzer nun auch Zahlen in den prozentualen Anteilen "verfälschen", das gefällt mir gar nicht.
Gibt es die Möglichkeit, nur einzelne Zellen anzusprechen und nicht gleich das ganze StringGrid?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Mit Arrays rechnen

  Alt 5. Mär 2009, 17:39
Einfach die Eingabe überwachen.
Markus Kinzler
  Mit Zitat antworten Zitat
Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#7

Re: Mit Arrays rechnen

  Alt 5. Mär 2009, 17:48
Zitat von mkinzler:
Einfach die Eingabe überwachen.
Und wie genau kann ich das machen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Mit Arrays rechnen

  Alt 5. Mär 2009, 17:51
Z.B. im KeyDown- oder KeyPress-Event
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Mit Arrays rechnen

  Alt 5. Mär 2009, 19:09
Zitat von Mysterio08:
Aber ich habe noch eine andere Möglichkeit - eine wie ich finde eine viel einfachere - gefunden:
Delphi-Quellcode:
  for i := 1 to 12 do
    Gesamtumsatz := Gesamtumsatz + Umsatz[i]
Genau das habe ich doch geschrieben, um aber nicht bei einer Änderung der Anzahl von Werten im Array überall das 1 to 12 ändern zu müssen, solltest du die saubere Variante benutzen, die ich geschrieben habe. Die schaut ja automatisch wie groß das Array ist, ist also deutlich einfacher.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Mit Arrays rechnen

  Alt 5. Mär 2009, 19:12
Oder man nimmt gleich math.Sum()
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 19:21 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