Fórmula Resolvente
Nesta secção pretende-se abordar as possíveis soluções de uma equação de 2.º grau, em ℝ , mas para isso é necessário ter em conta alguns aspetos.
Uma equação do 2.º grau tem o seguinte forma: ax2 + bx + c = 0 e sabe-se que a fórmula resolvente
tem uma grande utilidade no cálculo das soluções desta equação. Define-se o binómio discriminante como sendo
A equação do 2.º grau só tem soluções no espaço dos números reais se:
a não pode ser nulo (a ≠ 0);
o binómio discriminante, ∆, tem de ser maior que zero (∆ ≥ 0).
No caso de o binómio discriminantes ser nulo, então a equação apenas terá uma solução real.
Da matemática para o Python
Proposta de algoritmo
1.º passo: pedir ao utilizador os coeficientes a, b e c da equação do 2.º grau.
2.º passo: verificar que:
a ≠ 0
∆ ≥ 0
retornar um erro no caso destas condições não se verificarem.
3.º passo: calcular cada uma das soluções, x1 e x2. No caso de ∆ = 0 apenas existe uma solução.
Proposta de código
# importação das bibliotecas de matemática e de sistema
from math import sqrt
import sys
# inicialização da variáveis que receberão o valor das soluções
x1 = 0
x2 = 0
# pedir ao utilizador para introduzir o coeficiente do termo de maior grau, 'a'
a = float(input("Insira o valor do coeficiente 'a': "))
# verificar se 'a' é nulo, caso seja, o programa termina
if a == 0:
print("O valor de 'a' não pode ser nulo.")
sys.exit()
# pedir ao utilizador para introduzir os coeficientes de grau 1, 'b'
b = float(input("Insira o valor do coeficiente 'b': "))
# pedir ao utilizador para introduzir os coeficientes de menor grau, 'c'
c = float(input("Insira o valor do coeficiente 'c': "))
# calculo do discriminante
delta = b*b - (4*a*c)
# verifica se o discriminante é negativo e, caso seja, o programa termina
if delta < 0:
print("O valor do discriminante não pode ser negativo.")
sys.exit()
# verifica de o discriminante é nulo (apenas existirá uma solução)
elif delta == 0:
x1 = (-1)*b / (2*a)
print(f"A solução da {a}x^2+{b}x+{c} = 0 é x = {x1}")
# caso em que existem 2 soluções reais
# aqui é necessária a função matemática sqrt para o cálculo da raiz
# quadrada do discriminante
else:
x1 = ((-1)*b - sqrt(delta)) / (2*a)
x2 = ((-1)*b + sqrt(delta)) / (2*a)
print(f"As soluções da {a}x^2 + {b}x + {c} = 0 são \n\tx1 = {x1} \n\tx2 = {x2}")
É possível simplificar o código ou este correr até que o utilizador pretenda sair do programa. Contudo, esta foi a abordagem mais simplista e rápida de abordar o tema de uma forma clara e percetível para todos.