Imprimir el Perímetro
En este paso final, mejorarás el programa de cálculo del perímetro de un polígono añadiendo una salida formateada y manejo de errores para la validación de la entrada.
Abre el archivo existente:
cd ~/project
nano polygon_perimeter.c
Actualiza el código con una validación de entrada mejorada y una salida formateada:
#include <stdio.h>
#define MAX_SIDES 10
#define MIN_SIDES 3
int main() {
float sides[MAX_SIDES];
int num_sides;
float perimeter = 0.0;
// Solicita al usuario el número de lados con validación de entrada
do {
printf("Introduce el número de lados del polígono (entre %d y %d): ",
MIN_SIDES, MAX_SIDES);
scanf("%d", &num_sides);
if (num_sides < MIN_SIDES || num_sides > MAX_SIDES) {
printf("Número de lados inválido. Inténtalo de nuevo.\n");
}
} while (num_sides < MIN_SIDES || num_sides > MAX_SIDES);
// Introduce las longitudes de los lados con validación
printf("Introduce las longitudes de los lados:\n");
for (int i = 0; i < num_sides; i++) {
float side_length;
do {
printf("Longitud del lado %d (debe ser positiva): ", i + 1);
scanf("%f", &side_length);
if (side_length <= 0) {
printf("Longitud de lado inválida. Introduce un valor positivo.\n");
} else {
sides[i] = side_length;
break;
}
} while (1);
}
// Calcula el perímetro sumando todos los lados
for (int i = 0; i < num_sides; i++) {
perimeter += sides[i];
}
// Salida formateada de los resultados
printf("\n--- Cálculo del Perímetro del Polígono ---\n");
printf("Número de Lados: %d\n", num_sides);
printf("\nLongitudes de los Lados:\n");
for (int i = 0; i < num_sides; i++) {
printf("Lado %d: %.2f\n", i + 1, sides[i]);
}
printf("\nCálculo del Perímetro:\n");
for (int i = 0; i < num_sides; i++) {
printf("%s%.2f", (i > 0) ? " + " : "", sides[i]);
}
printf(" = %.2f\n", perimeter);
printf("\nPerímetro Final: %.2f\n", perimeter);
return 0;
}
Compila el programa actualizado:
gcc -o polygon_perimeter polygon_perimeter.c
Ejecuta el programa:
./polygon_perimeter
Salida de ejemplo:
Introduce el número de lados del polígono (entre 3 y 10): 4
Introduce las longitudes de los lados:
Longitud del lado 1 (debe ser positiva): 5.5
Longitud del lado 2 (debe ser positiva): 6.2
Longitud del lado 3 (debe ser positiva): 4.3
Longitud del lado 4 (debe ser positiva): 7.1
--- Cálculo del Perímetro del Polígono ---
Número de Lados: 4
Longitudes de los Lados:
Lado 1: 5.50
Lado 2: 6.20
Lado 3: 4.30
Lado 4: 7.10
Cálculo del Perímetro:
5.50 + 6.20 + 4.30 + 7.10 = 23.10
Perímetro Final: 23.10
Mejoras clave en este paso:
- Se añadió validación de entrada para el número de lados y las longitudes de los lados.
- Se creó una salida más detallada y formateada.
- Se incluyó una visualización paso a paso del cálculo del perímetro.
- Se aseguraron las restricciones mínimas y máximas de los lados.