Problème pour une formule

Résolu
cs_Cocinou Messages postés 4 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 avril 2008 - 17 avril 2008 à 18:17
cs_Cocinou Messages postés 4 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 avril 2008 - 19 avril 2008 à 11:02
Bonjour à tous,

Je dois rendre un projet en informatique mais je bloque qque part. J'aurais besoin d'aide alors s'il vous plait soyez sympa. Voila mon fichier java :

public void calcule() {
        float montant ;
        int nbannee ;
        float revenu ;
        double mensualite ;
        double tx ;

        montant = new Float(fen.mont.getText()).floatValue() ;
        nbannee = new Integer(fen.nb.getSelectedItem()).intValue() ;
        revenu = new Float(fen.rev.getText()).floatValue() ;
       

        for(int i=0; i<nbannee; i++){
            mensualite = (montant*(tx/12)) / (1-Math.pow(1+(tx/12),(-nbannee*12)));
            }

        boolean condition1 = (nbannee>5)&&(nbannee<30);
        boolean condition2 = (montant <= 100*revenu);
        boolean condition3 = (mensualite < (33/100)*revenu); // condition imposé pour tous les prêts
       
        boolean condition4 = (nbannee>1)&&(nbannee<5) ;
        boolean condition5 = (montant <= 10*revenu);
       
        boolean condition6 = (nbannee>1)&&(nbannee<8);
        boolean condition7 = (montant <= 5*revenu);

        String res1 = "Emprunt";

        String  c1 = fen.cbg.getSelectedCheckbox().getLabel() ;

        if (c1=="immobilier"){
            if (condition1 && condition2) {
                tx = 0.04;
                res1 = res1 + "\nLe taux appliqué est de 4% annuel"+ "\nLe montant de la mensualité est:" + new Double(mensualite).toString() ;
                if(condition3)
                    res1 += "PRET AUTORISE";
                else res1 += "La mensualité dépasse 33% du revenu mensuel - PRET REFUSE";
                }
            }
        else if(c1=="achat de véhicule") {       
            if(condition4 && condition5) {
                tx = 0.06;
                res1 = res1 + "\nLe taux appliqué est de 6% annuel\nLe montant de la mensualité est:" + new Double(mensualite).toString() ;                        
                if(condition3)
                    res1+="PRET AUTORISE";
                    else res1 += "La mensualité dépasse 33% du revenu mensuel - PRET REFUSE";
                }
            }
        else {
            if(condition6 && condition7) {           
                tx = 0.08;
                res1 = res1 + "\nLe taux appliqué est de 8% annuel\nLe montant de la mensualité est:" + new Double(mensualite).toString() ;
                if(condition3)
                    res1 += "PRET AUTORISE";
                    else res1+="La mensualité dépasse 33% du revenu mensuel - PRET REFUSE";
                }
            }       
        fen.res.setText(res1);
        }
    }
Quand je compile il me dit qu'il ne connait pas "mensualite" et "tx". Comment puis je faire pour que ma formule prenne en compte le tx et que la formule calcule avec les conditions que j'ai spécifié. Merci beaucoup. J'attends vos réponses.

5 réponses

cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
18 avril 2008 à 17:58
Salut,

tu d'après le niveau du code, je pensais que je ne dois pas t'expliquer comment les initialiser : tu peux faire :

private double tx = 0;
private double mensualite = 0;
3
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
17 avril 2008 à 19:18
Salut,

j'ai compilé ton code et mon compilateur (JCreator 4.0) me signale que les variables en question ne sont pas initialisées : c'est tout..
0
cs_Cocinou Messages postés 4 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 avril 2008
17 avril 2008 à 20:16
je sais ce net pas le fichier entier je le met si tu veux.

import java.awt.* ;
import java.awt.event.*;

class Fenetre extends Frame {
    protected Panel p, p1, p2, p3, p4  ;
    protected TextArea res;
    protected TextField mont, rev;
    protected Button suite;
    protected CheckboxGroup cbg;
    protected Checkbox chb1 , chb2, chb3;
    protected Choice nb;
    protected List l;
    protected Delegue delegue;
    protected Adaptateur adapt;

    Fenetre() {
        p = new Panel() ;   
        p.setLayout(new GridLayout(4,1));

        p1 = new Panel();
        p1.add(new Label("Type d'emprunt:"));
        cbg = new CheckboxGroup();
        chb1 = new Checkbox("immobilier", cbg, true);
        p1.add(chb1);
        chb2 = new Checkbox("achat de véhicule", cbg, false);
        p1.add(chb2);
        chb3 = new Checkbox("consommation", cbg, false);
        p1.add(chb3);
        p.add(p1);

        p2 = new Panel() ;
        p2.add(new Label("Montant demandé:"));
        mont = new TextField(12);
        p2.add(mont);
        p2.add(new Label("Nombre d'année de remboursement:"));
        nb = new Choice() ;
        nb.addItem("1") ;
        nb.addItem("2") ;
        nb.addItem("3") ;
        nb.addItem("4") ;
        nb.addItem("5") ;
        nb.addItem("6") ;
        nb.addItem("7") ;
        nb.addItem("8") ;
        nb.addItem("9") ;
        nb.addItem("10") ;
        nb.addItem("11") ;
        nb.addItem("12") ;
        nb.addItem("13") ;
        nb.addItem("14") ;
        nb.addItem("15") ;
        nb.addItem("16") ;
        nb.addItem("17") ;
        nb.addItem("18") ;
        nb.addItem("19") ;
        nb.addItem("20") ;
        nb.addItem("21") ;
        nb.addItem("22") ;
        nb.addItem("23") ;
        nb.addItem("24") ;
        nb.addItem("25") ;
        nb.addItem("26") ;
        nb.addItem("27") ;
        nb.addItem("28") ;
        nb.addItem("29") ;
        nb.addItem("30") ;

        p2.add(nb);
        p.add(p2);

        p3 = new Panel() ;
        p3.add(new Label("Revenu mensuel:"));
        rev = new TextField(12);
        p3.add(rev);
        p.add(p3);

        p4 = new Panel() ;
        suite = new Button("Valider") ;
        p4.add(suite);
        p.add(p4);
        add("North", p) ;
        res = new TextArea();

        add("South", res) ;

        delegue = new Delegue (this);
        adapt = new Adaptateur (delegue);
        this.addWindowListener(adapt);
        suite.addActionListener(adapt);

        }
    }
       
public class Emprunt {
    public static void main(String args[]) {
        Fenetre f = new Fenetre() ;
        f.pack() ;
        f.show() ;
        }
    }

class Delegue {
    protected Fenetre fen;
    Delegue (Fenetre f) {
        fen=f;
        }
   
    public void quitter() {
        System.exit(0);
        }

     public void calcule() {
        float montant ;
        int nbannee ;
        float revenu ;
        double mensualite ;
        double tx ;

        montant = new Float(fen.mont.getText()).floatValue() ;
        nbannee = new Integer(fen.nb.getSelectedItem()).intValue() ;
        revenu = new Float(fen.rev.getText()).floatValue() ;
       

        for(int i=0; i<nbannee; i++){
            mensualite = (montant*(tx/12)) / (1-Math.pow(1+(tx/12),(-nbannee*12)));
            }

        boolean condition1 = (nbannee>5)&&(nbannee<30);
        boolean condition2 = (montant <= 100*revenu);
        boolean condition3 = (mensualite < (33/100)*revenu); // condition imposé pour tous les prêts
       
        boolean condition4 = (nbannee>1)&&(nbannee<5) ;
        boolean condition5 = (montant <= 10*revenu);
       
        boolean condition6 = (nbannee>1)&&(nbannee<8);
        boolean condition7 = (montant <= 5*revenu);

        String res1 = "Emprunt";

        String  c1 = fen.cbg.getSelectedCheckbox().getLabel() ;

        if (c1=="immobilier"){
            if (condition1 && condition2) {
                tx = 0.04;
                res1 = res1 + "\nLe taux appliqué est de 4% annuel"+ "\nLe montant de la mensualité est:" + new Double(mensualite).toString() ;
                if(condition3)
                    res1 += "PRET AUTORISE";
                else res1 += "La mensualité dépasse 33% du revenu mensuel - PRET REFUSE";
                }
            }
        else if(c1=="achat de véhicule") {       
            if(condition4 && condition5) {
                tx = 0.06;
                res1 = res1 + "\nLe taux appliqué est de 6% annuel\nLe montant de la mensualité est:" + new Double(mensualite).toString() ;                        
                if(condition3)
                    res1+="PRET AUTORISE";
                    else res1 += "La mensualité dépasse 33% du revenu mensuel - PRET REFUSE";
                }
            }
        else {
            if(condition6 && condition7) {           
                tx = 0.08;
                res1 = res1 + "\nLe taux appliqué est de 8% annuel\nLe montant de la mensualité est:" + new Double(mensualite).toString() ;
                if(condition3)
                    res1 += "PRET AUTORISE";
                    else res1+="La mensualité dépasse 33% du revenu mensuel - PRET REFUSE";
                }
            }       
        fen.res.setText(res1);
        }
    }

class Adaptateur implements WindowListener, ActionListener {
    protected Delegue delegue;
    Adaptateur (Delegue d) {
        delegue=d;
        }

    public void actionPerformed(ActionEvent e) {
          Object src = e.getSource();
        String param = ((Button)src).getLabel();
        if (param == "Valider") delegue.calcule() ;
        }
   
    public void windowOpened(WindowEvent e) {}
    public void windowClosing (WindowEvent e) {
        delegue.quitter();
        }
    public void windowClosed(WindowEvent e) {}
    public void windowIconified (WindowEvent e) {}
    public void windowDeiconified(WindowEvent e) {}
    public void windowActivated(WindowEvent e) {}
    public void windowDeactivated(WindowEvent e) {}
       
    }
0
cs_Cocinou Messages postés 4 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 avril 2008
18 avril 2008 à 10:15
Comment je les initialise????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Cocinou Messages postés 4 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 avril 2008
19 avril 2008 à 11:02
Meric beaucoup ca marche enfin mais la je pense que j'ai un souci avec la formule. Est ce qu'elle est bien écrite? Car il me marque comme résultat 1 ou 0.
0
Rejoignez-nous