Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListBox Zahlen addieren und dann durch Count teilen (https://www.delphipraxis.net/41123-listbox-zahlen-addieren-und-dann-durch-count-teilen.html)

Toenn 26. Feb 2005 13:37


ListBox Zahlen addieren und dann durch Count teilen
 
Hi,
wie kann ich alle Zahlen einer ListBox addieren und dann durch ListBox1.Count teilen?


Danke,
tuenn

PS: Is dringend ^^

Dani 26. Feb 2005 13:42

Re: ListBox Zahlen addieren und dann durch Count teilen
 
Hi. Strings kannst du mit Delphi-Referenz durchsuchenStrToInt bzw. Delphi-Referenz durchsuchenStrToIntDef in Integers umwandeln. Zum teilen kannst du entweder div oder trunc(Summe / Count) benutzen.

Toenn 26. Feb 2005 13:50

Re: ListBox Zahlen addieren und dann durch Count teilen
 
hmm was is daran falsch:

Delphi-Quellcode:
var i, arsch: Integer;
begin
for i := 1 to ListBox1.ItemIndex do
 arsch := arsch+StrToInt(ListBox1.Items[ListBox1.ItemIndex]);
???

Danke,
toenn

Elite 26. Feb 2005 13:54

Re: ListBox Zahlen addieren und dann durch Count teilen
 
ka, mach`s so:
Delphi-Quellcode:
var
 i, average: integer;
begin
 average := 0;
 for i := 0 to ListBox1.Items.Count-1 do
  average := average + strtoint(ListBox1.Items[i]);
 average := average div Listbox1.Items.Count;
end;
Edit: Bug gefunden: Schaut mal auf das Profil von Toenn, links neben seinem Post. Fällt euch was auf?

Muetze1 26. Feb 2005 13:59

Re: ListBox Zahlen addieren und dann durch Count teilen
 
Moin!

ItemIndex gibt die Eintragsnummer an die gerade selektiert ist (wenn MultiSelect aus ist) oder -1, daher ist die Schleife so falsch.

Durch debuggen hättest du auch sehen können, das dein ItemIndex wahrscheinlich mehr als zu klein wäre um mit der Schleife über alle Items zu laufen.

Auch versuchst du über eine Schleife alle Einträge anzusprechen, benutzt dazu aber in der Schleife ItemIndex - ohne das du ihn irgendwo in der Schleife änderst. Daher nimmt er immer den selben Eintrag.

Deine Variable "Arsch" müsstest du vor der Schleife auf 0 setzen, da es eine lokale Variable ist und diese hat beim Eintritt in die Procedure zufällige Werte und das kann dein Ergebnis verfälschen.

Als Tipps:
Delphi-Quellcode:
ListBox1.Items.Count
Items[i]
MfG
Muetze1

Binärbaum 26. Feb 2005 15:25

Re: ListBox Zahlen addieren und dann durch Count teilen
 
Zitat:

Zitat von Elite
Edit: Bug gefunden: Schaut mal auf das Profil von Toenn, links neben seinem Post. Fällt euch was auf?

[OT]
Das ist kein Bug. Wenn man mal genauer im Profil von Toenn nachschaut, steht dort folgendes als Wohnort:
Düsseldorf Beiträge: 10000
Durch den automatischen Zeilenumbruch rutscht alles nach Düsseldorf in eine neue Zeile und es sieht so aus, als ob der Benutzer 10000 Beiträge hat.
[/OT]

4toms 26. Feb 2005 15:43

Re: ListBox Zahlen addieren und dann durch Count teilen
 
Hausaufgabe abgeschrieben / nicht selbst erstellt.

Setzen, schämen, sechs!

Toenn 26. Feb 2005 21:59

Re: ListBox Zahlen addieren und dann durch Count teilen
 
Hi,
das:
Delphi-Quellcode:
var i, arsch: Integer;
begin
arsch := 0;
for i := 1 to ListBox1.ItemIndex do
arsch := arsch+StrToInt(ListBox1.Items[ListBox1.ItemIndex]);
ShowMessage(IntToStr(ListBox1.Count));
geht. Jedoch kommt raus: 3 stat 3,3333333333.
Wie kann ich die Nachkommastellen anzeigen?

Danke,
Toenn

Muetze1 27. Feb 2005 03:26

Re: ListBox Zahlen addieren und dann durch Count teilen
 
Moin!

Was machst du mit der Variablen Arsch? Hochzählen und dann einfach nicht mehr nutzen? Wie willst du denn den Durchschnitt berechnen wenn du Arsch nicht verwendest?

Wenn du einfach mal einen Blick in die Hilfe geworfen hättest, dann hättest du rausgefunden das dir Count die Anzahl der Einträge in der ListBox angibt und das sind bei dir anscheinend 3 Einträge - somit ist alles korrekt was das Programm ausgibt. Die ListBox enthält keine 3,33333 Einträge - wie sähe denn ein 1/3 Eintrag aus?

Also da helfen dir auch keine Ausgabe von Kommastellen - weil da gibt es einfach keine Kommastellen...

MfG
Muetze1

Toenn 27. Feb 2005 14:01

Re: ListBox Zahlen addieren und dann durch Count teilen
 
Doch das geht. Du verstehst scheinbar nicht was ich machen will :)
Der soll den Durchschnitt berechnen. Alle Zahlen adieren und dann durch ListBox1.Count teilen :).
Die Variable Arsch wird später als ShowMessage rausgeworfen :D
Und 2+3+5 sind 10 und das durch 3 is 3,3333333.

Danke,
Toenn


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr.
Seite 1 von 2  1 2      

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