Hilfe bei Listbox Daten auslesen

  • VB6

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von mxDanger.

    Hilfe bei Listbox Daten auslesen

    [Wir benutzen Visual Basic 6 || ]

    Hallo Leute,

    wir haben im Informatik Unterricht eine Aufgabe bekommen:

    Wir sollen eine Listbox mit Werten füllen und diese auch wieder löschen können. Danach sollen wir mit Hilfe einer geeigneten Schleife und Verzweigung den kleinsten, größten und den durchschnittlichen Wert einer Anzahl von Zahlenwerten aus einer Listbox bestimmen und anzeigen können.

    Ich bräuchte jetzt noch Unterstützung, wie man den kleinsten, größten und den durchschnittlichen Wert ausgeben kann.


    Mein Quellcode:

    Visual Basic-Quellcode

    1. Dim DblMesswerte As Double
    2. Private Sub cmdclear_Click()
    3. LstMesswerte.Clear
    4. End Sub
    5. Private Sub cmdAdd_Click()
    6. DblMesswerte = Val(TxtMesswerte.Text)
    7. LstMesswerte.AddItem DblMesswerte
    8. End Sub
    9. Private Sub cmdDelete_Click()
    10. LstMesswerte.RemoveItem (LstMesswerte.ListIndex)
    11. End Sub


    Ich hoffe Ihr könnt mir helfen ! :D
    Also den größten und kleinsten Wert kann man mit Vergleichen bekommen..
    ​..also man erstellt sich eine Variable z.B. "kleinsterWert" und durchläuft in einer Schleife die gesamten Werte und überprüft ob der jeweilige Wert kleiner ist als der "kleinsteWert"!
    Wenn dieser kleiner ist "kleinsterWert" diesen Wert zuweisen..und mitm größten Wert eben anders herum! ;)

    ​Hmm und beim mittelwert weiß ich nich genau..vllt. alle Werte miteinander addieren und durch die Anzahl der Werte teilen und wer diesem Wert am nächsten kommt ist der Mittelwert!
    Die Lösung ist wohl zu nahe liegend: Der allererste Wert in der Liste. Kommen später kleinere bzw. größere Werte, wird die entsprechende Variable ja mit korrektem Code abgeändert. Logische Schlussfolgerung: Ist der Wert der entsprechenden Variable am Ende unverändert, war der erste Eintrag wohl ein Extremwert. Ein Beispiel. In der Liste steht:
    3
    2
    5
    7
    5
    Du nimmst den ersten Wert als Wert für kleinster_Wert und für größter_Wert. Dann vergleichst Du den 2. Eintrag mit den Werten der beiden Variablen und änderst die ggf. ab (=> größter_Wert bleibt bei 3, kleinster_Wert wird zu 2); 3. Eintrag anschauen, wieder vergleichen, usw.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Visual Basic-Quellcode

    1. Dim IntMesswerte As Integer
    2. Dim IntHigh As Integer
    3. Dim IntLow As Integer
    4. Dim IntAverage As Integer
    5. Dim IntCounter As Integer
    6. Dim i As Integer
    7. Private Sub cmdclear_Click()
    8. LstMesswerte.Clear
    9. End Sub
    10. Private Sub cmdAdd_Click()
    11. IntMesswerte = Val(TxtMesswerte.Text)
    12. LstMesswerte.AddItem (IntMesswerte)
    13. End Sub
    14. Private Sub cmdDelete_Click()
    15. LstMesswerte.RemoveItem (LstMesswerte.ListIndex)
    16. End Sub
    17. Private Sub cmdHigh_Click()
    18. IntCounter = LstMesswerte.ListCount
    19. IntHigh = Val(LstMesswerte.List(0))
    20. For i = 1 To IntCounter - 1
    21. If Val(LstMesswerte.List(i)) > IntHigh Then
    22. IntHigh = Val(LstMesswerte.List(i))
    23. Else
    24. End If
    25. Next i
    26. LblHigh.Caption = IntHigh
    27. End Sub
    28. Private Sub cmdLow_Click()
    29. IntCounter = LstMesswerte.ListCount
    30. IntLow = Val(LstMesswerte.List(0))
    31. For i = 1 To IntCounter - 1
    32. If Val(LstMesswerte.List(i)) < IntLow Then
    33. IntLow = Val(LstMesswerte.List(i))
    34. Else
    35. End If
    36. Next i
    37. LblLow.Caption = IntLow
    38. End Sub


    Bin mit Hilfe jetzt zu diesem Ergebnis gekommen und es klappt auch, aber beim Durchschnitt herrscht bei mir noch Verwirrung.
    Dann probier doch erstmal, den ersten Teil von morrisons Vorschlag umzusetzen:

    Morrison schrieb:

    alle Werte miteinander addieren und durch die Anzahl der Werte teilen
    Wie würde der Code dazu lauten können?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Habe es geschafft :D

    Visual Basic-Quellcode

    1. ​Private Sub cmdAverage_Click()
    2. If LstMesswerte.ListCount > 0 Then
    3. For i = 0 To LstMesswerte.ListCount - 1
    4. IntSumme = IntSumme + LstMesswerte.List(i)
    5. Next
    6. IntAverage = IntSumme / i
    7. Else
    8. End If
    9. LblAverage.Caption = IntAverage
    10. End Sub