Section courante

A propos

Section administrative du site

Il est souvent frustrant de disposer dans les tableurs de fonctions financières extrêmement puissantes permettant d'obtenir instantanément des résultats complexes, sans retrouver facilement ces mêmes possibilités dans un programme développé sur mesure. Des logiciels historiques comme Lotus 1-2-3 ou Quattro Pro ont popularisé de nombreuses fonctions financières spécialisées qui facilitent l'analyse des prêts, des hypothèques, des investissements et des remboursements. Lorsqu'un programmeur souhaite reproduire ces calculs dans une application C++, il découvre rapidement que ces fonctions ne sont généralement pas incluses dans les bibliothèques standards du langage et qu'il doit lui-même en reconstituer les mécanismes mathématiques.

Parmi ces fonctions particulièrement utiles figure la fonction «IPaymt» (Interest Payment), appelée «Interet» dans certaines versions francisées des tableurs. Cette fonction permet de déterminer la portion d'un versement périodique correspondant uniquement aux intérêts d'un emprunt pour une période donnée. Dans le cadre d'un prêt hypothécaire ou d'un financement à long terme, cette information est essentielle puisqu'elle permet de distinguer la partie du paiement consacrée au remboursement du capital de celle servant à payer les intérêts au prêteur. Elle constitue également un outil précieux pour l'analyse financière, la planification budgétaire et l'élaboration de tableaux d'amortissement détaillés.

Le calcul de cette valeur nécessite plusieurs opérations intermédiaires, notamment la détermination du versement périodique, l'évaluation du solde restant à une période précise et l'application du taux d'intérêt approprié. Grâce aux fonctions mathématiques fournies par la bibliothèque standard du C++, il est toutefois possible de reproduire fidèlement le comportement des célèbres tableurs financiers. Dans l'exemple suivant, le programme calcule la portion d'intérêts d'un prêt hypothécaire de 200 000 $ amorti sur 30 ans à un taux annuel de 15 %. Le code source C++ présenté permet ainsi d'obtenir automatiquement le montant des intérêts associés à une période donnée du prêt :

Essayer maintenant !
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. double FVal(double Rate,double Nper,double Pmt,double PV,double PType) {
  5.     double F=exp(Nper*log(1.0+Rate));
  6.     if(fabs(Rate)<1E-6) return -Pmt*Nper*(1.0+(Nper-1.0)*Rate/2.0)*(1.0+Rate*PType)-PV*F;
  7.                    else return Pmt*(1.0-F)*(1.0/Rate+PType)-PV*F;
  8. }
  9.  
  10. double Paymt(double Rate,double Nper,double PV,double FV,double PType) {
  11.     double F=exp(Nper*log(1.0+Rate));
  12.     return (FV+PV*F)*Rate/((1.0+Rate*PType)*(1.0-F));
  13. }
  14.  
  15. double IPAYMT(double Rate,double Per,double NPer,double PV,double FV,double PType) {
  16.     return Rate*FVal(Rate,Per-PType-1.0,Paymt(Rate,NPer,PV,FV,PType),PV,PType);
  17. }
  18.  
  19. int main() {
  20.     std::cout << "Prêt hypothecaire de 30 ans à 15% de 200 000$: ";
  21.     std::cout << IPAYMT(0.15/12.0,2.0*12.0,30.0*12.0,200000.0,2.0,0.0) << std::endl;
  22.     return 0;
  23. }

on obtiendra le résultat suivant :

Prêt hypothécaire de 30 ans à 15% de 200 000$:
-2490.45$


Dernière mise à jour : Mardi, le 24 novembre 2015