Codificación aprenderaprogramar.com: CU00520F
FUNCIONES MATEMÁTICAS EN LENGUAJE C
El lenguaje C nos facilita una biblioteca de funciones matemáticas entre las que se incluyen las de uso más habitual como pueden ser: valor absoluto, potencia de un número elevado a otro, raíz cuadrada, funciones trigonométricas (seno, coseno, tangente, etc.), redondeo, exponenciación, logaritmo decimal, logaritmo neperiano y otras.
Para utilizar las funciones matemáticas indicadas a continuación es necesario incluir en la cabecera de nuestros programas la siguiente declaración: #include <math.h>
El resultado de aplicar una función matemática es un valor numérico de tipo double (aunque el resultado puede ser un valor entero, internamente C lo considerará como un valor tipo decimal de doble precisión o tipo double)
Las funciones disponibles de uso más habitual son las siguientes:
Funciones Matemáticas |
Significado |
Funciones Matemáticas |
Significado |
fabs (x) |
Valor absoluto de x |
ceil (x) |
Redondeo entero superior |
pow (x, y) |
Potencia de x elevado a y |
floor (x) |
Redondeo entero inferior |
sqrt (x) |
Raíz cuadrada de x |
exp (x) |
Exponenciación (número e elevado a x, siendo e = 2.71828) |
sin (x) |
Seno de x |
log (x) |
Logaritmo neperiano de x |
cos (x) |
Coseno de x |
log10 (x) |
Logaritmo decimal de x |
tan (x) |
Tangente de x |
atan (x) |
Arcotangente de x |
La biblioteca de funciones matemáticas de C es más amplia de lo que hemos expuesto (por ejemplo se dispone de más funciones trigonométricas y de otros tipos que las aquí indicadas), pero con estas funciones quedan cubiertos los cálculos más habituales.
Las funciones relacionadas con ángulos trabajan en radianes. Por tanto para operar con grados habremos de realizar la conversión oportuna.
Vamos a comentar algunas funciones menos habituales. Respecto a ceil y floor, se trata de funciones que devuelven el redondeo entero de un número. La diferencia entre ambas es que ceil redondea al entero superior más próximo y floor redondea al entero inferior más próximo. Tener en cuenta que el entero superior más próximo a un número negativo como – 5.75 es – 5 mientras que el entero superior más próximo a un número positivo como 5.75 es 6. Recordar que aunque estas funciones devuelven enteros, internamente el tipo de datos devuelto por estas funciones en C es double. Si se aplican estas funciones a un número entero, obtenemos ese mismo número pero con formato double.
C incorpora funciones que permiten generar números aleatorios así como funciones de fecha y hora. Por su importancia y extensión no las trataremos ahora.
Escribe y ejecuta el código mostrado a continuación. Crea también nuevas variables y operaciones para comprobar el uso de las funciones matemáticas en C.
#include <stdio.h> #include <stdlib.h> #include <math.h> // Ejemplo aprenderaprogramar.com int main() { double M = -5.75; int N = 7; double Pi = 3.14159; //Equivale a 180 grados sexagesimales printf ("El valor absolucto de M es %g y el de N es %g\n", fabs(M), fabs(N)); printf ("El coseno de Pi es %g\n", cos(Pi)); printf ("2 elevado al cubo vale %g\n", pow(2, 3)); printf ("El numero pi redondeado con ceil vale %g\n", ceil(Pi)); printf ("M redondeado con ceil vale %g\n", ceil(M)); printf ("El numero pi redondeado con floor vale %g\n", floor(Pi)); printf ("M redondeado con floor vale %g\n", floor(M)); printf ("-M redondeado con floor vale %g\n", floor(-M)); printf ("El numero e vale %g\n", exp(1)); printf ("El logaritmo neperiano de e vale %g\n", log(exp(1))); printf ("El logaritmo decimal de 100 vale %g\n", log10(100)); printf ("La raiz cuadrada de 81 vale %g\n", sqrt(81)); return 0; } |
|
EJERCICIO
Tomando como punto de partida el código que hemos visto de ejemplo de uso de funciones matemáticas, define un programa análogo que realice lo siguiente. En primer lugar define una variable de tipo double de nombre num1 y valor 15.75, una variable de tipo entero de nombre num2 y valor 45, y una variable de tipo double a la que denominaremos Pi, con el valor del número Pi expresado con cinco decimales. A continuación muestra el contenido de cada variable por pantalla. A continuación muestra por pantalla el resultado de multiplicar num1 por -1. A continuación muestra por pantalla el resultado de aplicarle la función valor absoluto a la multiplicación de num1 por -1. A continuación muestra el valor en radianes de la variable num2. Para ello debes realizar la operación matemática oportuna, si no recuerdas cómo hacerlo consulta en internet. A continuación muestra por pantalla el valor del seno del ángulo anterior, recuerda que debes expresarlo en radianes. A continuación muestra por pantalla el valor del coseno del ángulo anterior, recuerda que debes expresarlo en radianes. A continuación muestra por pantalla el redondeo al entero superior de num1. Finalmente muestra por pantalla el redondeo al entero inferior de num1.
Responde a las siguientes cuestiones:
a) ¿Cuál es el código del programa que has definido?
b) ¿Cuáles son los resultados que obtienes por pantalla al ejecutar el programa?
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.