TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: CsDFiV en 19 de Abril de 2009, 17:04:07

Título: Valor Absoluto en C18
Publicado por: CsDFiV en 19 de Abril de 2009, 17:04:07
Hola, necesito la ayuda de ustedes nuevamente. Alguien me podria decir como debo declarar una funcion o como debo hacer para que una operacion matematica hecha en C18 tome el valor absoluto del resultado. es decir supongamos lo siguiente

X - Y = Z

Z será positivo si X > Y
Z será 0 si X == Y
Z sera negativo si X < Y

entonces como no puedo tomar valores negativos como puedo hacer para que el valor que devuelva Z sea el valor absoluto y de esa manera nunca sea negativo?

Gracias!
Título: Re: Valor Absoluto en C18
Publicado por: sycho en 19 de Abril de 2009, 19:48:18
Citar
fabs
Function:     Compute the absolute value.
Include:      math.h
Prototype:    float fabs( float x );
Remarks:      For floating point arguments that are zeroes and infinities, the return
              value is the argument with the sign bit cleared.
Return Value: The absolute value of x.
File Name:    fabs.c

Hay que buscar un poco más en la documentación!  :)
Título: Re: Valor Absoluto en C18
Publicado por: gera en 19 de Abril de 2009, 19:53:21
depende del tipo de variable q estes usando. En el caso de q sea flotante, usas fabs como bien dijo sycho. En caso contrario tendras q castear la variable o usar directamente la funcion abs(). Y si no, vos mismo podes programar una pequeña funcion q haga lo q decis... si es positivo q quede como esta, y si es negativo q lo multiplique por -1 y listo.
saludos!