equasolve.py

Created by golem64

Created on October 12, 2020

1.2 KB

Solveur d’équation permettant de trouver x0 ou x1 et x2 (avec Δ si nécessaire). Supporte également les chiffres en division (exemple : c=1/3)


from math import *
import ion
from ion import *

def racinex1(a,b,c):
  for i in range(-2,3):
    if (a*(i)**2)+(b*i)+c==0:
      return i
  return 3

a="0"
while a=="0":
  a=input("a=")
b=input("b=")
c=input("c=")
a=a.split("/")
if len(a)==2:
  a=float(a[0])/float(a[1])
else:
  a=float(a[0])
b=b.split("/")
if len(b)==2:
  b=float(b[0])/float(b[1])
else:
  b=float(b[0])
c=c.split("/")
if len(c)==2:
  c=float(c[0])/float(c[1])
else:
  c=float(c[0])
x1=racinex1(a,b,c)
if x1==3:
  print("Aucune racine évidente.")
  print("Continuer quand même en")
  print("sortant de R ?")
  print("(EXE=Oui, SUPPRIMER=Non)")
  rep=0
  while rep==0:
    if ion.keydown(KEY_EXE):
      rep=1
    if ion.keydown(KEY_BACKSPACE):
      rep=2
  if rep==1:
    delta=(b**2)-(4*(a*c))
    if delta<0:
      print("Il n'existe aucune racine")
      print("pour la fonction donnée.")
    else:
      if delta==0:
        x0=(-b)/(2*a)
        print("Δ="+str(delta))
        print("x0="+str(x0))
      else:
        x1=(-b-(sqrt(delta)))/(2*a)
        x2=(-b+(sqrt(delta)))/(2*a)
        print("Δ="+str(delta))
        print("x1="+str(x1))
        print("x2="+str(x2))
else:
  x2=(c/a)/x1
  print("x1="+str(x1))
  print("x2="+str(x2))