Imprimir o Perímetro
Neste passo final, irá melhorar o programa de cálculo do perímetro do polígono adicionando saída formatada e tratamento de erros para validação de entrada.
Abra o ficheiro existente:
cd ~/project
nano polygon_perimeter.c
Atualize o código com validação de entrada melhorada e saída formatada:
#include <stdio.h>
#define MAX_SIDES 10
#define MIN_SIDES 3
int main() {
float sides[MAX_SIDES];
int num_sides;
float perimeter = 0.0;
// Solicitar ao utilizador o número de lados com validação de entrada
do {
printf("Introduza o número de lados do polígono (entre %d e %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. Por favor, tente novamente.\n");
}
} while (num_sides < MIN_SIDES || num_sides > MAX_SIDES);
// Introduzir os comprimentos dos lados com validação
printf("Introduza os comprimentos dos lados:\n");
for (int i = 0; i < num_sides; i++) {
float side_length;
do {
printf("Comprimento do lado %d (deve ser positivo): ", i + 1);
scanf("%f", &side_length);
if (side_length <= 0) {
printf("Comprimento do lado inválido. Por favor, introduza um valor positivo.\n");
} else {
sides[i] = side_length;
break;
}
} while (1);
}
// Calcular o perímetro somando todos os lados
for (int i = 0; i < num_sides; i++) {
perimeter += sides[i];
}
// Saída formatada dos resultados
printf("\n--- Cálculo do Perímetro do Polígono ---\n");
printf("Número de Lados: %d\n", num_sides);
printf("\nComprimentos dos Lados:\n");
for (int i = 0; i < num_sides; i++) {
printf("Lado %d: %.2f\n", i + 1, sides[i]);
}
printf("\nCálculo do 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;
}
Compile o programa atualizado:
gcc -o polygon_perimeter polygon_perimeter.c
Execute o programa:
./polygon_perimeter
Exemplo de saída:
Introduza o número de lados do polígono (entre 3 e 10): 4
Introduza os comprimentos dos lados:
Comprimento do lado 1 (deve ser positivo): 5.5
Comprimento do lado 2 (deve ser positivo): 6.2
Comprimento do lado 3 (deve ser positivo): 4.3
Comprimento do lado 4 (deve ser positivo): 7.1
--- Cálculo do Perímetro do Polígono ---
Número de Lados: 4
Comprimentos dos Lados:
Lado 1: 5.50
Lado 2: 6.20
Lado 3: 4.30
Lado 4: 7.10
Cálculo do Perímetro:
5.50 + 6.20 + 4.30 + 7.10 = 23.10
Perímetro Final: 23.10
Melhorias chave neste passo:
- Adicionada validação de entrada para o número de lados e comprimentos dos lados
- Criada uma saída mais detalhada e formatada
- Incluída uma exibição passo a passo do cálculo do perímetro
- Assegurado os limites mínimo e máximo de lados