Ir para conteúdo
Fórum Script Brasil
  • 0

Cálculo do perímetro de triângulo


asantos38

Pergunta

Programa que calcula o perímetro de triângulo.

Recebe como dados de entrada as coordenadas dos vértices do triângulo e retorna o perímetro na unidade de medida escolhida.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//definição do tipo Ponto.
struct Ponto{
    float x;
    float y;
};

typedef struct Ponto PONTO;

//definição da estrutura Triangulo com vértices do tipo PONTO.
struct Triangulo{
    //Vértices do triângulo.
    PONTO p[3];
};

typedef struct Triangulo TRIANGULO;

//definição da função gerarTriangulo, que retorna uma estrutura do tipo
//TRIANGULO.
TRIANGULO gerarTriangulo(){
    //variáveis.
    TRIANGULO tr;
    int contador;

    //Limpa a tela.
    system("cls");

    //Entrada das coordenadas dos vértices do triângulo.
    for(contador = 0; contador < 3; contador++){
        printf("Obtendo p%i:\n", contador + 1);

        printf("Abscissa: ");
        scanf("%f%*c", &tr.p[contador].x);

        printf("Ordenada: ");
        scanf("%f%*c", &tr.p[contador].y);
    }

    return tr;
}

float perimetro(TRIANGULO t){
    //declaração de variáveis.
    float d1, d2, d3;

    //Cálculo do tamanho dos lados do triângulo.
    d1 = sqrt(pow(t.p[0].x - t.p[1].x, 2) + pow(t.p[0].y - t.p[1].y, 2));

    d2 = sqrt(pow(t.p[0].x - t.p[2].x, 2) + pow(t.p[0].y - t.p[2].y, 2));

    d3 = sqrt(pow(t.p[1].x - t.p[2].x, 2) + pow(t.p[1].y - t.p[2].y, 2));

    //Retorno da soma dos lados que é o perímetro do triângulo.
    return d1 + d2 + d3;
}

int main(){
    //Declaração de variáveis.
    char unidade_medida;

    system("cls");

    //Solicita um tipo de unidade de medida até que o usuário escolha uma das opções
    //válidas.
    do{
        printf("Escolha a unidade de medida: \n");

        printf("c - centimetros, m - metros: ");

        scanf("%c%*c", &unidade_medida);

    }while(unidade_medida != 'c' && unidade_medida != 'm');

    //Exibe o resultado de acordo com a unidade de medida escolhida.
    //Considera até três casas decimais.
    switch(unidade_medida){
        case 'c':
                printf("O perimetro do triangulo e: %.3f cm.\n", perimetro(gerarTriangulo()));
                break;
        case 'm':
                printf("O perimetro do triangulo e: %.3f m.\n", perimetro(gerarTriangulo()));
    }

    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...