AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi ListBox Zahlen addieren und dann durch Count teilen
Thema durchsuchen
Ansicht
Themen-Optionen

ListBox Zahlen addieren und dann durch Count teilen

Ein Thema von Toenn · begonnen am 26. Feb 2005 · letzter Beitrag vom 27. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
Toenn

Registriert seit: 4. Okt 2003
Ort: Düsseldorf Beiträge: 10000
114 Beiträge
 
#1

ListBox Zahlen addieren und dann durch Count teilen

  Alt 26. Feb 2005, 14:37
Hi,
wie kann ich alle Zahlen einer ListBox addieren und dann durch ListBox1.Count teilen?


Danke,
tuenn

PS: Is dringend ^^
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: ListBox Zahlen addieren und dann durch Count teilen

  Alt 26. Feb 2005, 14:42
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.
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Toenn

Registriert seit: 4. Okt 2003
Ort: Düsseldorf Beiträge: 10000
114 Beiträge
 
#3

Re: ListBox Zahlen addieren und dann durch Count teilen

  Alt 26. Feb 2005, 14:50
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
  Mit Zitat antworten Zitat
Elite
(Gast)

n/a Beiträge
 
#4

Re: ListBox Zahlen addieren und dann durch Count teilen

  Alt 26. Feb 2005, 14:54
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?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: ListBox Zahlen addieren und dann durch Count teilen

  Alt 26. Feb 2005, 14:59
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
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: ListBox Zahlen addieren und dann durch Count teilen

  Alt 26. Feb 2005, 16:25
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]
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
4toms
(Gast)

n/a Beiträge
 
#7

Re: ListBox Zahlen addieren und dann durch Count teilen

  Alt 26. Feb 2005, 16:43
Hausaufgabe abgeschrieben / nicht selbst erstellt.

Setzen, schämen, sechs!
  Mit Zitat antworten Zitat
Toenn

Registriert seit: 4. Okt 2003
Ort: Düsseldorf Beiträge: 10000
114 Beiträge
 
#8

Re: ListBox Zahlen addieren und dann durch Count teilen

  Alt 26. Feb 2005, 22:59
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
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: ListBox Zahlen addieren und dann durch Count teilen

  Alt 27. Feb 2005, 04:26
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
  Mit Zitat antworten Zitat
Toenn

Registriert seit: 4. Okt 2003
Ort: Düsseldorf Beiträge: 10000
114 Beiträge
 
#10

Re: ListBox Zahlen addieren und dann durch Count teilen

  Alt 27. Feb 2005, 15:01
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
Und 2+3+5 sind 10 und das durch 3 is 3,3333333.

Danke,
Toenn
  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 13:31 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