Fonction en C pour simulation de prêt
mvgeek
Messages postés
1252
Date d'inscription
Statut
Contributeur sécurité
Dernière intervention
-
mvgeek Messages postés 1252 Date d'inscription Statut Contributeur sécurité Dernière intervention -
mvgeek Messages postés 1252 Date d'inscription Statut Contributeur sécurité Dernière intervention -
Bonjour,
pour m'entraîner dans la programmation, je cherche à coder une fonction calculant une simulation de prêt immobilier. Voici la formule sur laquelle je me suis calqué (que j'ai retranscrit en ligne) : https://www.guideducredit.com/pret-immobilier/simulation-pret-immobilier/simulation-mensualites.php
Voici ma formule de programmation en C :
float formule(float montant, int mensualite, float interet)
{
float puissance_douze_plus_t = 0;
puissance_douze_plus_t = 12 + interet;
int increment_puissance_douze_plus_t = 0;
while(increment_puissance_douze_plus_t < mensualite)
{
puissance_douze_plus_t * puissance_douze_plus_t;
increment_puissance_douze_plus_t++;
}
float douze_puissance = 0;
douze_puissance = 12;
int increment_douze_puissance = 0;
while(increment_douze_puissance < mensualite)
{
douze_puissance * douze_puissance;
increment_douze_puissance++;
}
float cent_quarante_quatre = 0;
cent_quarante_quatre = 144 * (12+interet);
int increment_cent_quarante_quatre = 0;
while(increment_cent_quarante_quatre < mensualite)
{
cent_quarante_quatre * cent_quarante_quatre;
increment_cent_quarante_quatre++;
}
float n_plus_deux = mensualite;
n_plus_deux = n_plus_deux + 2;
float douze_puissance_plus_deux = 0;
douze_puissance_plus_deux = 12;
int increment_douze_puissance_plus_deux = 0;
while(increment_douze_puissance_plus_deux < mensualite)
{
douze_puissance_plus_deux * douze_puissance_plus_deux;
increment_douze_puissance_plus_deux++;
}
float resultat_final = 0;
resultat_final = montant * interet * puissance_douze_plus_t * douze_puissance / (cent_quarante_quatre - douze_puissance_plus_deux);
return resultat_final;
}
Bizarrement, mon IDE (Codeblocks) semble dire que les "machin * machin" dans les boucles ne changent rien.
D'ailleurs, quelque soit les variables, le résultat demeure fixe.
Une idée ?
Cordialement.
pour m'entraîner dans la programmation, je cherche à coder une fonction calculant une simulation de prêt immobilier. Voici la formule sur laquelle je me suis calqué (que j'ai retranscrit en ligne) : https://www.guideducredit.com/pret-immobilier/simulation-pret-immobilier/simulation-mensualites.php
Voici ma formule de programmation en C :
float formule(float montant, int mensualite, float interet)
{
float puissance_douze_plus_t = 0;
puissance_douze_plus_t = 12 + interet;
int increment_puissance_douze_plus_t = 0;
while(increment_puissance_douze_plus_t < mensualite)
{
puissance_douze_plus_t * puissance_douze_plus_t;
increment_puissance_douze_plus_t++;
}
float douze_puissance = 0;
douze_puissance = 12;
int increment_douze_puissance = 0;
while(increment_douze_puissance < mensualite)
{
douze_puissance * douze_puissance;
increment_douze_puissance++;
}
float cent_quarante_quatre = 0;
cent_quarante_quatre = 144 * (12+interet);
int increment_cent_quarante_quatre = 0;
while(increment_cent_quarante_quatre < mensualite)
{
cent_quarante_quatre * cent_quarante_quatre;
increment_cent_quarante_quatre++;
}
float n_plus_deux = mensualite;
n_plus_deux = n_plus_deux + 2;
float douze_puissance_plus_deux = 0;
douze_puissance_plus_deux = 12;
int increment_douze_puissance_plus_deux = 0;
while(increment_douze_puissance_plus_deux < mensualite)
{
douze_puissance_plus_deux * douze_puissance_plus_deux;
increment_douze_puissance_plus_deux++;
}
float resultat_final = 0;
resultat_final = montant * interet * puissance_douze_plus_t * douze_puissance / (cent_quarante_quatre - douze_puissance_plus_deux);
return resultat_final;
}
Bizarrement, mon IDE (Codeblocks) semble dire que les "machin * machin" dans les boucles ne changent rien.
D'ailleurs, quelque soit les variables, le résultat demeure fixe.
Une idée ?
Cordialement.
A voir également:
- Fonction en C pour simulation de prêt
- Fonction si et - Guide
- Simulation covering moto - Forum Graphisme
- Colis prêt pour la livraison au relais - Forum Consommation & Internet
- Fonction miroir - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
2 réponses
Bonjour,
C'est normal car vous ne précisez pas à qui est affectée le résultat de l'opération :
quand vous faites :
le calcul est dans le vide, comme ceci :
"a" va recevoir la valeur, et comme ceci :
c'est la var douze_puissance qui récupère sa valeur * sa valeur
Je pense que vous voyez d'où venait le problème
C'est normal car vous ne précisez pas à qui est affectée le résultat de l'opération :
quand vous faites :
douze_puissance * douze_puissance;
le calcul est dans le vide, comme ceci :
a = douze_puissance*douze_puissance;
"a" va recevoir la valeur, et comme ceci :
douze_puissance *= douze_puissance;
c'est la var douze_puissance qui récupère sa valeur * sa valeur
Je pense que vous voyez d'où venait le problème
Argh, maintenant, après avoir amélioré le code, je me retrouve avec un nouveau problème. Quelqu'un pourrait me dire quelle a été mon erreur ci-dessous ? :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double formule(double emprunt, double taux, double duree)
{
double puissance_douze_plus_t = 0;
puissance_douze_plus_t = 12 + taux;
puissance_douze_plus_t = pow(puissance_douze_plus_t, duree);
double douze_puissance = 12;
douze_puissance = pow(douze_puissance, duree);
double cent_quarante_quatre = 0;
cent_quarante_quatre = 144 * (12 + taux);
cent_quarante_quatre = pow(cent_quarante_quatre, duree);
double douze_puissance_plus_deux = 12;
double taux_plus_2 = taux + 2;
douze_puissance_plus_deux = pow(douze_puissance_plus_deux, taux_plus_2);
return emprunt * taux * puissance_douze_plus_t * douze_puissance / (cent_quarante_quatre - douze_puissance_plus_deux);
}
int main()
{
printf("Bienvenue sur SimulFi ! Tapez 1 pour continuer : ");
int accord = 0;
scanf("%d", &accord);
if(accord == 1)
{
double emprunt = 0; //Initialisation : variable du capital emprunté
double taux = 0; //Initialisation : variable du taux proportionnel annuel
double duree = 0; //Initialisation : variable de la durée (nombre de mois)
double reponse = 0; //Initialisation : variable de la réponse
printf("Capital emprunté (mettez des points à la place des virgules !) : ");
scanf("%f", &emprunt);
printf("Taux annuel proportionnel des intérêts (mettez des points à la place des virgules !) : ");
scanf("%f", &taux);
printf("Durée du prêt (en mois) : ");
scanf("%f", &duree);
reponse = formule(emprunt,taux,duree);
printf("Le montant des mensualités est de : %f", reponse);
}
else
{
printf("Annulation !");
return 0;
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double formule(double emprunt, double taux, double duree)
{
double puissance_douze_plus_t = 0;
puissance_douze_plus_t = 12 + taux;
puissance_douze_plus_t = pow(puissance_douze_plus_t, duree);
double douze_puissance = 12;
douze_puissance = pow(douze_puissance, duree);
double cent_quarante_quatre = 0;
cent_quarante_quatre = 144 * (12 + taux);
cent_quarante_quatre = pow(cent_quarante_quatre, duree);
double douze_puissance_plus_deux = 12;
double taux_plus_2 = taux + 2;
douze_puissance_plus_deux = pow(douze_puissance_plus_deux, taux_plus_2);
return emprunt * taux * puissance_douze_plus_t * douze_puissance / (cent_quarante_quatre - douze_puissance_plus_deux);
}
int main()
{
printf("Bienvenue sur SimulFi ! Tapez 1 pour continuer : ");
int accord = 0;
scanf("%d", &accord);
if(accord == 1)
{
double emprunt = 0; //Initialisation : variable du capital emprunté
double taux = 0; //Initialisation : variable du taux proportionnel annuel
double duree = 0; //Initialisation : variable de la durée (nombre de mois)
double reponse = 0; //Initialisation : variable de la réponse
printf("Capital emprunté (mettez des points à la place des virgules !) : ");
scanf("%f", &emprunt);
printf("Taux annuel proportionnel des intérêts (mettez des points à la place des virgules !) : ");
scanf("%f", &taux);
printf("Durée du prêt (en mois) : ");
scanf("%f", &duree);
reponse = formule(emprunt,taux,duree);
printf("Le montant des mensualités est de : %f", reponse);
}
else
{
printf("Annulation !");
return 0;
}
return 0;
}
puissance_douze_t = puissance_douze_t * puissance_douze_t.
Dire que je fais encore ce genre d'erreurs... x)