Ce code permet de résoudre une équation de second degrés par le biais d'un champ de saisi dans lequel l'équation doit être tapé ensuite le programme s'occupe de donner la ou les solutions.
Source / Exemple :
# -*- coding: cp1252 -*-
#Programme permettant de résoudre une équation de second degrés
#sous la forme de ax2+bx+c=0
from Tkinter import *
from math import *
#Declaration de la fonction qui va nous permettre de résoudre l'équation entrée
def resolveur(even): #Fonction événement qui va permettre de résoudre l'équation saisi dans le champ
delta=0
a,b,c="","",""
x0,x1,x2=0,0,0
equation=str(saisi.get())
i=0
t=0
while i<=len(equation): #La série de boucles que voici vont permettre d'extraire chacun des
if equation[i]!="x": #élément qui composent l'équation afin de les affecter à des variables qui seront traitées
a=a+equation[i]
else:
i=i+2
break
i=i+1
while i<=len(equation):
i=i+1
if equation[i]!="x":
b=b+equation[i]
else:
i=i+2
break
while i<=len(equation):
if equation[i]!="=":
c=c+equation[i]
if equation[i]=="=":
break
i=i+1
a,b,c=float(a),float(b),float(c) #Les variables sont redéfinis comme nombre à virgule afin d'effectuer les calculs qui vont suivrent
delta=((b**2)-4*a*c)
#En fonction de la valeur de delta le programme se charge de donner une solution
if delta>0:
x1=(-b-sqrt(delta))/(2*a)
x2=(-b+sqrt(delta))/(2*a)
sol1=Tk()
sol1.title("Solution")
Label(sol1,text="L'équation "+str(equation)+" a pour solution "+str(x1)+" ou "+str(x2)).pack()
Button(sol1,text="Ok",command=sol1.destroy).pack()
sol1.mainloop()
if delta==0:
x0=-b/(2*a)
sol2=Tk()
sol2.title("Solution")
Label(sol2,text="L'équation "+str(equation)+" a pour solution "+str(x0)).pack()
Button(sol2,text="Ok",command=sol2.destroy).pack()
sol2.mainloop()
if delta<0:
sol3=Tk()
sol3.title("Solution")
Label(sol3,text="L'équation "+str(equation)+" n'admet aucune solution ").pack()
Button(sol3,text="Ok",command=sol3.destroy).pack()
sol3.mainloop()
# --------------Programme principal------------------#
fen=Tk()
fen.title("Résolution d'équations du second degrès V.1.0") #Titre
Label(text="Veuillez entrer ci-dessous une équation de second degrés sous la forme de ax2+bx+c=0",fg='red').grid(row=0,column=0)
saisi=Entry(fen) #Création du champ de saisi
saisi.bind("<Return>",resolveur)
saisi.grid(row=1,column=0)
Button(fen,text="Quitter",fg='blue',command=fen.quit).grid(row=3,column=0)
fen.mainloop()
fen2=Tk()
Label(fen2,text="Au revoir :)",fg='red').pack()
Button(fen2,text="Ok",command=fen.quit).pack()
fen2.mainloop()
fen2.destroy()
fen.destroy()
Conclusion :
Petit bug quand il s'agit de quitter certaines fenêtres du programme.
Mais dans l'ensemble ça tourne ;)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.