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 L. 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:
X=\frac{3 L^{2} \sqrt{3}}{2}
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 L 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 L. O protótipo é
void \(calcula_hexagono\)(float L, float *area, float *perimetro);
Para a área usamos a fórmula
\text{área} = \frac{3\,L^{2}\,\sqrt{3}}{2}á
e para o perímetro
\text{perímetro} = 6\,L.í
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:
  1. Calcular \text{área} = \tfrac{3\,L^{2}\,\sqrt{3}}{2}á usando sqrt(3.0f) de <math.h>.
  2. Calcular \text{perímetro} = 6\,Lí.
  3. Atribuir *area e *perimetro com esses resultados.

Passo 3

Escrevemos a função main que:
  1. Declara variável L para o lado e variáveis area e perimetro.
  2. Lê de stdin o valor de L com scanf.
  3. Chama calcula_hexagono(L, &area, &perimetro).
  4. 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;
}

Exercícios relacionados