• Viernes 8 de Noviembre de 2024, 11:30

Autor Tema:  simplificar una fraccion y una raiz en vb  (Leído 6895 veces)

zero_kool

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
simplificar una fraccion y una raiz en vb
« en: Miércoles 24 de Septiembre de 2008, 22:30 »
0
holas

como podria ser el codigo que me simplifique 2 expresiones en vb

imaginemos la expresion (rc=raiz cuadrada)

(6+rc(72))/4 = (6+rc(36*2))/4 = (6+6rc(2))/4 = 2(3+3rc(2))/4 = (3+3rc(2))/2

como vemos es una fraccion que se simplifica producto de una factorizacion
y lo otro es simplificar la raiz (mas bien descomponerla)

necesito un framento de codigo que haga esto , lo mas sencillo posible , pues es para
implementarlo en una calculadora programable que usa un tipo de basic

Jimbenit

  • Miembro MUY activo
  • ***
  • Mensajes: 269
  • Nacionalidad: co
    • Ver Perfil
    • http://ingenieriacivil.foroactivo.com
Re: simplificar una fraccion y una raiz en vb
« Respuesta #1 en: Miércoles 24 de Septiembre de 2008, 23:58 »
0
Citar
Dijiste:
como podria ser el codigo que me simplifique 2 expresiones en vb

Niño, te diré algo:

1) En este foro no se haen tareas; en lugar de eso, tu colocas el codigo que has desarrollado hasta ahora, aqui se discute y se da una solución a partir de la tuya (del codigo que tienes desarrollado hasta donde llegó la 'duda')... entiendes? ^_^
2) Veo que solo tienes un mensaje, por lo que me doy cuenta de que llegaste al foro con un buscador (¡Buena Idea!), pero se te olvida algo, que todo foro tiene reglas ^_^
3) Lo que planteas es sencillo, tanto como una factorización y una inocente simplificación, en este lugar existe un foro que se llama "Visual Basic para principiantes"  ^_^


Saludos... espero volver a verte por aca... :good:


Yo quiero mucho a Toph ---> Mi Web]http://ingenieriacivil.foroactivo.com[/url]

zero_kool

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: simplificar una fraccion y una raiz en vb
« Respuesta #2 en: Jueves 25 de Septiembre de 2008, 05:54 »
0
para tener 53 mensajes , no eres un abuelo.

el que tenga un mensaje no me hace un niño

no puedes juzgar a un usuario solo por un mensaje por lo demás si tan sencillo para ti hacer lo que pido
no te costaría mucho postearlo , ademas no son  las tareas de nada hace muchos años que no escribo es basic y se me olvido , y para tu información  por tu forma de contestar apostaría que el niño eres tu.Para tu entretencion búscate a mano sin ningun algoritmo,  " 3 " valores que satisfagan la ecuación 2^x =x^2

bueno esperare si hay alguien que pueda ayudar sin prejuzgar

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: simplificar una fraccion y una raiz en vb
« Respuesta #3 en: Jueves 25 de Septiembre de 2008, 09:31 »
0
No se calienten. A ver, el tema es que si te ponemos código en VB6 dudo que te funcione en una calculadora programable, porque VB6 no es BASIC tal cual, sino una versión de Microsoft para Windows de 32 bits.

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: simplificar una fraccion y una raiz en vb
« Respuesta #4 en: Jueves 25 de Septiembre de 2008, 14:31 »
0
Cita de: "zero_kool"
holas

como podria ser el codigo que me simplifique 2 expresiones en vb

necesito un framento de codigo que haga esto , lo mas sencillo posible , pues es para
implementarlo en una calculadora programable que usa un tipo de basic

Con Notación Polaca Inversa, estos problemas suelen solucionarse bien y en genral todos los de álgebra. Apenas si necesitas 2 o 3 pilas y quizás alguna matriz para mayor comodidad.
La NPI te permite cambiar una expresión tal que (A+B) * 2 en esta otra AB + 2 *  es importante el orden de prioridad de las operaciones, que puedes usar una tabla  o matriz para la misma.

El proceso suele ser simple, pero dependiendo de tu nivel te uedes complicar las barbas porque haces algo que casi se parece pero...
Hay que examinar carácter a carácter la expresión, si es un operando se extrae si es un signo de operación se coloca en la pila de operaciones. La operación en curso la que está en lo alto de la pila, se compara con la anterior usando la tabla de prioridades (la tabla de prioridades es una tabla de elementos tantos como operaciones aritméticas vayas a usar, por fila y los mismos por columnas, se les da un valor en base a su prioridad.

Si tú nivel de basic no es el adecuado quizás te interese más partirte el pecho con 200-2000 líneas de código. Si en cambio se te da bien las mates, quizás prefieras resolverlo usando el método de trasposición, la regla de los trapecios y/o el método de Gauss.
«Ma non troppo»
----> ModoVacaciones = False<----

zero_kool

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: simplificar una fraccion y una raiz en vb
« Respuesta #5 en: Viernes 26 de Septiembre de 2008, 06:20 »
0
Cita de: "m0skit0"
No se calienten. A ver, el tema es que si te ponemos código en VB6 dudo que te funcione en una calculadora programable, porque VB6 no es BASIC tal cual, sino una versión de Microsoft para Windows de 32 bits.


Bueno en realidad me moleste con el usuario de mas arriba , "por favor" si eres tan amable  podrias postear un fragmento de codigo que realice lo que exprese mas arriba " , gracias de antemano, yo me encargo de trasformarlo a lo que necesito.

saludos

zero_kool

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: simplificar una fraccion y una raiz en vb
« Respuesta #6 en: Viernes 26 de Septiembre de 2008, 06:27 »
0
Cita de: "Nebire"
Cita de: "zero_kool"
holas

como podria ser el codigo que me simplifique 2 expresiones en vb

necesito un framento de codigo que haga esto , lo mas sencillo posible , pues es para
implementarlo en una calculadora programable que usa un tipo de basic

Con Notación Polaca Inversa, estos problemas suelen solucionarse bien y en genral todos los de álgebra. Apenas si necesitas 2 o 3 pilas y quizás alguna matriz para mayor comodidad.
La NPI te permite cambiar una expresión tal que (A+B) * 2 en esta otra AB + 2 *  es importante el orden de prioridad de las operaciones, que puedes usar una tabla  o matriz para la misma.

El proceso suele ser simple, pero dependiendo de tu nivel te uedes complicar las barbas porque haces algo que casi se parece pero...
Hay que examinar carácter a carácter la expresión, si es un operando se extrae si es un signo de operación se coloca en la pila de operaciones. La operación en curso la que está en lo alto de la pila, se compara con la anterior usando la tabla de prioridades (la tabla de prioridades es una tabla de elementos tantos como operaciones aritméticas vayas a usar, por fila y los mismos por columnas, se les da un valor en base a su prioridad.

Si tú nivel de basic no es el adecuado quizás te interese más partirte el pecho con 200-2000 líneas de código. Si en cambio se te da bien las mates, quizás prefieras resolverlo usando el método de trasposición, la regla de los trapecios y/o el método de Gauss.


interesante, pero lo que necesito es un resultado donde no se reduzca todo a decimal , sino se muestren los pasos intermedios que llegaron a ese decimal,(no me interesa todo el codigo) solo el que simplifica una raiz  y simplifica una fraccion(   ejem  33/66  =1/2     ,  rc(288) =rc(144*2) =12rc(2) me acomoda el vb para hacer cosas y despues veo como transformarlas .


gracias de antemano si se te ocurre algo

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: simplificar una fraccion y una raiz en vb
« Respuesta #7 en: Viernes 26 de Septiembre de 2008, 10:06 »
0
Para simplificar una fracción, como ya sabrás del colegio, primero hay que hallar el máximo común divisor del numerador y denominador, lo que podemos hacer usando el algoritmo de Euclides:

Código: Visual Basic
  1.  
  2. Public Function MaxComunDivisor(ByVal A As Integer, ByVal B As Integer) As Integer
  3.     If B = 0 Then
  4.         MaxComunDivisor = A
  5.     Else
  6.         MaxComunDivisor = MaxComunDivisor(B, A Mod B)
  7.     End If
  8. End Function
  9.  
  10.  

Una vez hallado el MCD, basta con dividir tanto numerador como denominador por éste.

Para poder sacar factores en una raíz cuadrada, hay que factorizar el parámetro interno. Factorizar es un problema más complejo que el MCD puesto que implica el uso de números primos. Suponiendo rc(A), para factorizar A podemos hacer:

Código: Visual Basic
  1.  
  2. 'Para poder devolver potencias
  3. Private Type tPotencia
  4.     Base As Integer
  5.     Exponente As Integer
  6. End Type
  7.  
  8. 'Lista global de números primos que vamos a necesitar para factorizar
  9. Public ListaPrimos(MaxPrimos) As Integer
  10.  
  11. 'Rellenamos con un elemento inicial superfluo, la factorizacion comienza en el índice 1
  12. Dim Factorizacion(0) As tPotencia
  13.  
  14. Public Sub Factorizar(ByVal A as Integer, ByRef Factorizacion() As tPotencia, ByRef NumFactores As Integer)
  15.     Dim i As Integer
  16.  
  17.     i = 0
  18.     NumFactores = 0
  19.     'Mientras A pueda descomponerse y no hayamos llegado al máximo de los primos
  20.     Do (While A > 1) And (i<=MaxPrimos)
  21.  
  22.         'A es divisible por ListaPrimos(i)
  23.         If (A Mod ListaPrimos(i)) = 0 Then
  24.             A = A / ListaPrimos(i)
  25.             If Factorizacion(NumFactores).Base <> ListaPrimos(i) Then
  26.                 'Nuevo factor
  27.                 NumFactores = NumFactores + 1
  28.                 ReDim Factorizacion(NumFactores)
  29.                 Factorizacion(NumFactores).Base = ListaPrimos(i)
  30.                 Factorizacion(NumFactores).Exponente = 1
  31.             Else
  32.                 'Factor ya existe
  33.                 Factorizacion(NumFactores).Exponente = Factorizacion(NumFactores).Exponente + 1
  34.             End If
  35.  
  36.         'Pasamos al siguiente primo
  37.         Else
  38.             i = i + 1    
  39.         End If
  40.     Loop
  41.    
  42.     If i > MaxPrimos Then
  43.         MsgBox "ListaPrimos insuficiente para factorizar A"
  44.     End If
  45.  
  46. End Sub
  47.  
  48.  

Para poder sacar factores fuera de la raíz cuadrada su exponente debe ser mayor o igual que 2. Lo que se sacaría sería Base ^ (Exponente / 2) y lo que quedaría dentro de la raíz sería Base ^ (Exponente Mod 2), para cada factor.

P.D: Disculpa pero no he tenido tiempo para probar el código. Cualquier problema o duda, me comentas.

zero_kool

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: simplificar una fraccion y una raiz en vb
« Respuesta #8 en: Sábado 27 de Septiembre de 2008, 01:15 »
0
holas , apenas he tenido tiempo de ver el código de la raiz

al tratar de implementarlo me da un error de variable no declarada
o algo se me olvida o hay un bug

no pensé que estuviese tan oxidado


si lo puedes revisar con un ejemplo te lo agradeceria, cuando tengas tiempo, gracias

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: simplificar una fraccion y una raiz en vb
« Respuesta #9 en: Sábado 27 de Septiembre de 2008, 14:44 »
0
Supongo que te referirás a MaxPrimos, que no está declarada.

Código: Visual Basic
  1.  
  2. Global Const MaxPrimos = 20 'Por ejemplo, 20 números primos
  3.  
  4.  

Y aparte te recuerdo que hay que rellenar ListaPrimos() con números primos...

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: simplificar una fraccion y una raiz en vb
« Respuesta #10 en: Domingo 28 de Septiembre de 2008, 21:15 »
0
Cita de: "zero_kool"
 
 lo que necesito es ... que simplifica una raiz  y simplifica una fraccion

Dicho de otro modo: no has entendido nada.
«Ma non troppo»
----> ModoVacaciones = False<----