Ajude nosso projeto a se manter online, faça um PIX de qualquer valor:
programacao.progressiva@gmail.com

Programa que acha raízes de uma equação do segundo grau em Python

"
Faça um programa que calcule as raízes de uma equação do segundo grau, na forma ax² + bx + c. O programa deverá pedir os valores de a, b e c e fazer as consistências, informando ao usuário nas seguintes situações:
  1. Se o usuário informar o valor de A igual a zero, a equação não é do segundo grau e o programa não deve fazer pedir os demais valores, sendo encerrado;
  2. Se o delta calculado for negativo, a equação não possui raizes reais. Informe ao usuário e encerre o programa;
  3. Se o delta calculado for igual a zero a equação possui apenas uma raiz real; informe-a ao usuário;
  4. Se o delta for positivo, a equação possui duas raiz reais; informe-as ao usuário;
PS: digite 'import math' no início de seu script. Para achar a raiz quadrada da variável x, faça: math.sqrt(x)
"



Equação do segundo grau em Python

Antes de mais nada, vamos relembrar a fórmula de Bháskara para achar as raízes de uma equação do segundo grau, do tipo: ax² + bx + c = 0 :
Fórmula de Bháskara em Python
O primeiro teste que fazemos é em relação ao coeficiente a. Se for 0, não é uma equação do segundo grau e acaba o programa.

Se for diferente de 0, cai no else, que é onde todo nosso programa vai funcionar. Primeiro, dentro do else, pedimos o valor dos coeficientes b e c.

Agora, vamos calcular o delta.
Em Python, fica assim: delta = b*b - (4*a*c)

Agora vamos testar o delta, dentro de um if aninhado no else anterior.
Se for menor que 0, encerramos o programa dizendo que as raízes são imaginárias.

Em seguida, usamos um elif para testar se delta for 0, se sim valor da raiz será:raiz = -b / (2*a)

Por fim, se não é menor que 0 e o delta não é 0, é porque vai ser sempre maior que 0. Essa condição cai no else aninhado, onde calculamos as raízes assim:
raiz1 = (-b + math.sqrt(delta) ) / (2*a)
raiz2 = (-b  - math.sqrt(delta) ) / (2*a)

Nosso código ficou:

    import math
    
    print('Equaçao do 2o grau da forma: ax² + bx + c')
    
    a = int( input('Coeficiente a: ') )

    if(a==0):
        print('Se a=0, não é equação do segundo grau. Tchau')
    else:
        b = int( input('Coeficiente b: ') )
        c = int( input('Coeficiente c: ') )
        delta = b*b - (4*a*c)

        if delta<0:
            print('Delta menor que 0. Raízes imaginárias. Tchau')
        elif delta==0:
            raiz = -b / (2*a)
            print('Delta=0 , raiz = ',raiz)
        else:
            raiz1 = (-b + math.sqrt(delta) ) / (2*a)
            raiz2 = (-b - math.sqrt(delta) ) / (2*a)
            print('Raizes: ',raiz1,' e ',raiz2)



3 comentários:

  1. eu fiz assim

    import math
    print("Com base nesta fórmula, ax2 + bx + c;")
    a=float(input("Digite um valor para A "))
    if a==0:
    print("Esta operação não condiz com uma equação de segundo grau.")
    else :
    b=float(input("Digite um valor para B"))
    c=float(input("Digite um valor para C"))
    delta=(b**2)-(4*a*c)
    if delta<0:
    print("A equação não possui raízes reais.")
    print(" ")
    print(" Fim de execução. ")
    else:
    x1=(-b + math.sqrt(delta) ) / (2*a)
    x2=(-b - math.sqrt(delta) ) / (2*a)
    print("As duas raízes possíveis são: x1=",x1," e x2=",x2,"")

    ResponderExcluir
  2. professor se poder responder esse comentário ou alguém que conheça do assunto , eu tentei resolver dessa :
    from math import sqrt

    a = int(input("Digite :"))
    # print(raiz)
    delta = 0
    if a == 0:
    print("équação não é do segundo grau!")
    elif a > 0:
    raiz = sqrt(a)
    b = int(input("Digite : "))
    c = int(input("Digite : "))
    delta = (raiz + b + c)
    if delta < 0:
    print("A equação não possui raizes reais")
    print(delta)
    else:
    delta = sqrt(raiz + b + c)
    r = sqrt(delta)
    print("O valor da equação é {}".format(delta))
    print("A raiz quadrada de delta é {}".format(r))
    if delta == 0:
    print("A raiz quadrada de delta é 0")
    else :
    print("Nao tem Raiz de zero")

    ResponderExcluir