Funcion de Expresion logica.

Iniciado por mdg, 21 Enero 2007, 17:33 PM

0 Miembros y 2 Visitantes están viendo este tema.

mdg

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...

~~

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

soplo

A ver

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


Function ObtenerResultado()
' aquí hacer el cálculo que sea
El resultado dejarlo en ObtenerResultado
ObtenerResultado=ValorObtenido
end function
Callar es asentir ¡No te dejes llevar!

Syphroot

Supongo quieres una funcion que se definiria algo asi:


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:




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:



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



El operando lo pones entre comillas y listo...

saludos

mdg

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.

Syphroot

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

~~

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?

mdg

Gracias por sus respuestas, pueden cerrar el asunto.