IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Équation du second degré


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    autodidacte
    Inscrit en
    Juin 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2018
    Messages : 36
    Points : 15
    Points
    15
    Par défaut Équation du second degré
    Bonjour à tous,

    je n'arrive pas à afficher les bons résultats,
    j'ai regardé pas mal de solutions et de sites mais je n'ai toujours pas la solution, je tourne en rond depuis pas mal de temps.

    les variables sont du type Double mais j'essaye de les convertir sans sucés.

    Voici le prog

    import java.docx

    Merci de votre compréhension

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Tu calcules mal ton delta me semble-t-il : (tu m'a obliger à revoir mes bases de math )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    double a = 1.0;
    		double b =3.0;
    		double c = -4.0;
     
    		double delta = b*b-4*a*c;
    		if (delta<0) {
    			System.err.println("No solution"); System.exit(-1);}
    		if (delta==0) {
    			System.err.println("->"+ -b/(2*a)); System.exit(-1);}
    		if (delta>0) {
    			double x1 = (-b-Math.sqrt(delta))/(2*a);
    			double x2 = (-b+Math.sqrt(delta))/(2*a);
    			System.err.println("1-> "+ x1);
    			System.err.println("2-> "+ x2);
    			System.exit(-1);
     
    		}
    Note : Postes ton code avec la balise Code # et pas un fichier word la prochaine fois
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    autodidacte
    Inscrit en
    Juin 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2018
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    merci de ta réponse wax78,

    j'ai changé le code mais ça ne fonctionne pas visiblement:

    Nom : result.jpg
Affichages : 4513
Taille : 17,7 Ko

  4. #4
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Bon, le delta ne devrait pas être à 0.
    Donc, les valeurs A, B, C sont-elles lues correctement ?

    Il faudrait des logs de contrôle lors du lancement du calcul.

  5. #5
    Membre à l'essai
    Homme Profil pro
    autodidacte
    Inscrit en
    Juin 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2018
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    j'ai refait le code avec l'instruction toString() qui ma était conseillé mais cela n'affiche rien.

    Nom : result.jpg
Affichages : 4318
Taille : 30,5 Ko

    mon nouveau code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
     
    package Interface;
     
    import java.awt.EventQueue;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import java.awt.BorderLayout;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import java.awt.Font;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
     
    public class Equation {
     
    	private JFrame frame;
    	private JTextField textFieldA;
    	private JTextField textFieldB;
    	private JTextField textFieldC;
    	private JTextField textFieldDelta;
    	private JTextField textFieldX1;
    	private JTextField textFieldX2;
     
    	/**
             * Launch the application.
             */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Equation window = new Equation();
    					window.frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	/**
             * Create the application.
             */
    	public Equation() {
    		initialize();
    	}
     
    	/**
             * Initialize the contents of the frame.
             */
    	private void initialize() {
    		frame = new JFrame();
    		frame.setBounds(100, 100, 850, 600);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		JPanel panel = new JPanel();
    		frame.getContentPane().add(panel, BorderLayout.CENTER);
    		panel.setLayout(null);
     
    		JLabel lblNewLabelA = new JLabel("Entrer la valeur de A :");
    		lblNewLabelA.setBounds(24, 91, 134, 16);
    		panel.add(lblNewLabelA);
     
    		JLabel lblNewLabelB = new JLabel("Entrer la valeur de B :");
    		lblNewLabelB.setBounds(24, 136, 134, 16);
    		panel.add(lblNewLabelB);
     
    		JLabel lblNewLabelC = new JLabel("Entrer la valeur de C :");
    		lblNewLabelC.setBounds(24, 183, 134, 16);
    		panel.add(lblNewLabelC);
     
    		JLabel lblNewLabelDelta = new JLabel("Delta =");
    		lblNewLabelDelta.setBounds(24, 229, 56, 16);
    		panel.add(lblNewLabelDelta);
     
    		JLabel lblNewLabelX1 = new JLabel("X1 =");
    		lblNewLabelX1.setBounds(24, 258, 56, 16);
    		panel.add(lblNewLabelX1);
     
    		JLabel lblNewLabelX2 = new JLabel("X2 =");
    		lblNewLabelX2.setBounds(24, 287, 56, 16);
    		panel.add(lblNewLabelX2);
     
    		textFieldA = new JTextField();
    		textFieldA.setBounds(170, 88, 116, 22);
    		panel.add(textFieldA);
    		textFieldA.setColumns(10);
     
    		textFieldB = new JTextField();
    		textFieldB.setBounds(170, 133, 116, 22);
    		panel.add(textFieldB);
    		textFieldB.setColumns(10);
     
    		textFieldC = new JTextField();
    		textFieldC.setBounds(170, 180, 116, 22);
    		panel.add(textFieldC);
    		textFieldC.setColumns(10);
     
    		textFieldDelta = new JTextField();
    		textFieldDelta.setBounds(105, 226, 116, 22);
    		panel.add(textFieldDelta);
    		textFieldDelta.setColumns(10);
     
    		textFieldX1 = new JTextField();
    		textFieldX1.setBounds(105, 255, 116, 22);
    		panel.add(textFieldX1);
    		textFieldX1.setColumns(10);
     
    		textFieldX2 = new JTextField();
    		textFieldX2.setBounds(105, 284, 116, 22);
    		panel.add(textFieldX2);
    		textFieldX2.setColumns(10);
     
    		JButton btnNewButton = new JButton("Calcul");
    		btnNewButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
     
    				double b=0;
    				double a=0;
    				double c=0;
    				double delta = b*b-4*a*c;
    				if (delta>0) {
    				double X1 = (-b-Math.sqrt(delta))/(2*a);
    				double X2 = (-b+Math.sqrt(delta))/(2*a);
     
    					Double d=toString(delta);
    					Double x=toString(X1);
    					Double y=toString(X2);
    					textFieldDelta.setText("" + d);
    					textFieldX1.setText(""+ x);
    					textFieldX2.setText(""+ y);
    				}
    			}
     
    			private Double toString(double delta) {
    				return delta;
    			}
    		});
    		btnNewButton.setFont(new Font("Tahoma", Font.PLAIN, 20));
    		btnNewButton.setBounds(280, 229, 155, 36);
    		panel.add(btnNewButton);
    	}
    }

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Et donc, les valeurs, elles sont lues correctement ? C'est une question qui t'a déjà été posée.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    Pour vous aidez un peu plus, et pour continuer sur la question : est ce que les valeurs a, b et c sont lues correctement ? Je vous pose une autre question : est ce que vous récupérez vraiment le contenu des zones de saisies, parce que je ne vois aucune instruction de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String valeurSaisie = jTextField1.getText();
    Ou bien de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double valeurEnDouble = Double.parseDouble(quelqueChose);
    Je vous propose aussi de mettre la fonction qui calcule la solution dans une classe séparée pour se concentrer sur son code sans revenir vers le code de l'interface graphique.

    Bon Courage.

Discussions similaires

  1. Résolution d'une équation du second degré
    Par benjamin_malaussene dans le forum Débuter
    Réponses: 5
    Dernier message: 28/10/2015, 09h28
  2. Application pour les équations du second degré buguée
    Par Shirase_Akira dans le forum Android
    Réponses: 16
    Dernier message: 23/04/2012, 14h50
  3. Résoudre une équation du second degré
    Par Emmanuel Delahaye dans le forum Télécharger
    Réponses: 3
    Dernier message: 04/12/2011, 02h59
  4. Résolution d'équation de second degrès dans C
    Par acidburns dans le forum Débuter
    Réponses: 5
    Dernier message: 07/11/2011, 21h46
  5. Visual basic: algo résolvant une équation du second degré
    Par mauriiice dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 05/12/2005, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo