• Sábado 21 de Diciembre de 2024, 15:21

Autor Tema:  Como asiganar un edit a una variable  (Leído 2919 veces)

jairj02

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Como asiganar un edit a una variable
« en: Miércoles 4 de Marzo de 2009, 20:41 »
0
Hola amigos soy nuevo y tengo este algoritmo de biseccion y quiero colocar dos edit para a y b...pero no se como me ayudan porq alli estan como constantes..... y le e jalado y nada me salen muchos errores gracias por todo..asi sea por leerlo...cualquier respuesta jairj02@yahoo.es porfavor
Option Explicit
Dim a, b As Double
Dim TOL As Double
Dim res As Double
Dim N As Integer

Function f(ByVal x As Double) As Double
f = Cos(x) - x
End Function

Sub Biseccion(ByVal a As Double, ByVal b As Double, ByVal TOL As Double, _
              ByVal N As Integer, ByRef res As Double)
Dim p, fa, fp As Double
Dim i As Integer
Dim Flag As Boolean

i = 1
fa = f(a)
Flag = False
Do While (i <= N) And Not (Flag)
    p = a + (b - a) / 2
    fp = f(p)
    If fp = 0 Or (b - a) / 2 < TOL Then
        res = p
        Flag = True
    End If
    i = i + 1
    If fa * fp > 0 Then
        a = p
        fa = fp
    Else
        b = p
    End If
Loop
If Not Flag Then
    MsgBox "El método fracaso por exceder el numero de iteraciones", vbExclamation, "Bisección"
End If
End Sub

Private Sub cmdEjecutar_Click()
Call Biseccion(a, b, TOL, N, res)
txtr.Text = res
End Sub

Private Sub Form_Load()
a = 0.5
b = 0.785398163
TOL = 0.000001
N = 20
End Sub

Private Sub cmdSalir_Click()
Unload Me
End Sub

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Como asiganar un edit a una variable
« Respuesta #1 en: Jueves 5 de Marzo de 2009, 10:49 »
0
Etiquetas de código, que no hay quién lea eso...

Las respuestas se publican aquí y no se mandan a tu correo.

Explica un poco qué pretendes hacer más en detalle

También si pusieras los errores que te salen, sería más fácil y menos costoso para todos.

Salud

jairj02

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Como asiganar un edit a una variable
« Respuesta #2 en: Jueves 5 de Marzo de 2009, 14:16 »
0
Amigo... quiero hacer un programa q del metodo de biseccion......... tengo mi interzas d ela siguinete maneras....un textbox de resultado, un textbox para el intervalo a...y otro paa el intervalo b....un botom de ejecutar.....y limpiar.....

logre hacer elcodigo ...pero  si te fijas aqui en esta parte del codigo...el intervalo a y b estan como constantes....yo no quiero eso...porq coloque los dos textbox...es para q escriban los intervalos....no q sean fijos como yo los tengo..ese es mi principal problema...como hacer q tu ingreses a= 0.5 y b= 0.9 pero en los textbox...y q te arroje un resultado con dicha ecuacion costantes...en el textbox..de resultado ...luego limpio...y meto otros intervalos por ejemplo, a= 4.23 y b= 6.4  y me de otro resultado....................

asi como lo tengo el funciona...pero si creo mi .exe asi cuando abra mi programa solo servira para ese punto y ningun otro....ya q los textbox no funcionarian.... eso e slo unico q quiero.... creo q fui demasiado...explicito gracias espero me puedas ayudar..y no asi no tiene ningun error al ejecutar...el unico error q tengo es q si lo voy a presentar tendria q llevarme el visual basic...pa acada rato cambiar manualmente en el codigo los intervalos a y b...y de eso no se trata...se trata de cambiarlos...pero en sus textbox...cuando ya este en .exe...el programita...gracias amigo te agradesco por responder...anteriormente...y disculpa lo del correo...me gustaria q hablarmos por el msn si tiene y asi podria explicarte cualquier duda mas facilmente.

Private Sub Form_Load()
a = 0.5
b = 0.785398163
TOL = 0.000001
N = 20
End Sub

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Como asiganar un edit a una variable
« Respuesta #3 en: Jueves 5 de Marzo de 2009, 17:58 »
0
Mucho más claro, ahora sí que te puedo solucionar el problema  ^_^

Supongamos que el textbox para a lo llamamos TextA y el otro para b TextB. También vamos a necesitar un botón (cmdConfirmar) para que al pulsarlo se carguen los valores de TextA y TextB en las variables a y b.

Código: Visual Basic
  1. Public a as Double
  2. Public b as Double
  3.  
  4. Private Sub cmdConfirmar_Click()
  5.     a = CDbl(TextA.Text)
  6.     b = CDbl(TextB.Text)
  7. End Sub
  8.  
Y listo. Ten en cuenta que también deberías implementar un control para asegurarte que los valores introducidos en TextA y TextB son válidos para un tipo Double. De esta forma puedes mantener los valores por defecto que ya asignas, pero que se pueden modificar cuando se pulse el botón cmdConfirmar. Incluso podrías poner un botón que devuelva a y b a sus valores por defecto.

Salud y suerte

jairj02

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Como asiganar un edit a una variable
« Respuesta #4 en: Jueves 5 de Marzo de 2009, 19:00 »
0
hola amigo gracias por responder...voy a poner lo q me dijiste y haber q tengo q borrar del codigo q hize..para q funcione lo q me diste...cualquier error te lo voy informando enseguida listo...gracias  ^_^

jairj02

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Como asiganar un edit a una variable
« Respuesta #5 en: Jueves 5 de Marzo de 2009, 19:33 »
0
amigo mira coloque lo q me dijsite y si sirve--..pero sigue teniendo el problema de los intervalos.........si coloco intervalos como 0.5 a 0.9 o  0.5 a 9...me sale un numero q no es....cuando coloco....los intervalos 0, 9 ; 0,7 y asi si me da me da d elo mejor ...si coloco 1, 7.6 no sirve ....apenas coloco un decimal no sirve.... mira te coloco atra vez el codigo con lo q me enviaste haber si fue q coloque algo malo........a por cierto agrege un botom q se llama confirmar... parte d elos q ya tengo q es ejecutar, limpiar y salir....si pudieras corregirme el codigo... seria mas sencillo...para mi de comprender...se q es la salida facil pero ya no tengo tiempo temngo q explicar este programa....no es presentarlo como trabajo sino exponerlo y q sirva...por eso..te pido...asi algo indiscretamente e irrespetuasamente... si me podrias correir el codigo mandamen el q estaroia bien...q yo tengo q de todas maneras explicar las cosas...gracias y disculpa nuevamente :(

Option Explicit
Dim TOL As Double
Dim res As Double
Dim N As Integer
 Public a As Double
Public b As Double

Function f(ByVal x As Double) As Double
f = x - (2 ^ (-x))
End Function

Sub Biseccion(ByVal a As Double, ByVal b As Double, ByVal TOL As Double, _
              ByVal N As Integer, ByRef res As Double)
Dim p, fa, fp As Double
Dim i As Integer
Dim Flag As Boolean
i = 1
fa = f(a)
Flag = False
Do While (i <= N) And Not (Flag)
    p = a + (b - a) / 2
    fp = f(p)
    If fp = 0 Or (b - a) / 2 < TOL Then
        res = p
        Flag = True
    End If
    i = i + 1
    If fa * fp > 0 Then
        a = p
        fa = fp
    Else
        b = p
    End If
Loop
If Not Flag Then
    MsgBox "El método fracaso por exceder el numero de iteraciones", vbExclamation, "Bisección"
End If
End Sub

Private Sub cmd_Click()
  a = CDbl(Text1.Text)
  b = CDbl(Text2.Text)
End Sub

Private Sub cmdEjecutar_Click()
Call Biseccion(Text1.Text, Text2.Text, TOL, N, res)
txtr.Text = res
End Sub

Private Sub Command1_Click()
txtr.Text = ""
Text1.Text = ""
Text2.Text = ""



End Sub

Private Sub Form_Load()
TOL = 0.001
N = 20
End Sub

Private Sub cmdSalir_Click()
Unload Me
End Sub

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Como asiganar un edit a una variable
« Respuesta #6 en: Jueves 5 de Marzo de 2009, 20:44 »
0
Por favor, utiliza las etiquetas de código, que si no me entra dolor de cabeza y ojos.  :bad:

jairj02

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Como asiganar un edit a una variable
« Respuesta #7 en: Jueves 5 de Marzo de 2009, 21:04 »
0
disculaa...amigo...y con debido respeto...y perdon otra vez...te pido q me excuses y te digo brevemente q no entendi lo q me quisiste decir...soy colombiano y no entiendo los terminos...y soy nuevo aqui no se q es eso de etiquetas...no se..la verda disculpa solo me inscribi ayer...gracias

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Como asiganar un edit a una variable
« Respuesta #8 en: Viernes 6 de Marzo de 2009, 01:56 »
0
Bueno, si leyeras las normas del foro antes de postear...  -_-

jairj02

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Como asiganar un edit a una variable
« Respuesta #9 en: Viernes 6 de Marzo de 2009, 02:16 »
0
ok gracias por la notificacion........me gustaria q me pasaras el programa gracias

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Como asiganar un edit a una variable
« Respuesta #10 en: Viernes 6 de Marzo de 2009, 03:08 »
0
Bueno, qué tal si me explicas qué haces en Biseccion().

jairj02

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Como asiganar un edit a una variable
« Respuesta #11 en: Viernes 6 de Marzo de 2009, 04:41 »
0
Ok gracias....mira solo necesito capturar los dos intervalos desde sus textboxrespectivos ...la ecuacion puedo ser fija o puedes capturarla tambien desde su textbox.....entonces ya tengo la ecuacion por ejemplo esta x-(2^(-x)) listo....necesito los dos intervalos supongamos en el textbox de name txta por ejemplo introdusco el valor de 0.5 y lo mismo para txtb un valor de 0.9 por decir...el intervalo seria [0.5; 0.9]....ahora ya q tengo esto doy click en el boton ejecutar para q me realize el proceso de biseccion..halla la raiz....entonces me muestra en otro textbox q llamare aqui ...name  txtr....y me muestra el resultado...la raiz....supongamos 0.678253439028465 por decir.....eso es todo lo q tiene q hacer el programa......

repito nuevamente los intervalos no pueden ser fijos...luego si yo quiero cambiarlos pa esa misma ecuacion entonces no podre si son fijo........ahora si la ecuacion es fija no importa... pero si puedo cambiarla como los intervalos mucho mejor...porq ya no seria particularmete pa ese uina ecuacion sino para la q le ingreses.....bueno con q sea pa una sola ecuacion me conformo....listo

gracias espero tu respuesta gracias...