Tengo otra pregunta
Yo hice este programa en el cual tú ingresas un nº en un textbox y te devuelve en un label el nº de veces que ha salido el 1 aleatoriamente y en otro label el nº de veces que ha salido el 2 aleatoriamente (nota: los dos label sumados tienen que dar el textbox) y en otro label sale la diferencia de los otros labels anteriores.
Private Sub Button6_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
If Not IsNumeric(TextBox4.Text) Then Exit Sub
Label16.Text = ""
Label7.Text = ""
Label5.Text = ""
If Label16.Text = "" Then Label16.Text = 0
If Label7.Text = "" Then Label7.Text = 0
Dim a As Double
Dim b As Integer = TextBox4.Text
For b = 1 To b
a = Rnd()
If a < 0.5 Then Label16.Text = Label16.Text + 1
Next b
Label7.Text = TextBox4.Text - Label16.Text
If Label5.Text = "" Then Label5.Text = 0
Label5.Text = Label16.Text - Label7.Text
End Sub
Lo que quiero hacer es otro programa en el cual en un textbox ingresas un nº y haga lo mismo que en el programa anterior pero en este quiero que se repita el proceso hasta que el valor absoluto del label de la diferencia de los otros dos labels sea igual a el textbox y en un labelsolución me de el número de veces que se ha tenido que ejecutar. En este caso los dos labels y el label de la diferencia serán variables.
He intentado hacer lo que he podido pero no me sale porque cuando lo ejecuto tarda, puffff y eso no debería ser normal cuando se utilizan números pequeños.
Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
If Not IsNumeric(TextBox6.Text) Then Exit Sub
Labelsolución.Text = ""
If Labelsolución.Text = "" Then Labelsolución.Text = 0
Dim x As Integer
Dim z As Integer
Dim g As Integer
Dim t As Integer
Do Until TextBox6.Text = t Or TextBox6.Text = t * (-1)
Dim a As Double
Dim b As Double = TextBox6.Text
For b = 1 To b
a = Rnd()
If a < 0.5 Then z = z + 1
Next b
g = TextBox6.Text - z
t = z - g
x = x + 1
Loop
Labelsolución.Text = x
End Sub
Por si no lo entendéis (seguro porque lo puse complicado):
Ejemplo:
TextBox6.Text = 4
Entonces:
z = 0
g = 4
t = -4
Valor absoluto de -4 = 4
TextBox6.Text = valor absoluto de t
y como solamente he necesitado ejecutarlo 1ª vez entonces en el label solución debe poner "1"
Ejemplo 2:
TextBox6.Text = 5
Entonces:
z = 3
g = 2
t = 1
Se repite porque val abs de t no es 5 y a labelsolución se le suma 1 por haber ejecutado el proceso una vez.
z = 5
g =0
t = 5
Como val abs de t es 5 y TextBox6.Text = 5 ya he acabado porque son iguales entonces a labelsolución se le suma otro
Entonces labelsolución tiene que poner 2 porque ha tenido que ejecutarse dos veces.
Espero que lo hayan entendido y gracias de antemano.