Introducción
En este laboratorio, aprenderás a realizar operaciones de redondeo en programación C. Empezarás declarando variables de punto flotante, luego explorarás el uso de diversas funciones de redondeo, como round(), floor(), y ceil(), para manipular los valores. Finalmente, imprimirás los resultados redondeados para observar los diferentes comportamientos de redondeo.
Este laboratorio cubre las habilidades fundamentales de operaciones aritméticas básicas en C, proporcionando una base sólida para trabajar con números de punto flotante y sus técnicas de redondeo.
Declarar Variables de Punto Flotante
En este paso, aprenderás a declarar e inicializar variables de punto flotante en C, esenciales para realizar operaciones de redondeo.
Primero, crearemos un nuevo archivo C para trabajar con variables de punto flotante:
cd ~/project
nano rounding.c
Ahora, agrega el siguiente código al archivo:
#include <stdio.h>
int main() {
// Declarar variables de punto flotante
float num1 = 3.7;
double num2 = 4.2;
// Imprimir los valores originales
printf("Valor flotante original: %.1f\n", num1);
printf("Valor doble original: %.1f\n", num2);
return 0;
}
Compila y ejecuta el programa:
gcc rounding.c -o rounding
./rounding
Salida de ejemplo:
Valor flotante original: 3.7
Valor doble original: 4.2
Desglose del código:
- Usamos
floatpara números de punto flotante de precisión simple. - Usamos
doublepara números de punto flotante de doble precisión. - El especificador de formato
%.1fmuestra el número con un decimal. num1ynum2se inicializan con valores decimales.
Usar Funciones (p. ej., round, floor, ceil) para Redondear Valores
En este paso, aprenderás a usar funciones de redondeo en C para manipular números de punto flotante. Modificaremos el archivo rounding.c anterior para demostrar diferentes técnicas de redondeo.
Abre el archivo existente:
cd ~/project
nano rounding.c
Reemplaza el contenido anterior con el siguiente código:
#include <stdio.h>
#include <math.h>
int main() {
// Declarar variables de punto flotante
float num1 = 3.7;
double num2 = 4.2;
// Redondear valores usando diferentes funciones
printf("Valores originales:\n");
printf("num1: %.1f, num2: %.1f\n\n", num1, num2);
// Usando la función round()
printf("Función round():\n");
printf("round(num1): %.0f\n", round(num1));
printf("round(num2): %.0f\n\n", round(num2));
// Usando la función floor()
printf("Función floor():\n");
printf("floor(num1): %.0f\n", floor(num1));
printf("floor(num2): %.0f\n\n", floor(num2));
// Usando la función ceil()
printf("Función ceil():\n");
printf("ceil(num1): %.0f\n", ceil(num1));
printf("ceil(num2): %.0f\n", ceil(num2));
return 0;
}
Compila el programa con la biblioteca matemática:
gcc rounding.c -o rounding -lm
./rounding
Salida de ejemplo:
Valores originales:
num1: 3.7, num2: 4.2
Función round():
round(num1): 4
round(num2): 4
Función floor():
floor(num1): 3
floor(num2): 4
Función ceil():
ceil(num1): 4
ceil(num2): 5
Puntos clave sobre las funciones de redondeo:
round(): Redondea al entero más cercano.floor(): Redondea hacia abajo al entero más cercano.ceil(): Redondea hacia arriba al entero más cercano.- El flag
-lmse utiliza para enlazar la biblioteca matemática al compilar. - El especificador de formato
%.0fmuestra enteros sin decimales.
Imprimir Resultados Redondeados
En este paso, aprenderás a formatear e imprimir resultados redondeados con diferentes niveles de precisión y opciones de formato.
Abre el archivo existente:
cd ~/project
nano rounding.c
Actualiza el código para demostrar varias técnicas de impresión:
#include <stdio.h>
#include <math.h>
int main() {
// Declarar variables de punto flotante
float num1 = 3.7;
double num2 = 4.2;
// Demostración de redondeo con diferentes formatos de impresión
printf("Demostración de Redondeo:\n");
// Imprimir valores redondeados con diferente precisión
printf("1. Valores redondeados:\n");
printf(" round(num1) = %.0f\n", round(num1));
printf(" round(num2) = %.0f\n\n", round(num2));
// Imprimir con ancho de campo y precisión
printf("2. Valores redondeados formateados:\n");
printf(" num1 redondeado con ancho: %5.1f\n", round(num1));
printf(" num2 redondeado con ancho: %5.1f\n\n", round(num2));
// Imprimir representaciones enteras y de punto flotante
printf("3. Representaciones enteras y de punto flotante:\n");
printf(" num1 como entero: %d\n", (int)round(num1));
printf(" num2 como entero: %d\n", (int)round(num2));
return 0;
}
Compila y ejecuta el programa:
gcc rounding.c -o rounding -lm
./rounding
Salida de ejemplo:
Demostración de Redondeo:
1. Valores redondeados:
round(num1) = 4
round(num2) = 4
2. Valores redondeados formateados:
num1 redondeado con ancho: 4.0
num2 redondeado con ancho: 4.0
3. Representaciones enteras y de punto flotante:
num1 como entero: 4
num2 como entero: 4
Técnicas clave de impresión:
%.0f: Elimina los decimales.%5.1f: Establece el ancho de campo y la precisión.- El casting a
(int)convierte a entero. - Diferentes especificadores de formato controlan la apariencia de la salida.
Resumen
En este laboratorio, aprendiste a declarar variables de punto flotante, incluyendo float y double, y cómo utilizar diversas funciones de redondeo como round(), floor(), y ceil() para manipular estos valores. Imprimiste los valores originales y luego utilizaste las funciones de redondeo para mostrar los resultados redondeados. Esto te permitió comprender los diferentes comportamientos de estas funciones y cómo se pueden aplicar para redondear números hacia arriba, hacia abajo o al entero más cercano.



