begin process at 2010 09 04 18:02:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Math & Algorithmes

 > RÉSOLUTION D'ÉQUATIONS DU SECOND DEGRÉS

RÉSOLUTION D'ÉQUATIONS DU SECOND DEGRÉS


 Information sur la source

Note :
8,33 / 10 - par 3 personnes
8,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Math & Algorithmes Classé sous :inéquation Niveau :Débutant Date de création :29/08/2006 Date de mise à jour :10/09/2006 05:29:50 Vu / téléchargé :4 068 / 219

Auteur : Shakan972

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • # -*- 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()
# -*- 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 ;)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

29 août 2006 05:02:37 :
Erreur à la fin du code, corrigé ;)
29 août 2006 05:04:25 :
Variables inutiles supprimées.
30 août 2006 09:12:04 :
Faute dans la description
30 août 2006 09:14:26 :
Modif dans la description
31 août 2006 23:25:58 :
Erreur dans mon code c'est en fait équation et non inéquation
31 août 2006 23:45:04 :
Modif zip et image.
01 septembre 2006 03:09:33 :
Modif dans la présentation
10 septembre 2006 05:03:49 :
Correction de fautes d'orthographe dans la description et le code source du programme :)
10 septembre 2006 05:05:01 :
Correction de fautes dans le titre
10 septembre 2006 05:29:50 :
Correction de l'image du programme

 Sources du même auteur

Source avec Zip Source avec une capture SNAKE
Source avec Zip Source avec une capture SPACE INVADERS
Source avec Zip Source avec une capture DÉTERMINATION APPROXIMATIVE DE PI À L'AIDE DE LA MÉTHODE DE ...
Source avec une capture ANALYSE FRÉQUENTIELLE D'UNE PHRASE
Source avec Zip Source avec une capture ATTRACTION ÉLECTROSTATIQUE ENTRE CHARGES ÉLECTRIQUES (LOI DE...

 Sources de la même categorie

PRONOSTIQUES DE POKER PRÉ-FLOP par kawamythe
CALCUL LIST DE NOMBRES PREMIERS par White541
TROUVER TOUT LES QUADRILATÉRES POSSIBLES AVEC N POINTS ALEAT... par Buenol
Source avec Zip GÉNÉRATION D'UN LABYRINTHE AVEC RECHERCHE DU CHEMIN LE PLUS ... par mehdicherti
Source avec Zip Source avec une capture DIVISIONS AVEC PRÉCISION RÉGLABLE par Clempython

Commentaires et avis

Commentaire de HCD le 31/08/2006 21:53:14

Ton code vise en fait à résoudre les "EQUATIONS" du second degré et non pas les "INEQUATIONS".

Commentaire de Shakan972 le 31/08/2006 23:24:16

A purée mais où avais-je la tête équation puisque =
et inéquation pour < >

dsl pour l'erreur je corrige tout de suite X(

Commentaire de HCD le 07/09/2006 23:06:00

J'aimerais bien que tu corrige complètement ton code.

1° remplacer dans le TITRE et dans le texte du script "INEQUATION" par "EQUATION".
Voici ce que j'ai extrait:
__________RÉSOLUTION D'INÉQUATIONS DU SECOND
__________Description : Ce code permet de résoudre une équation de second degrès par le biais d'un champ de saisi dans lequel l'EQUATION doit être tapé ensuite le programme s'occupe de donner la ou les solutions.
__________def resolveur(even): #Fonction événement qui va permettre de résoudre l'EQUATION saisiE dans le champ
__________while i<=len(equation): #La série de boucles que voici VA permettre d'extraire chacun des
        if equation[i]!="x": #élément qui composent l'inéquation afin de les affecter à des variables qui seront

2° remplacer "degrès" par "degrés"

HCD

Commentaire de Shakan972 le 10/09/2006 05:05:53

C'est bon j'ai corrigé ^^

Commentaire de aera group le 04/04/2007 10:51:14

Le code est correcte, et à l'air de fonctionner même si l'interface graphique laisse à désirer (entre autre, la méthode que tu utilise pour afficher une nouvelle fenêtre à l'ouverture, c'est un peu du bricolage mais bon, ça fonctionne !!!). Je met 10/10 tout de même.
______
Aéra

Commentaire de dbs669 le 16/04/2007 17:24:24

moi je met 5/10 car pour a b et c il ne prend pas en compte si il sont negatif, ce qui change complètement les résultats
Voici le morceau de code a modifier:

    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  <-- remplacer le 2 par 1
            break
        i=i+1
    while i<=len(equation):
        i=i+1
        if equation[i]!="x":
            b=b+equation[i]
        else:
            i=i+2  <-- remplacer le 2 par 1
            break

a par ca aucun autre problème a signaler

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales