Zahlen zählen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Zahlen zählen

    Folgende Situation:
    Zur Auswertung eines Fragebogens wird in die vier Felder "ja - nein - vielleicht - weiß nicht" die jeweilige Nummer der Frage eingetragen.
    Bei 10 Fragen könnte sich also folgendes Bild ergeben:
    Ja: 1,4,6,7
    Nein: 2,5,9
    vielleicht: 3,10
    weiß nicht: 8
    Wie kann ich am einfachsten überprüfen, ob alle Fragenummern eingegeben wurden, also keine fehlt und auch keine doppelt eingegeben wurde ?
    Meine erste Idee war, Anzahl der Fragenummern zählen und zum Prüfen die Quersumme bilden.
    Wie mache ich das am besten ? Oder hat jemand eine bessere Idee ?
    Viele Grüße
    if ja + nein + vielleicht = 42 then ...

    bei größeren Radiobutton oder Checkboxmatritzen, hab ich sonst so gelößt, dass ich jede einzelne Box aufs handle geschrieben habe, und dann über den Name + Variable das ganze ausgelesen hab um keine 2 Seiten Code zu erzeugen ^^:

    PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, button2.click,button3und4.click


    -----------------

    was auch geht -> Controls in einer while Schleife auslesen -> und den State speichern und dann sagen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „bastimw“ ()

    Schreibe doch einfach die Nummern in einen Array und bilde mit diesem die Quersumme.
    Ob eine fehlt oder doppelt eingegeben würde könntest du durch eine Schleife realisieren, die die Arrays gegenüber stellt und schaut ob sie gleich sind und ob eine bestimmte Zahl vorhanden ist

    VB.NET-Quellcode

    1. Private Sub Form_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    2. Dim expectedResult As New List(Of Integer) From {1, 2, 3, 4, 5, 6, 7, 8, 9}
    3. Dim aYes = New List(Of Integer) From {1, 4, 6, 7}
    4. Dim aNo = New List(Of Integer) From {2, 5, 9}
    5. Dim aMaybe = New List(Of Integer) From {3, 10}
    6. Dim aDontKnow = New List(Of Integer) From {8}
    7. Dim sumAll = 0
    8. Dim allAnswers = {aYes, aNo, aMaybe, aDontKnow}.SelectMany(Function(answers) answers).ToList
    9. allAnswers.Sort()
    10. If Not allAnswers.SequenceEqual(expectedResult) Then
    11. MsgBox("some unexpected Result found")
    12. End If
    13. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    BW2000 schrieb:

    Ja: 1,4,6,7
    Nein: 2,5,9
    vielleicht: 3,10
    weiß nicht: 8

    Splitte die Texte am Doppelpunkt und dann die 2. Strings (Index 1) noch mal am Komma.
    Den Rest konvertierst Du in Integer und betrachtest ihn als Index eines Feldes, das Du einfach erhöhst.
    Das resultierende Feld kannst Du ganz easy auswerten.
    Die Quersumme würde ich nicht empfehlen, die ist zu fehleranfällig:
    4 + 6 = 5 + 5
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!