Delphi-PRAXiS
Seite 2 von 2     12   

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)

Muetze1 27. Feb 2005 16:04

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

Zitat:

Zitat von Toenn
Doch das geht. Du verstehst scheinbar nicht was ich machen will :)

Doch, alles verstanden - aber du scheinst nicht zu lesen was ich schreibe, oder?

Zitat:

Zitat von Toenn
Der soll den Durchschnitt berechnen. Alle Zahlen adieren und dann durch ListBox1.Count teilen :).

Ja, war mir schon seit deinem ersten Post klar.

Zitat:

Zitat von Toenn
Die Variable Arsch wird später als ShowMessage rausgeworfen :D

ok, im Moment machst du mit ShowMessage noch nix mit Arsch - aber ok, belassen wir es mal dabei.

Zitat:

Zitat von Toenn
Und 2+3+5 sind 10 und das durch 3 is 3,3333333.

Auch richtig - und bei deinem vorherigen Post "beschwerst" du dich, das er dir eine 3 ausgibst anstatt 3,33333 - und darauf hin sagte ich dir, das du schliesslich die Anzahl der Zeilen in der ListBox ausgibst - und wenn da eine 2, eine 3 und eine 5 in jeweils einer Zeile steht, dann sind das 3 Zeilen - und die Anzahl der Zeilen gibst du mit deinem Code aus, genau dort:
Delphi-Quellcode:
ShowMessage(IntToStr(ListBox1.Count));
Wo sollte denn da irgendwelche Kommastellen herkommen?

Und um nochmals auf deinen Quellcode zurück zu kommen, welcher so aussah:
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));
Dann machst du folgendes:

- 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

kiar 27. Feb 2005 16:08

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

roderich 27. Feb 2005 16:16

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

Muetze1 27. Feb 2005 16:39

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

Zitat:

Zitat von kiar
ausserdem kann nie 3,33333 rauskommen da der 'arsch' ne integer zahl ist :mrgreen:

Es ist nicht gesagt, dass das Ergebnis der Division wieder "Arsch" zugewiesen wird. Man kann direkt teilen und das Ergebnis ohne Variable gliech als Argument weitergeben.

MfG
Muetze1

killerkarl 27. Feb 2005 17:20

Re: ListBox Zahlen addieren und dann durch Count teilen
 
Delphi-Quellcode:
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;
Das sollte klappen oder nicht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:15 Uhr.
Seite 2 von 2     12   

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