Autor: Luis Fernando Apáez Álvarez
-Curso PyM-
Tarea 2: Ecuación de segundo grado
Fecha de Entrega: 10 de Agosto del 2022
SOLUCIÓN
Descripción: En esta tarea utilizaremos varios condicionales para crear un programa que resuelva ecuaciones cuadráticas. (Tiempo estimado: 30 minutos)
Teoría: Dada la ecuación general de segundo grado $ax^{2}+bx+c=0$ (donde $a\neq 0$), existe una fórmula para hallar sus soluciones:
$$ x=\frac{-b\pm\sqrt{b^{2}-4ac}}{2a} $$Ahora bien, dada dicha ecuación general, se denomina determinante de la ecuación al número $b^{2}-4ac$, el cual nos dirá la naturaleza de las soluciones de la ecuación, donde
Instrucciones: Escribiremos un programa para que el usuario ingrese los valores de $a,b$ y $c$ referentes a su ecuación cuadrática y, según sea la naturaleza del discriminante, podamos dar las soluciones reales a la ecuación, o mostrar un mensaje cuando las soluciones de su ecuación sean complejas. Para ello:
(1) Mostramos un mensaje de bienvenida y pedimos al usuario que ingrese sus valores correspondientes a su ecuación cuadrática
# Mensaje inicial
print("Bienvenido a la calculadora de soluciones \
para ecuaciones de segundo grado.")
print()
print("Por favor ingrese los coeficientes \
correspondientes de su ecuación")
Bienvenido a la calculadora de soluciones para ecuaciones de segundo grado. Por favor ingrese los coeficientes correspondientes de su ecuación
Ahora, ocuparemos un paquete (conjunto de funcionalidades extras que podemos utilizar en Python) para que en la salida de la celda de código podamos mostrar expresiones matemáticas, para lo cual utilizaremos $\LaTeX$
# paquete que nos ayudara a mostrar expresiones
# matematicas en las salidas de las celdas
from IPython.display import display, Math
# Por ejemplo
# dentro de r' ' va el codigo latex
display(Math(r' \int^{1}_{0}\int^{x}_{1}\int^{y}_{1}f(x,y,z)dzdydx '))
De tal manera, podemos mejorar el mensaje inicial que le demos al usuario
# Mensaje inicial
print("Bienvenido a la calculadora de soluciones \
para ecuaciones de segundo grado.")
print("-" * 75)
print("Por favor ingrese los coeficientes \
correspondientes de su ecuación: ")
display(Math(r'ax^{2}+bx+c=0'))
Bienvenido a la calculadora de soluciones para ecuaciones de segundo grado. --------------------------------------------------------------------------- Por favor ingrese los coeficientes correspondientes de su ecuación:
# le pedimos al usuario que ingrese los valores
print("Ingresa el valor de a: ")
a = float(input())
print("Ingresa el valor de b: ")
b = float(input())
print("Ingresa el valor de c: ")
c = float(input())
Ingresa el valor de a: 1 Ingresa el valor de b: 2 Ingresa el valor de c: 1
(2) Una vez que tenemos los valores de $a,b$ y $c$ podemos calcular el determinante asociado a dicha ecuación cuadrática
# Con base en lo visto en la teoria, define correctamente
# la variable determinante
determinante = b ** 2 - 4 * a * c
(3) Finalmente, dependiendo de la naturaleza del determinante calcularemos y mostraremos la solución, o en el caso de que $b^{2}-4ac<0$ mostraremos un mensaje determinado
# creamos una variable para almacenar el valor
# de la x para el caso en que
# la ecuacion solo tiene una solucion,
# la inicializamos en 0
x = 0
# Creamos dos variable para el caso en que
# la ecuacion tiene dos soluciones, las
# inicializamos en coro
x_pos = 0
x_neg = 0
# -------------------------------------------------
# Emplearemos un condicional con elif
# caso en el que la ecuacion solo tiene una solucion
if determinante == 0:
x = (-b + (determinante) ** 0.5 ) / (2 * a)
print(f"Tu ecuación sólo tiene una solución \
la cual es: x={x}")
# caso en que la ecuacion tiene dos soluciones
elif determinante > 0:
x_pos = (-b + (determinante) ** 0.5 ) / (2 * a)
x_neg = (-b - (determinante) ** 0.5 ) / (2 * a)
print(f"Tu ecuación tiene dos soluciones \
las cuales son: x1={x_pos} y x2={x_neg} ")
# cualquier otro caso (caso en que el determinante
# es menor a cero)
else:
print(f"Tu ecuación no tiene soluciones reales")
Tu ecuación sólo tiene una solución la cual es: x=-1.0
El código completo del programa quedaría como:
# Mensaje inicial
print("Bienvenido a la calculadora de soluciones \
para ecuaciones de segundo grado.")
print("-" * 75)
print("Por favor ingrese los coeficientes \
correspondientes de su ecuación: ")
display(Math(r'ax^{2}+bx+c=0'))
# le pedimos al usuario que ingrese los valores
print("Ingresa el valor de a: ")
a = float(input())
print("Ingresa el valor de b: ")
b = float(input())
print("Ingresa el valor de c: ")
c = float(input())
# Con base en lo visto en la teoria, define correctamente
# la variable determinante
determinante = b ** 2 - 4 * a * c
# creamos una variable para almacenar el valor
# de la x para el caso en que
# la ecuacion solo tiene una solucion,
# la inicializamos en 0
x = 0
# Creamos dos variable para el caso en que
# la ecuacion tiene dos soluciones, las
# inicializamos en coro
x_pos = 0
x_neg = 0
# -------------------------------------------------
# Emplearemos un condicional con elif
# caso en el que la ecuacion solo tiene una solucion
if determinante == 0:
x = (-b + (determinante) ** 0.5 ) / (2 * a)
print(f"Tu ecuación sólo tiene una solución \
la cual es: x={x}")
# caso en que la ecuacion tiene dos soluciones
elif determinante > 0:
x_pos = (-b + (determinante) ** 0.5 ) / (2 * a)
x_neg = (-b - (determinante) ** 0.5 ) / (2 * a)
print(f"Tu ecuación tiene dos soluciones \
las cuales son: x1={x_pos} y x2={x_neg} ")
# cualquier otro caso (caso en que el determinante
# es menor a cero)
else:
print(f"Tu ecuación no tiene soluciones reales")
Bienvenido a la calculadora de soluciones para ecuaciones de segundo grado. --------------------------------------------------------------------------- Por favor ingrese los coeficientes correspondientes de su ecuación:
Ingresa el valor de a: 1 Ingresa el valor de b: 5 Ingresa el valor de c: 6 Tu ecuación tiene dos soluciones las cuales son: x1=-2.0 y x2=-3.0