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
Cita de: 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
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.
no esta en vb 6 pero podria servite este source en vb.Net http://www.a1vbcode.com/app-3174.asp
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 :)
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:
Private Sub Igual_Click()
If Signo.List = "+" Then
NumC = Val(NumA) + Val(NumB) 'Marcar + en lista , sumar
If Signo.List = "-" Then
NumC = Val(NumA) - Val(NumB) 'Marcar - en lista , restar
...
If Signo.List = "*" Then
NumC = Val(NumA) * Val(NumB) 'Marcar * en lista , multiplicar
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
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..
Pues ahi lo unico que hace es asignarle un valor a NumC unicamente, no te debería mostrar nada.
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
La verdad es algo confusa tu lógica, en realidad deberías poner de esta manera para que aparezca en un label o textbox:
Private Sub Igual_Click()
If Signo.List = "+" Then
NumC = Val(NumA) + Val(NumB) 'Marcar + en lista , sumar
Text1.text=NumC 'Esto
Label1.Caption=NumC 'O Esto
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
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..
Puedes copiar por entero tu código, creo que será mas fácil.
Trata de utilizar GeShi ;)
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...
Eso es todo? :o
Bien, supongo que en tu form pusiste un textbox o un label.
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.
Ahora entiendo, bien:
En las cajas de ingreso, para obtener su valor:
Val(NumA.text)
Val(NumB.text)
Para asignarles el valor a la caja de "resultado":
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
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?
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:
Private Sub Command1_Click()
If List1.List(List1.ListIndex) = "+" Then
Label1.Caption = Val(Text1.Text) + Val(Text2.Text)
End If
End Sub
Private Sub Form_Load()
List1.AddItem "+"
List1.AddItem "-"
Text1.Text = ""
Text2.Text = ""
Label1.Caption = ""
End Sub
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)
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
Cita de: 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)
mejor solución no existe.¡!
CitarLo 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!
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:
Dim uno, dos As Double
Private Sub Command1_Click()
uno = Val(Text1.Text)
dos = Val(Text2.Text)
Text3.Text = uno + dos
End Sub
Private Sub Command2_Click()
uno = Val(Text1.Text)
dos = Val(Text2.Text)
Text3.Text = uno - dos
End Sub
Private Sub Command3_Click()
uno = Val(Text1.Text)
dos = Val(Text2.Text)
Text3.Text = uno * dos
End Sub
Private Sub Command4_Click()
uno = Val(Text1.Text)
dos = Val(Text2.Text)
Text3.Text = uno / dos
End Sub
Saludos
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.
CitarBueno.. queria agradecerles.. el apoyo y tal , y que sepan que lo he arreglado :)
Bien por ti ;)
Cita de: oJosLoCos en 9 Julio 2009, 21:38 PM
If Signo.List(Signo.ListIndex) = "+" Then
NumC.Text = Val(NumA.Text) + Val(NumB.Text) 'Marcar + en lista , sumar
ElseIf Signo.List = "-" Then
ElseIf Signo.List = "/" Then
ElseIf Signo.List = "*" Then
End If
El ERROR POSIBLE esta en tu Sintaxis del Control ListBox
Posible Arreglo
Private Sub Command1_Click()
If Signo.List(Signo.ListIndex) = "+" Then
NumC.Text = Val(NumA.Text) + Val(NumB.Text) 'Marcar + en lista , sumar
ElseIf Signo.List(Signo.ListIndex) = "-" Then
NumC.Text = Val(NumA.Text) - Val(NumB.Text) 'Marcar - en lista , restar
ElseIf Signo.List(Signo.ListIndex) = "/" Then
NumC.Text = Val(NumA.Text) / Val(NumB.Text) 'Marcar / en lista, dividir
ElseIf Signo.List(Signo.ListIndex) = "*" 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
te falto poner en lo demas
Signo.ListIndex
Aun asi revisa y leete un Manual de Basic
Jejej , ok
tranquilos que seguro que regreso con nuevas dudas... pues aun me queda mucho por hacer.. pero por ahora almenos funciona. xD
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 ;)