• Blog
  • Acerca
  • Autor
  • Contacto
  • Emanuel por medio de un comentario me pidió ayuda para hacer un programa en c++ que nos dijera si un triángulo es rectángulo, acutángulo u obtusángulo pidiendo solamente los lados. El programa me pareció interesante de hacer y pues lo hice :)

    El programa resulta bastante sencillo, pero para deducir cómo hacerlo está un poco complicado. Veamos la siguiente imágen:

    Triángulos

    El triángulo 1 es un clásico triángulo rectángulo. Si aumentáramos el lado c de 5 a 6 obviamente el ángulo aumentaría y por lo tanto sería un triángulo obtusángulo (2). Si por el contrario, disminuyéramos el lado de c 5 a 4, el ángulo disminuiría y por lo tanto sería un triángulo acutángulo (3).

    Sabiendo esto veamos cómo se comporta Pitágoras en cada caso (o sea no él, su teorema):

    Si despejamos su famoso teorema obtenemos que a2 + b2 – c2 = 0.

    Veamos como se comporta este teorema en nuestro triángulo 1:
    32 + 42 - 52 = 0
    ¡Listo!, ya sabemos que el triángulo es rectángulo, porque el teorema de Pitágoras sólo sirve para triángulos rectángulos.

    Ahora con el triángulo 2 (obtusángulo):
    32 + 42 - 62 = -11
    ¡Un número negativo! Con los triángulos obtusángulos el teorema de Pitágoras da números negativos.

    Y por último el triángulo 3 (acutángulo):
    32 + 42 - 42 = 9
    ¡Un número positivo! Con los triángulos acutángulos el teorema de Pitágoras da números positivos.

    Ahora que ya sabemos cómo identificar cada triángulo nos surge otro problema: El usuario sólo va a introducir tres lados cualquiera, ¿cómo saber cual es a, cual es b y cual es c? Pues no hay forma de saberlo, hay que hacer cada paso tres veces tomando el teorema como a2 + b2 – c2, luego a2 + c2 – b2 y al final b2 + c2 – a2.

    Ahora si, veamos el programa:

    #include<iostream>
    using namespace std;
     
    int main()
    {
        int a, b, c, A, B, C;
        cout << "Introduce lado 1: "; cin >> a;
        cout << "Introduce lado 2: "; cin >> b;
        cout << "Introduce lado 3: "; cin >> c;
        A = (b*b+c*c-a*a);
        B = (a*a+c*c-b*b);
        C = (a*a+b*b-c*c);
        if(A == 0 || B == 0 || C == 0)
            cout << "El triangulo es rectangulo. ";
        if(A > 0 && B > 0 && C > 0)
            cout << "El triangulo es acutangulo. ";
        if(A < 0 || B < 0 || C < 0)
            cout << "El triangulo es obtusangulo. ";
     
    }

    La única parte no explicada es la de las condiciones. Si en cualquiera de los tres formas de tomar el teorema nos resulta 0 es rectángulo, por lo tanto se usa ||. Para ser acutángulo, las tres formas del teorema deben ser mayores a 0, se usa &&. Con una sola forma del teorema que resulte menor a 0 es obtusángulo, se usa ||. Para mayor información de esos operadores leer esto: Operadores lógicos es C++.

    ¿Cómo ven el programita? Está sencillo ¿no? Tal vez después haga una modificación para que además te calcule los ángulos del triángulo.

    1. emanuel dice:

      muchas gracias!! fue de gran ayuda

    2. jessica dice:

      gracias a mi tambien me ayudo mucho,lo k si es muy interesante.

    3. Daniel dice:

      hola como se utilizaria la funcion while o if else para preguntar en el programa cuantos triangulos se desea introducir y que de salida te de que tipo de triangulo es cada uno a los cuales le colocaste solo los lados como entrada… este mismo programa solo que para mas de un triangulo

    4. juanita dice:

      ud es muy listo!

    5. lizzzz dice:

      ola me podrias ayudar a diseñar un programa para diferenciar que tipo de triangulo es si isoseles equilatero o roptuso en turboc++

    6. Rubiaah dice:

      Tenes razon

    7. hsdo dice:

      genio me re ayudasteeeeeee no me salia y ahora puedo gracias!!

    8. sa dice:

      disulpe podria dcir donde podria encontrar un ensayo de un triangulo acutangulo

    9. marce dice:

      Eres super genial apenas leí entendí altiro grax amigo

    10. nenhyta 19 dice:

      x favor cuantos lados tiene el triangulo oblicuangulo,acutangulo y rectangulo

    11. July dice:

      Esta súper genial la información pero necesito los ejemplos para una tarea de geometría que el profesor o los exige

    12. geiler elias dice:

      hola que tal me podeis ayudar con unprograma que calcule el area y perimetro de una figura de cuatro lados y diga si es o no cuadrado o rectangulo …solo necesito por lo meos una idea

    1. [...] 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 [...]

    Hola, escribe aquí tu comentario: