Java

Fermé
MOUMEN12 Messages postés 115 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 30 juin 2015 - 2 août 2011 à 18:45
MOUMEN12 Messages postés 115 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 30 juin 2015 - 25 août 2011 à 01:50
Bonjour,

salut a tous
je n'arrive pas a corrigé 7 petit pgm en java.aider moi svp et merci a l'avance
je veut affiché la somme et le produi et max au meme boite de dialog

voila mon essai


import javax.swing.*;
public class Somme
{
public static void main(String args [])
{
String a,b,c;

int a1,a2,a3;
int s=0;
int p=0;

a=JOptionPane.showInputDialog(null,"enter first integer");
b=JOptionPane.showInputDialog(null,"enter second integer");
c=JOptionPane.showInputDialog(null,"enter third integer");

a1=Integer.parseInt(a);
a2=Integer.parseInt(b);
a3=Integer.parseInt(c);

s=a1+a2+a3;
p=a1*a2*a3;

if(a1>a2 && a1>a3)
JOptionPane.showMessageDialog(null,s+" is the somme\nthe max is"+a1,"class moumen",JOptionPane.INFORMATION_MESSAGE);

}}
A voir également:

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
2 août 2011 à 19:08
Le problème c'est ton if, tu imposes a1>a2 et a1>a3 mais ce n'est pas utile...
Pour le calcul du max, tu peux utiliser Math.max.
Dans le code j'ai utilisé un filtrage d'exception au cas où l'utilisateur entre autre chose qu'un entier, c'est pour ça que j'ai fait une fonction "lire" c'est plus propre ;-)

import javax.swing.JOptionPane;

public class Somme 
{
    public static Integer lire(String message,String titre)
    {
        String s = JOptionPane.showInputDialog(null,message,titre,JOptionPane.QUESTION_MESSAGE);
        
        try
        {
            return Integer.parseInt(s);
        }
        catch (NumberFormatException e)
        {
            JOptionPane.showMessageDialog(null,"Vous devez entrer un entier !", "NumberFormatException",JOptionPane.ERROR_MESSAGE);
            return lire(message,titre);
        }
    }
    
    public static void main(String args []) 
    {
        int a = lire("Entrer le premier entier.",""); 
        int b = lire("Entrer le deuxième entier.",""); 
        int c = lire("Entrer le troisième entier.",""); 
        
        int somme = a+b+c;
        int produit = a*b*c;
        int max = Math.max(Math.max(a, b),c);
        
        JOptionPane.showMessageDialog(null,"Somme = "+somme+"\nProduit = "+produit +"\nMaximum = "+max,"",JOptionPane.INFORMATION_MESSAGE); 
    }
}
0
MOUMEN12 Messages postés 115 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 30 juin 2015 1
2 août 2011 à 20:06
merci kx,mais votre réponse é un peut compliqué
je suis un débutant.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 2/08/2011 à 20:33
Le seul truc important à comprendre c'est que ton erreur venait de ton max.
Si tu fais if(a1>a2 && a1>a3) ... "the max is"+a1
Ce n'est pas suffisant car il te faut aussi traiter les cas où le max est a2 ou a3 et tu les as oubliés.

C'est pour cela que j'ai utilisé dans mon code int max = Math.max(Math.max(a, b),c);
Comme ça je calcule d'abord la valeur de max et après j'en fais l'affichage, c'est d'ailleurs comme ça que tu as fait pour la somme et le produit.

Concernant la fonction "lire", c'est juste une astuce qui reprend ce que tu as fait avec showInputDialog/parseInt mais je lui ai juste rajouté un filtrage d'exception (que tu n'es pas obligé de comprendre vu que tu débutes) mais qui permet de gérer le cas ou au lieu d'entrer un entier, l'utilisateur entre autre chose... ça permet au programme de ne pas planter ;-)
0
MOUMEN12 Messages postés 115 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 30 juin 2015 1
25 août 2011 à 01:50
merci kx pour votre aide
0