Mandar um café pro programador

Pode me ajudar a transformar cafeína em código?

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)



13 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
  3. FIZ DIFERENTE, ACHO QUE FICA MELHOR... ME CORRIJA SE ESTIVER ERRADO.

    import math
    a = int(input('Digite o valor de a: '))
    if(a==0):
    print('A equação não é do segundo grau! \nFIM.')
    else:
    b = int(input('Digite o valor de b: '))
    c = int(input('Digite o valor de c: '))
    delta = (b*b)-4 *(a*c)
    x1= (-b + math.sqrt(delta))/(2*a)
    x2= (-b - math.sqrt(delta))/(2*a)
    if(delta<0):
    print('O valor de delta é negativo: ',delta,'\nFIM')
    elif(delta==0):
    print('A equação possui uma raiz real: ', delta,'raiz x1: ', x1)
    else:
    print('A equação possui duas raizes reais', delta, 'raiz x1: ', x1, 'raiz x2: ', x2)

    ResponderExcluir
    Respostas
    1. seu código não funciona para casos que possuem delta negativo

      Excluir
  4. a = float(input("Digite o valor de a (x²): "))
    if (a == 0):
    print("Não é uma equação do segundo grau")
    else:
    b = float(input("Digite o valor de b (x): "))
    c = float(input("Digite o valor de c: "))

    delta = (b ** 2) - (4 * a * c)
    raiz_1 = ((-(b)) + (delta) ** 0.5) / (2 * a)
    raiz_2 = ((-(b)) - ((delta) ** 0.5)) / (2 * a)
    raiz_3 = (raiz_1 == raiz_2)

    print("O valor de deltá é {:.2f}".format(delta))

    if (delta == 0):
    print(f"A equação possui apenas uma raíz real, sendo ela = {raiz_1}")
    elif (delta >= 1):
    print(f"A equação possui duas raízes reaism, sendo elas: {raiz_1} e {raiz_2}")
    else:
    print ("A equação não possui raízes")

    ResponderExcluir
  5. import math
    a = float(input('Digite o valor de A: '))
    if a == 0:
    print ('A equação não é do segundo grau')
    else:
    b = float(input('Digite o valor de B: '))
    c = float(input('Digite o valor de C: '))

    delta = b ** 2 - 4 * a * c
    if delta < 0:
    print ('A equação não possui raizes reais')
    else:
    if delta == 0:
    x1 = - b / (2 * a)
    print ('A equação possui apenas uma raiz real: {:.3}'.format(x1))
    else:
    x1 = (- b + math.sqrt(delta)) / (2 * a)
    x2 = (- b - math.sqrt(delta)) / (2 * a)
    print('A equação possui duas raiz reais: {:.3} e {:.3}'.format(x1,x2))

    ResponderExcluir
  6. Eu fiz dessa forma:
    print('Calcularemos o valor da equação de segundo grau para você')
    a= input('digite o valor de a: ')
    a= float(a)
    if a!=0:
    print('A equação é de segundo grau')
    else:
    print('A equação não é de segundo grau')
    exit()
    b= input('digite o valor de b: ')
    b= float(b)
    c= input('digite o valor de c: ')
    c= float(c)
    k= -(b**2-4*a*c)/(4*a)
    l= -b/(2*a)
    g=-k/a
    if g>=0:
    print(' A equação de segundo grau tem raízes reais')

    else:
    print('A equação de segundo grau não tem raízes reais ')
    exit()

    x1 = (g**0.5)+l
    x2 = -(g**0.5)+l
    if x1==x2:
    print(' O valor de x é: '+str(x1))

    else:
    print(' O valor de x1 é: '+str(x1)+ ' e o valor de x2 é: '+str(x2))

    ResponderExcluir
  7. print('Calcularemos o valor da equação de segundo grau para você')
    a= input('digite o valor de a: ')
    a= float(a)
    if a!=0:
    print('A equação é de segundo grau')
    else:
    print('A equação não é de segundo grau')
    exit()
    b= input('digite o valor de b: ')
    b= float(b)
    c= input('digite o valor de c: ')
    c= float(c)
    k= -(b**2-4*a*c)/(4*a)
    l= -b/(2*a)
    g=-k/a
    if g>=0:
    print(' A equação de segundo grau tem raízes reais')

    else:
    print('A equação de segundo grau não tem raízes reais ')
    exit()

    x1 = (g**0.5)+l
    x2 = -(g**0.5)+l
    if x1==x2:
    print(' O valor de x é: '+str(x1))

    else:
    print(' O valor de x1 é: '+str(x1)+ ' e o valor de x2 é: '+str(x2))

    ResponderExcluir
  8. Eu tentei compilar no onlinegdb, ja da erro na hora de coloca o valor de a:IndentationError: unexpected indent

    ResponderExcluir
  9. from math import sqrt

    print('Raizes de segundo grau')
    a = int(input('Digite o valor de a: '))

    if a == 0:
    print('A equação não é do segundo grau!')
    exit()

    b = int(input('Digte o valor de b: '))
    c = int(input('Digite o valor de c: '))

    delta = b**2 - (4 * a * c)
    print('DELTA:', delta)

    if delta < 0:
    print(print('Delta menor que zero. A equação não possui raizes reais!'))
    elif delta == 0:
    raiz = -b / (2*a)
    print('Delta=0 , raiz = ',raiz)
    elif delta > 0:
    raiz = (-b + sqrt(delta)) / (2*a)
    raiz2 = (-b - sqrt(delta)) / (2*a)
    print('Raizes iguais a {} e {}' .format(raiz, raiz2))

    ResponderExcluir
  10. a = float(input("Digite o valor de a: "))
    if a == 0:
    print("Não é uma equação do segundo grau")
    else:
    b = float(input("Digite o valor de b: "))
    c = float(input("Digite o valor de c: "))
    delta = (b ** 2) - (4 * a * c)
    if delta < 0:
    print("Delta menor que 0. Não há raízes reais.")
    elif delta == 0:
    raiz = (-b) / (2 * a)
    print(f"Delta é zero. A raíz é {raiz}")
    else:
    raiz1 = (-b + (delta ** (1 / 2))) / (2 * a)
    raiz2 = (-b - (delta ** (1 / 2))) / (2 * a)
    print(
    f"Delta maior que zero. A raíz 1 é {raiz1}, e a raiz 2 é {raiz2}"

    ResponderExcluir

Bora fazer evoluir o ensino da Programação no Brasil ?

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo