Calcular ángulos de un triángulo en C++

En el post anterior vimos cómo saber si un triángulo es rectángulo, acutángulo u obtusángulo en C++, y les anticipé que haría una nueva versión del mismo programa pero que nos calculara además los ángulos del triángulo.

El programa es este.

#include
#include
using namespace std;

#define PI 3.14159265 // nuNcA cAmbieZz we!!
int main()
{
    float a, b, c, A, B, C;
    cout <> a;
    cout <> b;
    cout <> c;
    A = acos((b*b+c*c-a*a)/(2*b*c))*180/PI;
    B = acos((a*a+c*c-b*b)/(2*a*c))*180/PI;
    C = acos((a*a+b*b-c*c)/(2*a*b))*180/PI;
    if(A == 90 || B == 90 || C == 90)
        cout << "El triangulo es rectangulo. ";
    if(A < 90 && B < 90 && C < 90)
        cout < 90 || B > 90 || C > 90)
        cout << "El triangulo es obtusangulo. ";
    cout << "nY sus angulos son: A:" << A << " , B:" << B << " y C:" << C;

    cin.get();cin.get();
}

Para calcular los ángulos utilizamos la ley de cosenos, de hecho en el anterior también lo utilizamos pero no completamente (la ley de cosenos es una ‘ampliación’ del teorema de pitágoras). La ley de cosenos la vemos comúnmente como:
a2 = b2 + c2 -2(b*c)*cos(A)
Si la despejamos en cos(A), nos queda:
cos(A) = (b2 + c2 - a2) / 2(b*c)
Si despejamos A (o sea el ángulo), obtenemos:
A = arccos(b2 + c2 - a2 / 2(b*c))
Que es lo que utilizamos calcular los ángulos, lamentablemente la función que nos da C++ en su librería math.h, acos() nos devuelve el resultado en radianes. Para convertirlo a grados solo tenemos que multiplicar el resultado por 180/PI. Ahora que ya tenemos los tres ángulos de nuestro triángulo, es facilísimo saber cuando es cada tipo de triángulo.

La función acos() está en la librería math.h y sirve para encontrar el arco coseno. En esta librería hay muchas funciones muy útiles: math.h

Otro detalle sencillo pero que no habíamos visto es el asunto de PI. Al principio del programa nos encontramos con:
#define PI 3.14159265
Esto significa que estamos declarando una constante con el nombre PI y con un valor de 3.14159265. Una constante, como su nombre lo indica, nunca cambia a lo largo del programa.

Bueno, pues fue un programa bastante entretenido, me gustó hacerlo🙂

9 thoughts on “Calcular ángulos de un triángulo en C++

  1. hola me gusto esta pagina.
    El motivo de escibirte es que apenas empece as programar en c++ la verdad esta padre el programa pero apenas llevo como 2 meses practicandolo no mucho es mas desconocia de como utilizarlo , bueno solo quiero atuda de como utilizar senos y cosenos

  2. hola me ha gustado tu pagina especialmente este apartado debido a esto he creado un programa q m permite conociendo la base y la altura sacar sus angulos t lo dejo haber como lo ves
    PD: esta en C

    #include
    #include
    #include

    #define PI 3.14159265

    int main()
    {
    int a,base,d,c,A,B,C,l;

    printf(“Introduce altura: “);
    scanf(“%f”,&a);
    printf(“Introduce base: “);
    scanf(“%f”,&base);
    d = base/2;
    c = sqrt((a^2)+(l^2));
    A = acos((l*l+c*c-a*a)/(2*l*c))*180/PI;
    B = acos((a*a+c*c-l*l)/(2*a*c))*180/PI;
    C = acos((a*a+l*l-c*c)/(2*a*l))*180/PI;
    printf(“A tiene %.1f n”,A);
    printf(“B tiene %.1f n”,B);
    printf(“C tiene %.1f n”,C);

    return(0);
    }

  3. hola, me podrian ayudar a resolver este problema en turbo c.

    Construir un programa para obtener la hipotenusa y los ángulos agudos de un
    triangulo rectángulo a partir de las longitudes de los catetos

    1. yo tengo este de echo sale lo k pidesespero te sirva respondeme a tio_sio@hotmail.com
      # include
      # include
      # include
      # define PI 3.14159265
      main ( )
      {
      int a,b;
      double c, A, B;
      printf (“El cateto opuesto es:”);
      scanf (“%d”,&a);
      printf (“El cateto adyacente es:”);
      scanf (“%d”,&b);
      c = sqrt (a*a + b*b);
      A = acos (b/c) * 180/PI;
      B = acos (a/c) * 180/PI;
      printf (“La hipotenusa = % fn”, c);
      printf (“El angulo A = % fn”, A);
      printf (“El angulo B = % fn”, B);
      getch ( );
      }

  4. HOLA LA VERDA ES KE ME GUSTO LA PAGINA PERO NO ENTIENDO MUY BIEN KOMO KREAR UNA FUNCION PARA INGRESAR EL ANGULO EN RADIANES, UNA FUNCION PARA CALCULAR EL COSENO.

  5. hola nesesito hacer un programa para calcular tangentes senos cosenos cateto adyacente cateto opuesto de un triangulo si tienen alguna idea se lso agradeseria

  6. hola buenas esta chida la paguina. por cierto ami me dejaron un trabajo que pinte un triangulo y que solo se mueva la pura punta del triangulo y que al moverce valla diciendo cuanto mide su lado y sus angulos :S-.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s