2.2.2 Resolviendo problemas

En el algoritmo anterior, el usuario tendrá el poder de introducir tanto la base como la altura que desee cada vez que ejecute el programa. ¿Qué pasaría si teclea una base negativa?, en teoría, un rectángulo con base negativa no existe, ¿crees que el programa se pararía al introducir la base negativa o continuaría hasta el final? Y si continuase hasta el final, ¿qué resultado mostraría como área?. En nuestro caso, la respuesta es simple, el programa no se detendría y al final mostraría un valor para el área que sería negativo, lo cual es incongruente pues no existen los rectángulos con áreas negativas. Igual ocurriría con una base igual a cero.

¿Se te ocurre cómo solucionar el problema?... Efectivamente, la respuesta la tienes en los puntos de decisión (el símbolo del rombo).

Si de modificara ligeramente el diagrama utilizando para ello un punto de decisión (un rombo) justo después de que el usuario teclease el valor para la base, se podría cambiar el flujo del programa en dos sentidos dependiendo del valor de la base.

¿Cómo se haría exactamente? Escribiendo en el interior del rombo una expresión en la que se pregunte si la base es mayor que cero o no. Si la base no fuese mayor que cero el flujo del programa debería volver hacia atrás, justo hasta donde se vuelve a pedir al usuario la base del rectángulo. Si la base es mayor que cero el programa debería continuar su marcha de forma normal pidiendo la altura.

Diagrama de flujo mejorado para calcular el área de un rectángulo

Análogamente, el problema se repetiría con la altura, no existen rectángulos con alturas negativas o con valor cero, pero eso ya no supone un problema importante para tí, ya que conoces la forma de solucionarlo... ¿Lo intentas tú mismo? ¡Ánimo!

Comprueba la respuesta

Aquí tienes la solución al pequeño ejercicio propuesto.

Para saber más

Esta estructura que acabas de utilizar para solventar el problema es conocida como estructura repetitiva o bucle, ya que permite repetir la ejecución de parte del algoritmo un número determinado de veces (en este caso hasta que la base sea mayor que cero, el programa seguirá pidiendo por teclado un valor positivo para dicha base). Existen diferentes tipos de estructuras repetitivas, fíjate en algunas de ellas aquí.