Triángulo Rectángulo en C++



Un ejercicio básico de programación consiste en determinar si tres valores numéricos positivos pueden corresponder a los lados de un triángulo rectángulo. Un triángulo rectángulo es aquel donde uno de sus ángulos es de 90 grados. Todo triángulo rectángulo cumple con la relación fundamental del Teorema de Pitágoras: el cuadrado de la hipotenusa (lado más largo y opuesto al ángulo recto) es igual a la suma de los cuadrados de los catetos (lados más cortos y adyacentes al ángulo recto).

Para escribir un programa en C++ que solucione este problema, se hace necesario leer los valores de los lados, determinar cuál es la hipotenusa, verificar la ecuación e imprimir los resultados. 

Una posible estrategia consiste en cargar los tres valores en un arreglo. Luego determinar cuál de los tres es el mayor y situarlo en la primera posición del arreglo. Al ubicar la hipotenusa en el primer elemento del arreglo se evita utilizar diferentes casos para cada una de las posibles posiciones de la hipotenusa. De esta forma, lo siguiente es verificar que el cuadrado del primer elemento sea igual a la suma de los cuadrados de los demás elementos.

En el video que se encuentra más adelante se muestra cómo resolver este problema utilizando el ambiente de programación Code::Blocks. Muestra cómo verificar la validez de las entradas por medio de la consola, usando un ciclo while que lee repetidas veces hasta que la entrada sea válida y el valor leído corresponda a un número positivo. 

Cuando se utiliza el objeto cin para asignar un valor a una variable que no sea una cadena de caracteres (a double, por ejemplo), hay que tener ciertas consideraciones. Si el valor ingresado no puede ser convertido a tipo de datos deseado, no se asigna ningún valor a la variable en cuestión y se continúa con el programa. Sin embargo, los datos que fueron ingresados permanecen en el buffer de entrada del objeto, por lo que al intentar hacer otra lectura, se intenta acceder nuevamente los mismos datos que habían sido ingresados. Es por esto que se hace necesario limpiar dicho buffer si se desea intentar una nueva lectura. Esto se logra mediante los métodos clear e ignore del objeto cin.

También se soluciona otro pequeño problema sobre la impresión de caracteres tildados en la consola de Windows. Usualmente, al utilizar caracteres acentuados del idioma español (áéíóúüñ), se encuentra con el problema de que se imprimen símbolos diferentes. Esto tiene que ver con la codificación utilizada en la consola y se puede solucionar utilizando la subrutina setlocale de C++.

Imágenes

File:Pythagoraas.svg. (2014, March 2). Wikimedia Commons, the free media repository. Retrieved17:35, August 7, 2017

Comments

Popular Posts