none
¿Como manejar números complejos? RRS feed

  • Pregunta

  • Como puedo comparar dos numeros complejos para saber si alguno de los dos es menor: 

    if (error < Er || fn(xi1)*fn(xi) == c1){}

    en este caso, "error" y "Er" están declarados como enteros de tipo doble, pero al realizar la operación aparece el error "ningún operador coincide con estos operandos..."

    sábado, 4 de noviembre de 2017 17:34

Respuestas

  • Buenas, 

    He tenido un poco de tiempo a desarollar el tema, y sino quieres crear tu clase propia, puedes escribir un metodo de extensión  a la clase Complex que implementa .Net y hacer la comparacion mediante metodos:

    otInheritable Class ExtensionComplex
    	Private Sub New()
    	End Sub
    	<System.Runtime.CompilerServices.Extension> _
    	Public Shared Function Mayor(left As Complex, right As Complex) As Boolean
    		Return ((left.Real < right.Real) OrElse (left.Imaginary < right.Imaginary))
    	End Function
    	<System.Runtime.CompilerServices.Extension> _
    	Public Shared Function Menor(left As Complex, right As Complex) As Boolean
    		Return ((left.Real > right.Real) OrElse (left.Imaginary > right.Imaginary))
    
    	End Function
    	Public Shared Function MenorIgual(left As Complex, right As Complex) As Boolean
    		Return left.Menor(right) OrElse left = right
    	End Function
    	Public Shared Function MayorIgual(left As Complex, right As Complex) As Boolean
    		Return left.Mayor(right) OrElse left = right
    
    	End Function
    End Class

    Cuando añadas ese código, dentro de los metodos que te desplegara la clase Complex, aparecerán esos cuatro para permitirte operarlos.

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:


    sábado, 4 de noviembre de 2017 20:17

Todas las respuestas

  • Buenas

    Lo que se me ocurre, es que podrias definir tu propia estructura para manejarlos, si implementas los operadores que vayas a usar, puedes controlar como hacer la comparacion del modo que tu quieras

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:



    sábado, 4 de noviembre de 2017 17:57
  • Buenas, 

    He tenido un poco de tiempo a desarollar el tema, y sino quieres crear tu clase propia, puedes escribir un metodo de extensión  a la clase Complex que implementa .Net y hacer la comparacion mediante metodos:

    otInheritable Class ExtensionComplex
    	Private Sub New()
    	End Sub
    	<System.Runtime.CompilerServices.Extension> _
    	Public Shared Function Mayor(left As Complex, right As Complex) As Boolean
    		Return ((left.Real < right.Real) OrElse (left.Imaginary < right.Imaginary))
    	End Function
    	<System.Runtime.CompilerServices.Extension> _
    	Public Shared Function Menor(left As Complex, right As Complex) As Boolean
    		Return ((left.Real > right.Real) OrElse (left.Imaginary > right.Imaginary))
    
    	End Function
    	Public Shared Function MenorIgual(left As Complex, right As Complex) As Boolean
    		Return left.Menor(right) OrElse left = right
    	End Function
    	Public Shared Function MayorIgual(left As Complex, right As Complex) As Boolean
    		Return left.Mayor(right) OrElse left = right
    
    	End Function
    End Class

    Cuando añadas ese código, dentro de los metodos que te desplegara la clase Complex, aparecerán esos cuatro para permitirte operarlos.

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:


    sábado, 4 de noviembre de 2017 20:17