Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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

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


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