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:
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 using namespace std; int main() { int a, b, c, A, B, C; cout <> a; cout <> b; cout <> 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 < 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.
muchas gracias!! fue de gran ayuda
gracias a mi tambien me ayudo mucho,lo k si es muy interesante.
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
ud es muy listo!
ola me podrias ayudar a diseñar un programa para diferenciar que tipo de triangulo es si isoseles equilatero o roptuso en turboc++
Tenes razon
genio me re ayudasteeeeeee no me salia y ahora puedo gracias!!
disulpe podria dcir donde podria encontrar un ensayo de un triangulo acutangulo
Eres super genial apenas leí entendí altiro grax amigo
x favor cuantos lados tiene el triangulo oblicuangulo,acutangulo y rectangulo
mira solo buscalo y ya fasil
ok gracias pero eso no es lo k busco patita564
Esta súper genial la información pero necesito los ejemplos para una tarea de geometría que el profesor o los exige
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