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.