Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: smspuro en 13 Agosto 2007, 21:18 pm



Título: Formula resolvente :S:S:S:S
Publicado por: smspuro en 13 Agosto 2007, 21:18 pm
hola amigos tanto time xD

buen... tengo que entregar un trabajo que me esta hinchado ya... recien empiezo con VB

y queria saber... en que falla este codigo de la formula resolvente que sirve para sacar x1 y x2, para matematica asi ...


buen el codigo que tengo es :

Private Sub Command1_Click()
Dim x1, x2, a, b, c As Double
Text1.Text = a
Text2.Text = b
Text3.Text = c
x1 = ((-1 * b) + (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
x2 = ((-1 * b) - (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
x1 = Text4.Text
x2 = Text5.Text
End Sub


ayuda please xD jaja.. ta en juego mi vida ^^ ya se que es medio facil pero no me anda :(


Título: Re: Formula resolvente :S:S:S:S
Publicado por: Freeze. en 13 Agosto 2007, 21:47 pm
Explicanos mas...!!


Título: Re: Formula resolvente :S:S:S:S
Publicado por: nhaalclkiemr en 13 Agosto 2007, 21:59 pm
Explica más...pero creo k te refieres a esto:

Código
  1. Private Sub Command1_Click()
  2. Dim x1, x2, a, b, c As Double
  3. Text1.Text = a
  4. Text2.Text = b
  5. Text3.Text = c
  6. x1 = ((-1 * b) + (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
  7. x2 = ((-1 * b) - (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
  8. Text4.Text = x1
  9. Text5.Text = x2
  10. End Sub

Saludos ;)


Título: Re: Formula resolvente :S:S:S:S
Publicado por: Freeze. en 13 Agosto 2007, 22:06 pm
Yo pense lo mismo pero eso tira solamente 0...


Título: Re: Formula resolvente :S:S:S:S
Publicado por: nhaalclkiemr en 13 Agosto 2007, 23:22 pm
No tengo tiempo para probarlo, pero puede ser por esta linea:

Código
  1. Dim x1, x2, a, b, c As Double

Aí no estas declarando 5 variables 'Double', estas declarando 4 Variant y una Double, Prueva así:

Código
  1. Dim x1 As Double, x2 As Double, a As Double, As Double, b As Double, c As Double

Pero no estoy seguro, puede que sea de esto:

Código
  1. Private Sub Command1_Click()
  2. Dim x1 As Double, x2 As Double, a As Double, As Double, b As Double, c As Double
  3. a = Text1.Text
  4. b = Text2.Text
  5. c = Text3.Text
  6. x1 = ((-1 * b) + (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
  7. x2 = ((-1 * b) - (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
  8. Text4.Text = x1
  9. Text5.Text = x2
  10. End Sub


Título: Re: Formula resolvente :S:S:S:S
Publicado por: smspuro en 14 Agosto 2007, 01:25 am
algun otro codigo puede haber? no anda...


con a = -2    b=4   c=6

x1 tiene que ser -1

y x2 tiene que ser 3


con ese codigo da

x1=-60
x2=68 xD

jaja cualkiera :( 


Título: Re: Formula resolvente :S:S:S:S
Publicado por: Arcangel en 14 Agosto 2007, 19:41 pm
No tengo tiempo para probarlo, pero puede ser por esta linea:

Código
  1. Dim x1, x2, a, b, c As Double

Aí no estas declarando 5 variables 'Double', estas declarando 4 Variant y una Double, Prueva así:

Código
  1. Dim x1 As Double, x2 As Double, a As Double, As Double, b As Double, c As Double

Pero no estoy seguro, puede que sea de esto:

Código
  1. Private Sub Command1_Click()
  2. Dim x1 As Double, x2 As Double, a As Double, As Double, b As Double, c As Double
  3. a = Text1.Text
  4. b = Text2.Text
  5. c = Text3.Text
  6. x1 = ((-1 * b) + (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
  7. x2 = ((-1 * b) - (b ^ 2 - (4 * a * c)) * 1 ^ 2) / 2 * a
  8. Text4.Text = x1
  9. Text5.Text = x2
  10. End Sub

Se pedue hacer tranquilamente asi:

Código
  1. Dim x1, x2, a, b, c As Double

Como ya lo habían colocado, de igual forma es irrelevante, ese código corre, ahora abria que comprobar que las raíces que devuelve sean las correctas, aunque yo creo que deberían de ir asi:
Código
  1. x1 = ((-1 * b) + (b ^ 2 - (4 * a * c)) * 1 ^ 1/2) / 2 * a
  2. x2 = ((-1 * b) - (b ^ 2 - (4 * a * c)) * 1 ^ 1/2) / 2 * a

Arcangel


Título: Re: Formula resolvente :S:S:S:S
Publicado por: smspuro en 14 Agosto 2007, 22:15 pm
grax che... anduvo

suertee...


Título: Re: Formula resolvente :S:S:S:S
Publicado por: nhaalclkiemr en 14 Agosto 2007, 23:24 pm
Si weno, entonces el problema era de la formula...

Pero aún así deciros que no es correcto esto:

Código
  1. Dim x1, x2, a, b, c As Double

Pues aí estas declarando variables "Variant", y hay que evitar el uso de variables Variant..., por eso mejor:

Código
  1. Dim x1 As Double, x2 As Double, a As Double, As Double, b As Double, c As Double

Pero claro...eso no influye en el resultado final...pero si en el rendimiento...

Saludos ;)