Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème pour une formule [ Algorithme / Maths ] (Cocinou)

jeudi 17 avril 2008 à 18:17:30 | Problème pour une formule

Cocinou



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.

jeudi 17 avril 2008 à 19:18:12 | Re : Problème pour une formule

Chatbour

Membre Club
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..



jeudi 17 avril 2008 à 20:16:40 | Re : Problème pour une formule

Cocinou

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) {}
       
    }




vendredi 18 avril 2008 à 10:15:23 | Re : Problème pour une formule

Cocinou

Comment je les initialise????

vendredi 18 avril 2008 à 17:58:47 | Re : Problème pour une formule

Chatbour

Membre Club
Réponse acceptée !
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;




samedi 19 avril 2008 à 11:02:08 | Re : Problème pour une formule

Cocinou

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.




Cette discussion est classé dans : montant, tx, res1, if, nbannee


Répondre à ce message

Sujets en rapport avec ce message

simulation emprunt pr projet info licence [ par jcdarche56 ] bonjour!j'ai un petit souci pour un projet dinfo, tou marche sauf le calcul de la mensualité, voici mon fichier: aprè lavoir compilé kan je l'éxécute, projet info [ par jcdarche56 ] bonjour à tous!pour mon projet dinfo pour la fac j'ai une simulation demprunt à faire.Tout marche, mais lorsque la mensualité est calculée et affichée Commenter Expliquer 1partie d'1classe JAVA [ par developppez ] Bonjour, Je doit comprendre cette partie d'une classe, et son fonctionnement, si vous voulez bien m'aider par des commentaires ou des explications. La ecriture de #if USE en java [ par moooonaaaa ] salem, j'ai l'enum suivant en c++ et je veux le faire en java. Citation: typedef enum { ACL_NONE, ACL_SRC_IP, ACL_DST_IP, ACL_MY_IP, ACL_SRC ajout [ par jspimen ] bonjour; voici mon code qui permet d'ajouter des données dans une base Mysql <%@ page import= probleme de pickage d objet dans une scene trois 3D [ par ESISA00 ] bonjour ,je suis entrain de réaliser une application en java 3D tout en chargeant des avatar en x3d en utilisant l API xj3d le probleme c'est que j'ai structure if [ par spy2008 ] slt je cherche si on peux déclarer une fonction qui retourne un résultat dans le if par exemple if(e.getSource()==bouton1){      //le corp de la fonct Blocage sur boucle for [ par ge17 ] Bonjour. J'ai un problème au niveau d'une boucle for dans une de mes class.Dans cette classe j'exécute, lors d'un clique sur un bouton, la méthode s comparer deux date [ par legrandmifi ] Bonjour tout les programmeur; je veux recuprer deux date dans ma base de donner mysql puis faire une comparaison des mois de deux dates ou une compar


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.