Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: oJosLoCos en 7 Julio 2009, 20:22 pm



Título: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 7 Julio 2009, 20:22 pm
Hola , bueno gente , pues tengo que presentar un proyecto y se trata de un programa que resuelva ecuaciones de primer , segundo , tercer , cuarto y asta quinto grado.

Alguien sabria decirme donde puedo buscar codigos.. ayuda.. o alguien ha hecho algo semejante?

Esque soy principiante en visual basic.. y pues.. estoy atrancado , nose ni por donde empezar..

Entiendo los codigos y como funciona el lenguaje.

Saludos y gracias


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: BlackZeroX en 8 Julio 2009, 01:25 am
Hola , bueno gente , pues tengo que presentar un proyecto y se trata de un programa que resuelva ecuaciones de primer , segundo , tercer , cuarto y asta quinto grado.

Alguien sabria decirme donde puedo buscar codigos.. ayuda.. o alguien ha hecho algo semejante?

Esque soy principiante en visual basic.. y pues.. estoy atrancado , nose ni por donde empezar..

Entiendo los codigos y como funciona el lenguaje.

Saludos y gracias

Te recomiendo que lo hagas con Clases, igual hay un metodo llamado Gaus que funciona para resolver ecuaciones que cuadren en si en filas como columnas (ambas deben ser la misma cantidad para este metodo) "cuadraticas" por decirlo de alguna forma (No se llaman así). usa la Wikipedia (http://www.wikipedia.org)/Google (http://www.google.com.mx) para ver sobre este metodo.


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: XcryptOR en 8 Julio 2009, 04:51 am
no esta en vb 6 pero podria servite este source en vb.Net http://www.a1vbcode.com/app-3174.asp


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 8 Julio 2009, 16:55 pm
Gracias ,lo mirare :P

Una cosa.. he empezado a desarroyar algo , poco a poco..

y me da error al compilar

Miren el codigo es el siguiente:


Private Sub Igual_Click()
If Signo.List = "+" Then
NumC = Val(NumA) + Val(NumB)  'Marcar + en lista , sumar
End Sub

Private Sub Igual_Click()
If Signo.List = "-" Then
NumC = Val(NumA) - Val(NumB)  'Marcar - en lista , restar
End Sub

Private Sub Igual_Click()
If Signo.List = "/" Then
NumC = Val(NumA) / Val(NumB)  'Marcar / en lista, dividir
End Sub

Private Sub Igual_Click()
If Signo.List = "*" Then
NumC = Val(NumA) * Val(NumB)  'Marcar * en lista , multiplicar
End Sub

End Sub


Me da error  " Se ha detectado un nombe ambiguo Igual_Click() , y marca el que he marcado en color.

Nose si deveo explicar como esta hecho.. ueno hay 2 cajas de texto para introducir cifras ,una lista donde se pueden escoger los signos de suma , resta , dividir i multiplicar , un comand box para clicar y una caja de texto final donde sale el resultado.

Saludos ,y aver si me pueden ayudar :)


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: VonN en 8 Julio 2009, 17:04 pm
Es porque estás utilizando un mismo evento, sobre un mismo objeto varias veces.

Todas tus estructuras condicionales deberías ponerlas en un solo button, algo asi:
Código
  1. Private Sub Igual_Click()
  2. If Signo.List = "+" Then
  3. NumC = Val(NumA) + Val(NumB)  'Marcar + en lista , sumar
  4. If Signo.List = "-" Then
  5. NumC = Val(NumA) - Val(NumB)  'Marcar - en lista , restar
  6. ...
  7. If Signo.List = "*" Then
  8. NumC = Val(NumA) * Val(NumB)  'Marcar * en lista , multiplicar
  9. End Sub
Acuerdate que te faltan los 'end if's'.

En todo caso si vas a usar tantos if's anidados te recomiendo usar la estructura de control select case.

Un saludo


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 8 Julio 2009, 17:55 pm
Ya lo he remodelado , siguiendo vuestros consejos y queda algo asi

Private Sub Igual_Click()
If Signo.List = "+" Then
NumC = Val(NumA) + Val(NumB)  'Marcar + en lista , sumar

ElseIf Signo.List = "-" Then
NumC = Val(NumA) - Val(NumB)  'Marcar - en lista , restar

ElseIf Signo.List = "/" Then
NumC = Val(NumA) / Val(NumB)  'Marcar / en lista, dividir


ElseIf Signo.List = "*" Then
NumC = Val(NumA) * Val(NumB)  'Marcar * en lista , multiplicar
End If
End Sub


No da error ni nada , pero a la hor ade ejecutar el programa , no funciona.. al presionar el comandbuton IGUAL , no responde , no hace absolutamente nada..


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: VonN en 8 Julio 2009, 18:12 pm
Pues ahi lo unico que hace es asignarle un valor a NumC unicamente, no te debería mostrar nada.


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 8 Julio 2009, 21:17 pm
Pero si yo le añado cifras a las ventanas de texto.

Vamos que le doy un valor a NumA , y a NumB , me deberia hacer una operacion matematica para darme el valor de NumC.. sin envargo no hace nada..

Nose pq. si puedes agregarme al msn y lo hablamos mas detenidamente.. :)
Jhn.tt@hotmail.com


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: VonN en 8 Julio 2009, 21:19 pm
La verdad es algo confusa tu lógica, en realidad deberías poner de esta manera para que aparezca en un label o textbox:

Código
  1. Private Sub Igual_Click()
  2. If Signo.List = "+" Then
  3. NumC = Val(NumA) + Val(NumB)  'Marcar + en lista , sumar
  4.  
  5. Text1.text=NumC 'Esto
  6. Label1.Caption=NumC 'O Esto
  7.  
  8. ElseIf Signo.List = "-" Then
  9. NumC = Val(NumA) - Val(NumB)  'Marcar - en lista , restar
  10.  
  11. ElseIf Signo.List = "/" Then
  12. NumC = Val(NumA) / Val(NumB)  'Marcar / en lista, dividir
  13.  
  14.  
  15. ElseIf Signo.List = "*" Then
  16. NumC = Val(NumA) * Val(NumB)  'Marcar * en lista , multiplicar
  17. End If
  18. End Sub


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 8 Julio 2009, 21:29 pm
Sigue diciendo que el argumento no es opcional..
Y me subralla  Private Sub Igual_Click()

Osea lo primero que sale.. ya me dice que no.. u.u no lo entiendo..


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: VonN en 8 Julio 2009, 21:31 pm
Puedes copiar por entero tu código, creo que será mas fácil.
Trata de utilizar GeShi  ;)


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 8 Julio 2009, 21:41 pm
Option Explicit



Private Sub Igual_Click()
If Signo.List = "+" Then
NumC = Val(NumA) + Val(NumB)  'Marcar + en lista , sumar

ElseIf Signo.List = "-" Then
NumC = Val(NumA) - Val(NumB)  'Marcar - en lista , restar

ElseIf Signo.List = "/" Then
NumC = Val(NumA) / Val(NumB)  'Marcar / en lista, dividir


ElseIf Signo.List = "*" Then
NumC = Val(NumA) * Val(NumB)  'Marcar * en lista , multiplicar
End If
End Sub


Disculpa no se que es eso de ghesi..  xD

Esque a la hora de ejecutar da error...


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: VonN en 8 Julio 2009, 21:42 pm
Eso es todo?  :o

Bien, supongo que en tu form pusiste un textbox o un label.


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 9 Julio 2009, 13:42 pm
Si , el codigo es ese.. y ya da error.

Hay 2 cajas de texto que son NumA y NumB
hay una lista de opciones a escoger que hay + - / * (4 opciones)
Hay un comandbuton , que se llama Igual
Luego hay otra caja de texto , que es NumC , donde deberia salir el resultado de la operacion..

Y he puesto condiciones , que dependiendo de lo que se marque en la lista de opciones , se haga un aoperacion u otra.. si marco + , al darle al comandbuton Igual , pues que efectue una suma y aparezca el resultado en NumC , pero nada.. no funciona.


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: VonN en 9 Julio 2009, 15:51 pm
Ahora entiendo, bien:

En las cajas de ingreso, para obtener su valor:
Código
  1. Val(NumA.text)
  2. Val(NumB.text)

Para asignarles el valor a la caja de "resultado":
Código
  1. NumC.text=Val(NumA.Text) + Val(NumB.text)

Te recomiendo que comienzas a usar algunos estándares de VB, ejemplos:

En buttons utiliza:

Cmd_Mybutton
Cmd_Resultado
CmdResultado

En textbox:

TxtNum1
Txt_Num2

En labels:

Lbl_Num1
LblNum2

De esa forma es más fácil leer el código. Al principio cuando comencé leyendo el code, NUMA y NUMB parecían variables más que nada.

Un saludo


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 9 Julio 2009, 16:21 pm
Ok , empezare a usarlos segun ese criterio.

He reparado el asunto de los .text

Pero ahora al darle al comanbuton , me sale un error

Error de compilacion: el argumento no es opcional

Y me subralla en amarillo:

Private Sub Igual_Click()
If Signo.List = "+" Then
NumC.Text = Val(NumA.Text) + Val(NumB.Text)  'Marcar + en lista , sumar

ElseIf Signo.List = "-" Then
NumC.Text = Val(NumA.Text) - Val(NumB.Text)  'Marcar - en lista , restar

ElseIf Signo.List = "/" Then
NumC.Text = Val(NumA.Text) / Val(NumB.Text)  'Marcar / en lista, dividir


ElseIf Signo.List = "*" Then
NumC.Text = Val(NumA.Text) * Val(NumB.Text)  'Marcar * en lista , multiplicar
End If
End Sub

A que se deve?


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: VonN en 9 Julio 2009, 16:48 pm
Te marca el error en el método que utilizas no en la propiedad del componente.

Bien, te dejo un ejemplo de como utilizar el listbox:

Código
  1. Private Sub Command1_Click()
  2. If List1.List(List1.ListIndex) = "+" Then
  3.    Label1.Caption = Val(Text1.Text) + Val(Text2.Text)
  4. End If
  5. End Sub
  6.  
  7. Private Sub Form_Load()
  8. List1.AddItem "+"
  9. List1.AddItem "-"
  10. Text1.Text = ""
  11. Text2.Text = ""
  12. Label1.Caption = ""
  13. End Sub


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: seba123neo en 9 Julio 2009, 20:05 pm
Manual Visual Basic (http://www.google.com.ar/search?q=manual+visual+basic&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-ES:official&client=firefox-a)


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 9 Julio 2009, 21:38 pm
aqui sta el codigo final

Private Sub Igual_Click()
If Signo.List(Signo.ListIndex) = "+" Then
NumC.Text = Val(NumA.Text) + Val(NumB.Text) 'Marcar + en lista , sumar

ElseIf Signo.List = "-" Then
NumC.Text = Val(NumA.Text) - Val(NumB.Text) 'Marcar - en lista , restar

ElseIf Signo.List = "/" Then
NumC.Text = Val(NumA.Text) / Val(NumB.Text)  'Marcar / en lista, dividir


ElseIf Signo.List = "*" Then
NumC.Text = Val(NumA.Text) * Val(NumB.Text)  'Marcar * en lista , multiplicar
End If
End Sub

Private Sub Form_Load()
Signo.AddItem "+"
Signo.AddItem "-"
Signo.AddItem "/"
Signo.AddItem "*"
End Sub


Lo amarillo es el error que me sigue dando.. u.u ya me desespero


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: BlackZeroX en 9 Julio 2009, 21:50 pm
Manual Visual Basic (http://www.google.com.ar/search?q=manual+visual+basic&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-ES:official&client=firefox-a)

mejor solución no existe.¡!


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: VonN en 9 Julio 2009, 21:57 pm
Citar
Lo amarillo es el error que me sigue dando.. u.u ya me desespero

El amarillo no es error te aclaré. Fijate bien que el error se produce dentro de ese método seguramente, ya más no podemos hacer, hazle caso a seba  ;)

Un saludo!


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: byway en 9 Julio 2009, 22:15 pm
ummmm si eso es todo tu codigo pues nunca te saldra nada... solo ese error ... pues declara un par de variables para A y B como Double para que puedas usar decimales.

algo asi como este ejemplito que hize para ti   ;D ;D:

Código
  1. Dim uno, dos As Double
  2.  
  3. Private Sub Command1_Click()
  4. uno = Val(Text1.Text)
  5. dos = Val(Text2.Text)
  6. Text3.Text = uno + dos
  7. End Sub
  8.  
  9. Private Sub Command2_Click()
  10. uno = Val(Text1.Text)
  11. dos = Val(Text2.Text)
  12. Text3.Text = uno - dos
  13. End Sub
  14.  
  15. Private Sub Command3_Click()
  16. uno = Val(Text1.Text)
  17. dos = Val(Text2.Text)
  18. Text3.Text = uno * dos
  19. End Sub
  20.  
  21. Private Sub Command4_Click()
  22. uno = Val(Text1.Text)
  23. dos = Val(Text2.Text)
  24. Text3.Text = uno / dos
  25. End Sub
  26.  

Saludos


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 9 Julio 2009, 22:19 pm
Bueno.. queria agradecerles.. el apoyo y tal , y que sepan que lo he arreglado :)

Dejo el codigo final por si algun torpon como yo llega a intentar programar en visual jejeje

Private Sub Igual_Click()
If Signo = "+" Then
NumC.Text = Val(NumA.Text) + Val(NumB.Text) 'Marcar + en lista , sumar

ElseIf Signo = "-" Then
NumC.Text = Val(NumA.Text) - Val(NumB.Text) 'Marcar - en lista , restar

ElseIf Signo = "/" Then
NumC.Text = Val(NumA.Text) / Val(NumB.Text)  'Marcar / en lista, dividir


ElseIf Signo = "*" Then
NumC.Text = Val(NumA.Text) * Val(NumB.Text)  'Marcar * en lista , multiplicar
End If
End Sub

Private Sub Form_Load()
Signo.AddItem "+"
Signo.AddItem "-"
Signo.AddItem "/"
Signo.AddItem "*"
End Sub


Ueno , lo que hice fue borrar el Signo.List porque no era necesario , ya que al marcarlo en la casilla no hay porque especificar que es de la lista.. no tenia sentido :)

En fin , muchas gracias a todos , de verdad.


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: VonN en 9 Julio 2009, 22:21 pm
Citar
Bueno.. queria agradecerles.. el apoyo y tal , y que sepan que lo he arreglado :)

Bien por ti  ;)


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: BlackZeroX en 9 Julio 2009, 22:25 pm
Código
  1. If Signo.List(Signo.ListIndex) = "+" Then
  2. NumC.Text = Val(NumA.Text) + Val(NumB.Text) 'Marcar + en lista , sumar
  3. ElseIf Signo.List = "-" Then
  4. ElseIf Signo.List = "/" Then
  5. ElseIf Signo.List = "*" Then
  6. End If
  7.  
  8.  



El ERROR POSIBLE esta en tu Sintaxis del Control ListBox

Posible Arreglo
Código
  1. Private Sub Command1_Click()
  2. If Signo.List(Signo.ListIndex) = "+" Then
  3. NumC.Text = Val(NumA.Text) + Val(NumB.Text) 'Marcar + en lista , sumar
  4.  
  5. ElseIf Signo.List(Signo.ListIndex) = "-" Then
  6. NumC.Text = Val(NumA.Text) - Val(NumB.Text) 'Marcar - en lista , restar
  7.  
  8. ElseIf Signo.List(Signo.ListIndex) = "/" Then
  9. NumC.Text = Val(NumA.Text) / Val(NumB.Text)  'Marcar / en lista, dividir
  10.  
  11.  
  12. ElseIf Signo.List(Signo.ListIndex) = "*" Then
  13. NumC.Text = Val(NumA.Text) * Val(NumB.Text)  'Marcar * en lista , multiplicar
  14. End If
  15. End Sub
  16.  
  17. Private Sub Form_Load()
  18. Signo.AddItem "+"
  19. Signo.AddItem "-"
  20. Signo.AddItem "/"
  21. Signo.AddItem "*"
  22. End Sub
  23.  
  24.  

te falto poner en lo demas

Código
  1. Signo.ListIndex
  2.  
  3.  

Aun asi revisa y leete un Manual de Basic


Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: oJosLoCos en 10 Julio 2009, 10:22 am
Jejej , ok

tranquilos que seguro que regreso con nuevas dudas... pues aun me queda mucho por hacer.. pero por ahora almenos funciona. xD



Título: Re: Resolver ecuaciones Visual Basic 6.0
Publicado por: WestOn en 13 Julio 2009, 19:02 pm
Wenas a todos, veo que esto murio hace 3 dias pero esque el titulo me gusto bastante...
Yo si estaria interesado en hacer una calculadora con opciones basicas para realizar ecuaciones hasta de 2º grado, el plan seria generan ecuaciones aleatorias, que las procesase y se guardara la respuesta...como un sudoku que hay por aqui publicado..
Lo que hiciste aqui es sumar, restar, multiplicar y dividir, no veo las ecuaciones jeje  :silbar:

Un par de dudas aprovechando este post:
-¿Como represento un numero elevado al cuadrado?
...bueno ahora no tengo mas dudas de momento, voy a ponerme a ello y ya si tengo alguna duda os la comunico por aqui..

Saludos ;)