A vueltas con el uso de los diagramas de flujo, vamos a trabajar con otro ejemplo para que veáis la utilidad de esta herramienta: vamos a implementar un programa en Python que nos pedirá los términos cuadrático, simple e independiente de una ecuación de 2º grado (en nuestro programa, variables a, b y c introducidas por teclado) para que nos la resuelva. Como sabes (y si no lo sabes, te lo explico), la fórmula que resuelve este tipo de ecuaciones trabaja con la fórmula:
El contenido de la raíz cuadrada se denomina discriminante, y dependiendo de su valor, nos encontraremos con tres posibilidades:
- El discriminante es mayor que cero: entonces tenemos dos soluciones de tipo real .
- El discriminante es menor que cero: tenemos dos soluciones de tipo imaginario.
- El discriminante es cero: la única solución posible es real, de tipo -b/2a
Como yo no tengo tiempo ni tú ganas de leer, te ofrezco a continuación el diagrama de flujo que contempla y reacciona a las tres posibilidades, seguido del código correspondiente en Python. El código se reproduce indefinidamente, de ahí el conector en el diagrama de flujo y el while(1) en Python:
Y aquí el código:
import math
while(1):
a=input("introduzca coeficiente cuadratico: ")
b=input("Introduzca coeficiente dependiente: ")
c=input("Introduzca coeficiente independiente: ")
print "La ecuacion es: ",a,"x2 + ",b,"x + ",c
discriminante=pow(b,2)-4*a*c
#print "El discriminante vale: ",discriminante
if (discriminante<0):
print "La solucion es compleja: "
discriminante=discriminante*(-1)
imaginario=pow(discriminante,0.5)
r=-b/(2*a)
print "Solucion 1: "+str(r)+"+"+str(imaginario)+"i"
print "Solucion 2: "+str(r)+"-"+str(imaginario)+"i"
elif (discriminante==0):
print "Hay una solucion: "+(str)(r=(-b)/(2*a))
else:
print "Hay dos soluciones: "
print "Solucion 1: "+(str)((-b+pow(discriminante,0.5))/(2*a))
print "Solucion 2: "+(str)((-b-pow(discriminante,0.5))/(2*a))
¡Y eso es todo por ahora!. ¡Seguimos en contacto!. ¡Podéis comentarme lo que queráis en esta web, en los comentarios, o por Facebook, YouTube o Twitter!. ¡Seguid creciendo!. ¡Seguid aprendiendo!. ¡Cultura maker!. ¡Sed felices!