![]() |
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 ^^ |
Re: ListBox Zahlen addieren und dann durch Count teilen
Hi. Strings kannst du mit
![]() ![]() |
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 |
Re: ListBox Zahlen addieren und dann durch Count teilen
ka, mach`s so:
Delphi-Quellcode:
Edit: Bug gefunden: Schaut mal auf das Profil von Toenn, links neben seinem Post. Fällt euch was auf?
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; |
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 ![]() 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:
MfG
ListBox1.Items.Count
Items[i] Muetze1 |
Re: ListBox Zahlen addieren und dann durch Count teilen
Zitat:
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] |
Re: ListBox Zahlen addieren und dann durch Count teilen
Hausaufgabe abgeschrieben / nicht selbst erstellt.
Setzen, schämen, sechs! |
Re: ListBox Zahlen addieren und dann durch Count teilen
Hi,
das:
Delphi-Quellcode:
geht. Jedoch kommt raus: 3 stat 3,3333333333.
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)); Wie kann ich die Nachkommastellen anzeigen? Danke, Toenn |
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 |
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 |
Re: ListBox Zahlen addieren und dann durch Count teilen
Moin!
Zitat:
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
Wo sollte denn da irgendwelche Kommastellen herkommen?
ShowMessage(IntToStr(ListBox1.Count));
Und um nochmals auf deinen Quellcode zurück zu kommen, welcher so aussah:
Delphi-Quellcode:
Dann machst du folgendes:
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)); - setze Variable Arsch auf 0 - Zähle die Variable i von 1 bis zum Index der aktuell ausgewählten Zeile in ListBox - mit jedem Durchlauf erhöhe die Variable Arsch um den Wert der Zahl in der ausgewählten Zeile - Zeige die Anzahl der Zeilen in der ListBox in einer MessageBox an. Dann frage ich mich doch: wo ist bei dem Quellcode auch nur Ansatzweise irgendwas in Richtung deiner Aufgabenstellung zu sehen? Ich hatte dich vorhin schon auf folgendes hingewiesen: ListBox1.ItemIndex = Index des aktuell ausgewählten Eintrags oder -1 wenn keiner ausgewählt ist i = Schleifenvariable und wird von 1 aufwärts gezählt - also müsstest du doch i verwenden um jede einzelne Zeile der ListBox anzusprechen und den entsprechenden Wert zu Arsch dazu zu addieren. Und zu guter letzt: du teilst noch nirgendwo den Inhalt der Variablen Arsch durch die Anzahl der Zeilen in der ListBox. Ich werde und will dir keinen fertigen Quellcode zu der Aufgabe geben, sonst lernst du nix - und ich hoffe auch das du mich jetzt mal verstehst .... :wink: MfG Muetze1 |
Re: ListBox Zahlen addieren und dann durch Count teilen
hallo,
ausserdem kann nie 3,33333 rauskommen da der 'arsch' ne integer zahl ist :mrgreen: raik |
Re: ListBox Zahlen addieren und dann durch Count teilen
@Alle
ich verstehe nicht, wie man sich soviel Mühe mit jemandem geben kann, der zu faul ist, seine Hausaufgaben selbst zu machen und Null Bock hat, sich mit dem gestellten Thema auch nur ansatzweise zu beschäftigen. Roderich |
Re: ListBox Zahlen addieren und dann durch Count teilen
Moin!
Zitat:
MfG Muetze1 |
Re: ListBox Zahlen addieren und dann durch Count teilen
Delphi-Quellcode:
Das sollte klappen oder nicht?
var i:Integer;
var av:Real; begin av:=0; for i:=0 to Listbox1.items.count-1 do av:=av+StrToFloat(Listbox1.Items.Strings[i]); av:=av/listbox1.Items.count; showmessage(FloatToStr(av)); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:53 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