Probleme avec le calcule

Fermé
Aurelien - 17 avril 2008 à 18:22
 Aurelien - 17 avril 2008 à 23:34
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.

1 réponse

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 avril 2008 à 20:18
bonjour,

mets cette boucle à la fin ...
for(int i=0; i<nbannee; i++){
mensualite = (montant*(tx/12)) / (1-Math.pow(1+(tx/12),(-nbannee*12)));
}
0
ca change rien tjs le meme probleme. Ca c mon fichier complet:

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