Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: mdg en 21 Enero 2007, 17:33 pm



Título: Funcion de Expresion logica.
Publicado por: mdg en 21 Enero 2007, 17:33 pm
Buenas colegas nuevamente!

De que manera puedo crear una funcion en la que yo pueda pasarle un operador por ejemplo:


Txt= LogicaSI(10,>,9,1)

como Resultado 1

Me imagino que no debe ser de esta manera pero es como se me ocurre explicarles para que puedan ayudarme.

Gracias de antemano por su tiempo...


Título: Re: Funcion de Expresion logica.
Publicado por: ~~ en 21 Enero 2007, 18:41 pm
Pero exactamente q kieres hacer?? una funcion q te diga si un numero es mayor q otro o que?
explicate un poco mejor please

1S4ludo


Título: Re: Funcion de Expresion logica.
Publicado por: soplo en 21 Enero 2007, 18:53 pm
A ver

Código:
sub Main()
Dim Sw as boolean
Sw=ObtenerResultado()
if sw then
   label1="obtuviste un true"
else
   label1="obtuviste un false"
endif
end sub

Código:
Function ObtenerResultado()
' aquí hacer el cálculo que sea
El resultado dejarlo en ObtenerResultado
ObtenerResultado=ValorObtenido
end function


Título: Re: Funcion de Expresion logica.
Publicado por: Syphroot en 22 Enero 2007, 02:06 am
Supongo quieres una funcion que se definiria algo asi:

Código:
Function LogicaSI(Valor1 as Integer, Operacion as String, Valor2 as Integer, Resultado as Integer)

LogicaSI(10,>,9,1)

Lo que pienso que quieres es que tome el "10" haga la operacion ">" mayor que con el segundo valor "9" y si es verdadero devuelva el valor que le pones al cuarto parametro... si es asi haz algo asi:


Código:

Function LogicaSI(Valor1 as Integer, Operacion as String, Valor2 as Integer, Resultado as Integer)

   Select Case Operacion
   
      Case ">"
           
           If Valor1 > Valor 2 Then LogicaSI = Resultado
       
      Case "<"
           
           If Valor1 < Valor 2 Then LogicaSI = Resultado

      Case "="

           If Valor1 = Valor 2 Then LogicaSI = Resultado

      Case "<>"

           If Valor1 <> Valor 2 Then LogicaSI = Resultado

     'Como ves, esto da para mucho, por ejemplo:

      Case ">="

           If Valor1 >= Valor 2 Then LogicaSI = Resultado

      Case "<="

           If Valor1 <= Valor 2 Then LogicaSI = Resultado

   End Select

End Function

Y para hacer la llamada a la funcion con los valores que tienes y ponerlos en un TextBox asi:

Código:

Txt.Text = CStr( LogicaSI(10, ">", 9, 1) )


El operando lo pones entre comillas y listo...

saludos


Título: Re: Funcion de Expresion logica.
Publicado por: mdg en 22 Enero 2007, 04:19 am
Hola! gracias a todos por responder:

Syphroot , me resulto mas practica tu solucion, solo me queda una pregunta, es posible de alguna manera pasar ese operador pero sin comillas solo >, de no ser posible, consideren el asunto re-suelto.


Título: Re: Funcion de Expresion logica.
Publicado por: Syphroot en 22 Enero 2007, 17:29 pm
No es posible, de hecho creo que en ningun lenguaje porque son operaciones de comparacion y estos caracteres tienen significados especiales para cada lenguaje...
 por cierto, hay una errata (aunque asi funciona) pero para que este mejor especificado declara la funcion asi:

Function LogicaSI(Valor1 as Integer, Operacion as String, Valor2 as Integer, Resultado as Integer) as Integer

o el tipo que quieras devolver...

saludos


Título: Re: Funcion de Expresion logica.
Publicado por: ~~ en 22 Enero 2007, 18:00 pm
Yo creo q si que se podria... cojes los datos por ej 15 < 2 y haces un split por el espacio, y luego ya comparas el simbolo
Lo entiendes no?


Título: Re: Funcion de Expresion logica.
Publicado por: mdg en 23 Enero 2007, 05:49 am
Gracias por sus respuestas, pueden cerrar el asunto.