Siempre creciendo, siempre aprendiendo. Cultura Maker.

Ratio: 0 / 5

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

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:

  1. El discriminante es mayor que cero: entonces tenemos dos soluciones de tipo real .
  2. El discriminante es menor que cero: tenemos dos soluciones de tipo imaginario.
  3. 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:

resolucionEcuaciones2grado

 

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!

Comparte este post

Submit to FacebookSubmit to Google PlusSubmit to TwitterSubmit to LinkedInEnviar a Menéame

Escribir un comentario


Código de seguridad
Refescar

Mientras navegas por esta web, posiblemente interactuemos con tu equipo mediante el uso de cookies. La actual legislación de la UE (European Union) me obliga a informarte de ello, caminante. We use cookies to improve our website and your experience when using it. Cookies used for the essential operation of this site have already been set. To find out more about the cookies we use and how to delete them, see our privacy policy.

  I accept cookies from this site.
EU Cookie Directive Module Information