Crie um programa para calcular a área e o perímetro de um hexágono. O seu programa deve implementar uma sub-rotina chamada calcula_hexagono que calcule a área e o perímetro de um hexágono regular de lado
. A função deve obedecer o seguinte protótipo: void calcula_hexagono(float L, float *area, float *perimetro);
Lembrando que a área e o perímetro de um hexágono regular são dados por:
Em seguida crie a função principal do programa e utilize a sub-rotina calcula_hexagono para calcular a área e o perímetro de um hexágono de lado
informado pelo usuário.
Passo 1
O enunciado pede um programa em C que tenha uma sub-rotina para calcular a área e o perímetro de um hexágono regular de lado
. O protótipo é
void \(calcula_hexagono\)(float L, float *area, float *perimetro);
Para a área usamos a fórmula
e para o perímetro
Também precisamos usar passagem de parâmetros por referência (ponteiros) para retornar os dois valores.
Passo 2
Implementamos a sub-rotina. Dentro de
calcula_hexagono
iremos:- Calcular
usando sqrt(3.0f)
de<math.h>
. - Calcular
. - Atribuir
*area
e*perimetro
com esses resultados.
Passo 3
Escrevemos a função
main
que:- Declara variável
L
para o lado e variáveisarea
eperimetro
. - Lê de
stdin
o valor deL
comscanf
. - Chama
calcula_hexagono(L, &area, &perimetro)
. - Imprime os valores calculados com
printf
, formatando com duas casas decimais, por exemplo.
Passo 4
Juntando tudo, temos o programa completo em C.
Resposta
#include <stdio.h>
#include <math.h>
void \(calcula_hexagono\)(float L, float *area, float *perimetro) {
*area = (3.0f * L * L * sqrtf(3.0f)) / 2.0f;
*perimetro \(=6.0\)f * L;
}
int main() {
float L, area, perimetro;
printf("Informe o lado do hexágono: ");
if (scanf("%f", &L) !\(=1\)) {
printf("Entrada inválida.
");
return 1;
}
\(calcula_hexagono\)(L, &area, &perimetro);
printf("Área do hexágono: %.2f
", area);
printf("Perímetro do hexágono: %.2f
", perimetro);
return 0;
}