Veamos cómo encarar un problema un poco más complejo. El enunciado sería:
Calcular el área y el perímetro de un triángulo conociendo el largo de los 3 lados. |
¿Parece simple no? Bueno, si es simple, por lo menos para calcular perímetro = lado + lado + lado... Sí... pero hay un problema, seguramente recordamos que el área de un triángulo se calcula con la fórmula:
área = (base x altura) / 2.
En el caso que los datos ingresados correspondan a un triángulo rectángulo, no habría problemas simplemente habría que identificar qué lado corresponde a la base y cual a la altura, ¿pero si no es un triángulo rectángulo? Habría que calcular el valor altura... ¿y cómo se calcula? Bueno, podemos ir a un buscador de la web y consultar un sitio que nos diga “cómo se calcula el área de un triángulo escaleno”. El buscador nos llevaría a varios sitios donde encontraremos el “teorema de Herón de Alejandría” que dice: «En un triángulo de lados a, b, c, y semiperímetro s=(a+b+c)/2, su área es igual a la raíz cuadrada de s(s-a)(s-b)(s-c).» (sacado de la wikipedia). Bueno, el teorema habla de cualquier tipo de triángulo, justo es lo que necesitábamos. A esto nos referimos por comprensión del problema.
Entonces ya podemos definir las variables:
- Variables de entrada: los 3 lados que llamaremos L1, L2 y L3
- Variables de salida: el área que la llamaremos A y el perímetro que lo llamaremos
- Variables de proceso: Según el teorema de Herón, necesitamos calcular el semiperímetro, al que llamaremos las fórmulas a aplicar serían:
P = L1 + L2 + L3 S = P / 2
A = (S×(S – L1)×(S – L 2)×( S – L 3))1/2
Diseñemos entonces el algoritmo utilizando pseudocódigo y el DFD. Pero primero haremos un par de observaciones:
Para obtener la raíz cuadrada recurrimos a las matemáticas, la raíz cuadrada de un número es equivalente a elevar ese número a ½.
Por otra parte, agregaremos comentarios al pseudocódigo para recordar en un futuro de donde sacamos la fórmula. El programa PseInt admite el añadido de comentarios al pseudocódigo utilizando una doble barra ( // ) al principio del texto. Esta forma de comentar es la que se utiliza en el lenguaje de programación “C++” y en muchos de los lenguajes basados en este, como Java, PHP, Javascript, etc.
Y el diagrama quedaría de la siguiente forma: