Supongamos que el profesor o profesora de matemáticas nos pide resolver ecuaciones de segundo grado completas y nos deja utilizar la programación para resolverlo, es decir, que podemos resolver las ecuaciones manualmente o haciendo un algoritmo. Y pensamos que con un algoritmo se ahorra trabajos, veamos si es así: Analicemos el problema primero: una ecuación de segundo grado está compuesta de 3 variables: a, b y c. Y se resuelve de esta manera:
By Drini - CC BY-SA 4.0 from Wikimedia Commons
from math import sqrt
raiz = sqrt(b*b - 4*a*c)
Como ya dijimos en Haciendo grandes cosas con poco usamos una función que ya existe para hacer raíces cuadradas que se llama sqrt. Esa línea lo que está diciendo es del paquete "math" voy a usar la función sqrt. Finalmente una vez que tenemos la raíz, le pasamos el parámetro que será el cuadrado - 4*a*c, y ya sabemos que nos devolverá el resultado de la raíz yl o guardamos en la variable raíz.El segundo subproblema es más sencillo, vamos a calcular el resultado siguiendo la fórmula:
resultado1 = (-b + raiz) / 2 * a
resultado2 = (-b - raiz) / 2 * a
Y ya hemos acabado realmente, colocamos para leer los números que nos diga el usuario e imprimimos los resultados quedando el algoritmo entero de esta forma:
from math import sqrt
a = int(input('a:'))
b = int(input('b:'))
c = int(input('c:'))
raiz = sqrt(b*b - 4*a*c)
resultado1 = (-b + raiz) / 2 * a
resultado2 = (-b - raiz) / 2 * a
print("resultado1:{}".format(resultado1))
print("resultado2:{}".format(resultado2))
Podríamos quedarnos aquí pero entonces no seguiríamos las prácticamos que llevamos comentando. ¿Qué falta? O mejor dicho, si pensáramos con la mentalidad del software libre, nos deberíamos preguntar: ¿este código lo podría usar alguien? La respuesta es que no, porque no lo hemos encapsulado en ninguna función, veamos lo fácil que se hace:
from math import sqrt
def calcular_ecuacion(a, b, c):
raiz = sqrt(b*b - 4*a*c)
resultado1 = (-b + raiz) / 2 * a
resultado2 = (-b - raiz) / 2 * a
return resultado1, resultado2
a = int(input('a:'))
b = int(input('b:'))
c = int(input('c:'))
resultado1, resultado2 = calcular_ecuacion(a, b, c)
print("resultado1:{}".format(resultado1))
print("resultado2:{}".format(resultado2))
Como vemos, tenemos una función que dados los parámetros a, b y c, devuelve 2 valores: resultado1 y resultado2. Cualquier persona puede usar esa función como hemos hecho abajo y recoger en 2 variables el resultado de la ecuación.
No hay comentarios:
Publicar un comentario