Problème pour une formule

Résolu
Signaler
Messages postés
4
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 avril 2008
-
Messages postés
4
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 avril 2008
-
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

Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
18
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;
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
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..
Messages postés
4
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 avril 2008

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) {}
       
    }
Messages postés
4
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 avril 2008

Comment je les initialise????
Messages postés
4
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 avril 2008

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.