Combinatie van getallen.

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Hallo,

Ik heb vijf textboxen met daarin getallen: Bijvoorbeeld

label1.text="2"
label2.text="4"
label1.text="2"
label2.text="4"
label1.text="2"

Nu wil ik graag controleren of er een combinatie in deze reeks zit van drie gelijke getallen.

Ik kan natuurlijk het volgende doen:

if label1.text="2" and label2.text="2": label3.text="2" then
msgbox( "Er is een combinatie
end if
en vervolgens elke denkbare combinatie vormen.
Is er een snelle manier?
 
Ik zie geen textboxen maar labels en dat zijn er geen 5 maar 2. Met een goed voorbeeld is de kans op een juist antwoord vele malen groter. Maar het zal zoiets zijn:

Code:
Sub Vergelijk()
    Dim x As Byte
    Dim y As Byte
    Dim aantal As Byte
    Dim lbl(6) As String
    
    lbl(1) = "1"
    lbl(2) = "2"
    lbl(3) = "3"
    lbl(4) = "2"
    lbl(5) = "2"
    
    For x = 1 To 5
        aantal = 1
        For y = 1 To 5
            If y <> x And lbl(y) = lbl(x) Then aantal = aantal + 1
        Next y
        If aantal = 3 Then
            MsgBox "3 gelijke cijfers gevonden."
            Exit For
        End If
    Next x
End Sub

Je kan de waarden "1" t/m "5" vervangen door Textbox1.Text t/m TextBox5.Text
 
Laatst bewerkt:
Dank je wel en hoe kan ik weten welke drie labels.text het zijn die de combinatie vormen?
 
Dat kan in de If structuur die in de binnenste For loop staat. Bijvoorbeeld:
Code:
Sub Vergelijk()
    Dim x As Byte
    Dim y As Byte
    Dim aantal As Byte
    Dim lbl(6) As String
    Dim Gelijk(2) As Byte
    
    lbl(1) = "1"
    lbl(2) = "2"
    lbl(3) = "3"
    lbl(4) = "2"
    lbl(5) = "2"
    
    For x = 1 To 5
        aantal = 1
        Gelijk(0) = x
        For y = 1 To 5
            If y <> x And lbl(y) = lbl(x) Then
                aantal = aantal + 1
                If Gelijk(1) > 0 Then
                    Gelijk(2) = y
                Else
                    Gelijk(1) = y
                End If
            End If
        Next y
        If aantal = 3 Then
            MsgBox "3 gelijke cijfers gevonden. " & Gelijk(0) & "," & Gelijk(1) & "," & Gelijk(2)
            Exit For
        End If
    Next x
End Sub
 
Laatst bewerkt:
Graag gedaan. Ik hoop dat het zo duidelijk genoeg is om in je eigen situatie toe te passen.
 
Ja hoor werkte direct na een paar wijzigingen van mijn situatie en ik moet ook andere combinaties vinden
zoals een combinatie van drie cijfers gelijk plus 2 cijfers gelijk
en ook bijvoorbeeld twee aparte combinatie van 2 gelijke cijfers dus 2 van 2 en 2 van3
dus dit komt zeer zeker goed van pas
 
Hoi,

Ik zit nog met een combinatie en dat een combinatie van 5 opeenvolgende getallen, dus bijv 2-3-4-5-6 of bijv 9-10-11-12-13 enz

Heb dus vijf label.text met elk 1 cijfer.

In elke label.text kan een getal van 1 tm 13 staan. Kunnen dus ook dubbel getallen zijn; Voorbeeld

l1.text= "8"
l2.text= "7"
l3.text="9"
l4.text="10"
l5". text= "11

In deze reeks zit dus een combinatie van vijf opeenvolgend getallen.
Hoe kom ik erachter of die getallen opeenvolgend zijn.
 
Kijk in een loop van 1 t/m 5 of het volgende getal hoger is dan het huidige. Als dat niet zo is zijn ze niet opvolgend. Als een dubbel getal ook als opvolgend moet worden beschouwd kijk je of het volgende getal hoger of gelijk is aan het huidige getal.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan