Prêt à échéance fixe (menu)
, par
Utilisation des fonctions pour l’écriture d’un programme de simulation de prêts bancaires
Nous allons aujourd’hui aider à réduire la dette privée en écrivant un outil de simulation de prêts (à la consommation, immobilier, etc.) qui permettra de simuler le remboursement d’un prêt à taux fixe à échéances constantes.
La bibliothèque math.h fournira les fonctions mathématiques, et la page wikipedia plan de remboursement nous donnera quelques formules.
Solution
- /* Declaration de fonctionnalites supplementaires */
- #include <stdlib.h> /* pour EXIT_SUCCESS */
- #include <stdio.h> /* pour printf() */
- #include <math.h> /* pour les fonctions mathematiques : pow(base,exp), log(x) */
- /* Declaration des constantes et types utilisateur */
- #define TRUE 1
- #define FALSE 0
- /* Declaration des fonctions utilisateur */
- void afficher_menu();
- void afficher_pret(double capital, double taux, double echeance, double duree);
- int choix_utilisateur();
- double valeur_utilisateur();
- double calculer_echeance(double capital, double taux, double duree);
- double calculer_duree(double capital, double taux, double echeance);
- double mensualiser_taux(double taux);
- void afficher_amortissement(double capital, double taux, double echeance, double duree);
- /* Fonction principale */
- int main()
- {
- /* Declaration et initialisation des variables */
- double capital = 200.0; /* capital emprunté */
- double taux = 0.035; /* taux annuel */
- double echeance = 1.0; /* montant echeance mensuelle */
- double duree = 25.0; /* nombre d'annees */
- int continuer = TRUE;
- int choix = 0;
- echeance = calculer_echeance(capital, taux, duree);
- while (continuer)
- {
- afficher_menu();
- choix = choix_utilisateur();
- if (0 == choix) /* quitter */
- {
- continuer = FALSE;
- }
- if (1 == choix) /* afficher le pret */
- {
- afficher_pret(capital, taux, echeance, duree);
- }
- if (2 == choix) /* afficher le tableau d'amortissement */
- {
- afficher_amortissement(capital, taux, echeance, duree);
- }
- if (3 == choix) /* changer le capital emprunte */
- {
- capital = valeur_utilisateur();
- echeance = calculer_echeance(capital, taux, duree);
- afficher_pret(capital, taux, echeance, duree);
- }
- if (4 == choix) /* changer le taux */
- {
- taux = valeur_utilisateur() / 100;
- echeance = calculer_echeance(capital, taux, duree);
- afficher_pret(capital, taux, echeance, duree);
- }
- if (5 == choix) /* changer la duree */
- {
- duree = valeur_utilisateur();
- echeance = calculer_echeance(capital, taux, duree);
- afficher_pret(capital, taux, echeance, duree);
- }
- if (6 == choix) /* fixer l'echeance calculer la duree */
- {
- echeance= valeur_utilisateur();
- duree = calculer_duree(capital, taux, echeance);
- afficher_pret(capital, taux, echeance, duree);
- }
- if (7 == choix) /* fixer le taux calculer la duree */
- {
- taux = valeur_utilisateur() / 100;
- duree = calculer_duree(capital, taux, echeance);
- afficher_pret(capital, taux, echeance, duree);
- }
- }
- /* Greetings */
- /* Valeur fonction */
- return EXIT_SUCCESS;
- }
- /* Definition des fonctions utilisateur */
- void afficher_menu()
- {
- }
- int choix_utilisateur()
- {
- int choix = 0;
- return choix;
- }
- double valeur_utilisateur()
- {
- double valeur = 0.0;
- return valeur;
- }
- void afficher_pret(double capital, double taux, double echeance, double duree)
- {
- }
- double calculer_echeance(double capital, double taux, double duree)
- {
- double tauxm = mensualiser_taux(taux);
- }
- double calculer_duree(double capital, double taux, double echeance)
- {
- double tauxm = mensualiser_taux(taux);
- }
- double mensualiser_taux(double taux)
- {
- }
- void afficher_amortissement(double capital, double taux, double echeance, double duree)
- {
- double tauxm = mensualiser_taux(taux);
- double interets;
- double total_interets = 0.0;
- double dette;
- int mois = 0;
- dette = capital;
- while (dette > 0)
- {
- mois = mois + 1;
- interets = dette * tauxm;
- total_interets = total_interets + interets;
- dette = dette + interets - echeance;
- if (mois % 6 == 1)
- {
- printf("mois \t%d\t restant du \t%g\t echeance\t %g (%g%% interets)\n", mois, dette, echeance, interets/echeance * 100.0);
- }
- }
- printf("Total des interets : %g (%g%% du capital)\n", total_interets, total_interets / capital * 100.0);
- }