Pi es un número que sirve para muchas cosas de matemáticas que tienen que ver con círculos o esferas. Hoy veremos cómo obtener esa constante en el lenguaje C, porque a veces viene definida pero en otras ocasiones nosotros debemos definirla.
Pi en C
Bueno, esta constante viene definida en el encabezado math.h
pero solamente en algunas implementaciones; es decir no podemos confiar en que esté disponible o definida través de los distintos sistemas operativos.
Utilizando math.h o definiendo la nuestra
Este método es el que recomiendo, pues utilizamos algunas comparaciones en tiempos de precompilación. Lo que hacemos es comprobar si no existe la constante M_PI dentro de la librería math.h; en caso de que no, entonces la definimos utilizando macros.
#include <math.h>
#ifndef MPI
#define MPI 3.14159265358979323846
#endif
Así de simple: de ese modo hacemos que nuestro código sea portable. Por cierto, no sé por qué se llama M_PI, supongo que por Math Pi o algo así. El punto es que lo llamamos así porque puede que ese sea su nombre en el encabezado math.h.
Definiendo pi como constante
También podemos definir a pi como una constante global sin usar define, definiendo su valor globalmente:
double PI = 3.14159265358979323846;
Más tarde podemos usarla como cualquier otra variable (o mejor dicho, constante).
Pi en C utilizando coseno inverso
No sé mucho de matemáticas pero sé que el valor de Pi se puede obtener al calcular el coseno inverso de -1; por lo tanto podemos utilizar la función del coseno inverso (llamada acos
) y recuperar el valor que regresa al calcular el coseno de -1.
<span class="crayon-t">double</span><span class="crayon-h"> </span><span class="crayon-v">PI</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">acos</span><span class="crayon-sy">(</span><span class="crayon-o">-</span><span class="crayon-cn">1.0</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span>
No olvides que para que la función esté disponible debes incluir a math.h.
Sobre la precisión
Aunque no definimos a PI con mucha precisión (pusimos 20 decimales) esto no hará que nuestros cálculos fallen.
De hecho se dice que con una precisión de 39 decimales se podría calcular la circunferencia de todo el universo con una precisión menor al diámetro de un átomo de hidrógeno; así que con 20 está bien para nosotros.
Conclusión
Estas son las maneras de definir al número Pi en c. Recordemos que nunca debemos confiar en que las constantes estarán definidas.
Las formas que usemos dependerán de nuestros programas; si es uno simple entonces lo definimos como una constante dentro de nuestras funciones; si no, tal vez como una constante global en un encabezado.
Pingback: Algoritmo para calcular el volumen de una esfera en C - Parzibyte's blog