Función de techo en lenguaje C

Función de techo en lenguaje C
El lenguaje C proporciona una extensa biblioteca de funciones para resolver operaciones matemáticas de los más básicos a los más complejos. En ciertos casos, es más conveniente trabajar con enteros en los argumentos de entrada de estas funciones o con sus resultados, ya sea porque nuestro programa solo debería funcionar con estas cantidades o porque sus valores fraccionales no representarían una fracción significativa en el resultado final de la operacion.

Para estas operaciones de redondeo, el lenguaje C proporciona un conjunto de funciones incluidas en el "matemáticas" biblioteca. Para encontrar una variable al entero más cercano, está el fortificar techo() función. Para redondear al entero más cercano, está la función de piso ().

En esto Pista de Linux Artículo, aprenderá todo sobre el uso de la función para redondear los valores fraccionales al número entero más cercano. Para ayudarlo a comprender mejor y dominar esta función, creamos ejemplos prácticos con fragmentos e imágenes de código que muestran su uso con diferentes tipos de variables de entrada. También le damos una descripción teórica de esta función, su sintaxis, argumentos de entrada y salida, y los datos aceptados en ella.

Sintaxis de la función CEIL () en el lenguaje C

techo doble (doble x)

Ceil () Descripción de la función en el idioma C

Esta función redondea al siguiente valor entero más grande de la variable numérica que se especifica en sus argumentos de entrada. El fortificar techo() la función es una de un conjunto de funciones proporcionadas por el "matemáticas" biblioteca y se define en la "matemática.encabezado. Para usar esta función, debemos incluirla en nuestro ".C" Archivo de la siguiente manera:

#incluir

Una vez las "matemáticas.Hy "está incluido el encabezado, podemos usar CEIL () para redondear o el piso () para redondear, así como todas las funciones en las bibliotecas de matemáticas. Para obtener el redondeo de "x", debe llamar a esta función especificando el nombre de la variable en su argumento de entrada. El fortificar techo() Devuelve el resultado en "A".

Ejemplo: cómo redondear un entero fraccional con la función CEIL () en Linux GCC

En este ejemplo, veremos cómo redondear un valor fraccional al siguiente entero más grande utilizando la función de techo en GCC.

El siguiente fragmento de código muestra cómo usar el fortificar techo() función para obtener el redondeo de doble "x" que tiene un valor asignado de 3.1416. Luego, la función printf () se usa para generar el resultado como "a" en la consola de comando.

#incluir
#incluir
vacío principal ()

doble x = 3.1416;
doble a;
a = techo (x);
printf ("El redondeo de x es: %f \ n", a);
devolver;

En la siguiente imagen, vemos el resultado en la consola de comando. En este caso, es el redondeo de 3.1416 es 4.00000:

Problemas comunes con las funciones de redondeo de techo () y piso () y cómo resolverlas

Cuando usamos las funciones y compilamos nuestro código, a menudo sucede que la compilación ofrece el siguiente error:

"principal.C: (.texto+0x30): referencia indefinida a 'techo' "

Esto nos hace buscar errores de sintaxis o variables indefinidas en nuestro ".C "o".H "Código Dado que todo indica que nuestro problema está ahí. Pero esto conduce a una pérdida de tiempo valioso ya que nuestro problema radica en la vinculación de las bibliotecas y la compatibilidad de datos de estas funciones.

Para los programadores a los que les gusta saber el motivo de un problema y no solo resolverlo, explicaremos este error paso a paso para que la programación funcione más fluida y evite cargar bibliotecas innecesarias para nuestro código.

Para explicar esto, compilamos el código del ejemplo anterior de la siguiente manera. En la siguiente figura, vemos la compilación de nuestro código y el error al que se menciona en esta sección:

Esto se debe a que desde C99, GCC divide sus bibliotecas en dos partes - libc y libm. Aunque la biblioteca a la que nos referimos en nuestro código se encuentra en ambos, los tipos de datos que estas funciones aceptan en cada una de sus versiones son diferentes, y esa es la fuente del problema. Si el fortificar techo() La función se llama con un int como entrada, el error desaparece, aunque se produce el redondeo.

Estos problemas se solucionan en el momento de la compilación invocando el libm biblioteca en la línea de comando que usamos para compilar. El siguiente es el camino:

Documentos GCC/Principal.c -lm -o c

Conclusión

En esto Pista de Linux Artículo, le mostramos cómo usar el fortificar techo() función para redondear los valores fraccionales al entero más cercano. Explicamos paso a paso sobre cómo cargar la biblioteca de "matemáticas" para usar esta función. También le mostramos uno de los errores más comunes al usar esta función y cómo solucionarla para obtener una tarea de programación suave. Esperamos que haya encontrado útil este artículo de lenguaje C. Ver otro Pista de Linux artículos para más consejos e información.