Desenvolva um programa em C++ que leia 3 coordenadas bi-dimensionais ( x, y ), e calcule:
  • o valor dos 3 lados (L1, L2, L3) do triângulo (ponto 1 terá seu lado oposto ao ângulo). O lado pode ser calculado pela Distancia Euclideana.
  • o valor dos 3 ângulos (a1, a2, a3) (angulo 1 será sempre o do ponto 1 )
  • a área A do triângulo formado pode ser calculado pelo teorema de Herón;

Passo 1

O enunciado pede um programa em C ++ que leia três pontos no plano, calcule os comprimentos dos lados do triângulo formado por esses pontos, os ângulos internos correspondentes e, por fim, a área usando o teorema de Herón. O que vamos precisar:
  • Distância euclidiana entre dois pontos para os lados.
  • Lei dos cossenos para os ângulos.
  • Fórmula de Herón para a área.

Passo 2

Calcular os comprimentos L1,L2,L3. Sejam os pontos (x1,y1), (x2,y2), (x3,y3). O lado L1 é o oposto ao ponto 1, ou seja, a distância entre os pontos 2 e 3:
L1 = raiz(x3 - x2)^2 + (y3 - y2)^2,
de modo análogo
L2 = raiz(x3 - x1)^2 + (y3 - y1)^2, L3 = raiz(x2 - x1)^2 + (y2 - y1)^2

Passo 3

Calcular os ângulos a1,a2,a3 pela lei dos cossenos. Por exemplo, o ângulo em (x1,y1) (ângulo 1) satisfaz
cos(a1) = L2^2 + L3^2 - L1^22,L2,L3,
logo
a1 = arccos!l(L2^2 + L3^2 - L1^22,L2,L3r)times180pi
Os outros ângulos vêm trocando índices de modo similar.

Passo 4

Calcular a área A pelo teorema de Herón. Primeiro o semiperímetro
s = L1 + L2 + L32,
depois
A = raizs,(s - L1),(s - L2),(s - L3)

Passo 5

Implementar o programa em C ++:
  • Ler seis valores de ponto flutuante para as coordenadas.
  • Fazer as contas acima usando funções de <cmath>.
  • Converter radianos em graus multiplicando por tfrac180pi.
  • Imprimir os resultados.

Resposta

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main() {
    double x1, y1, x2, y2, x3, y3;
    // Leitura das coordenadas
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;

    // Cálculo dos lados
    double L1 = sqrt((x3 - x2)*(x3 - x2) + (y3 - y2)*(y3 - y2));
    double L2 = sqrt((x3 - x1)*(x3 - x1) + (y3 - y1)*(y3 - y1));
    double L3 = sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1));

    // Constante PI
    const double PI = acos(-1.0);

    // Lei dos cossenos para os ângulos em graus
    double a1 = acos((L2*L2 + L3*L3 - L1*L1) / (2 * L2 * L3)) * 180.0 / PI;
    double a2 = acos((L1*L1 + L3*L3 - L2*L2) / (2 * L1 * L3)) * 180.0 / PI;
    double a3 = acos((L1*L1 + L2*L2 - L3*L3) / (2 * L1 * L2)) * 180.0 / PI;

    // Área pelo teorema de Herón
    double s = (L1 + L2 + L3) / 2.0;
    double A = sqrt(s * (s - L1) * (s - L2) * (s - L3));

    // Saída formatada
    cout << fixed << setprecision(4);
    cout << "L1= " << L1 << "\n";
    cout << "L2= " << L2 << "\n";
    cout << "L3= " << L3 << "\n";
    cout << "a1= " << a1 << "\(\circ\)\n";
    cout << "a2= " << a2 << "\(\circ\)\n";
    cout << "a3= " << a3 << "\(\circ\)\n";
    cout << "Area = " << A << "\n";

    return 0;
}

Exercícios relacionados