Il est souvent frustrant de disposer, dans les tableurs, de fonctions financières puissantes capables de résoudre instantanément des problèmes complexes, tout en constatant que ces mêmes fonctionnalités sont absentes de nombreux langages de programmation. Des logiciels comme Lotus 1-2-3 et Quattro Pro ont longtemps offert aux utilisateurs une vaste collection de fonctions permettant d'effectuer des calculs financiers avancés sans avoir à manipuler directement les équations sous-jacentes. Lorsqu'un programmeur souhaite intégrer ces mêmes capacités dans une application développée en langage C, il doit souvent reconstruire lui-même les formules mathématiques nécessaires. Parmi les fonctions les plus utiles dans ce domaine figure NPer (Number of Periods), dont le rôle consiste à déterminer le nombre de périodes de paiement nécessaires pour atteindre un objectif financier donné. Cette fonction est particulièrement intéressante dans les calculs de prêts, d'hypothèques, d'épargne et d'investissements, car elle permet de répondre à une question fréquente : combien de versements faudra-t-il effectuer avant d'atteindre un montant cible ou de rembourser entièrement une dette ?
La fonction NPer repose sur les principes fondamentaux des mathématiques financières et tient compte de plusieurs paramètres importants, notamment le taux d'intérêt appliqué à chaque période, le montant du paiement périodique, la valeur actuelle du capital, la valeur future désirée ainsi que le moment où les paiements sont effectués. Grâce à ces informations, elle est capable de calculer avec précision le nombre de périodes requises pour atteindre un objectif financier déterminé. Le programme en langage C présenté ci-dessous reproduit cette fonctionnalité à l'aide des fonctions logarithmiques fournies par la bibliothèque mathématique standard. L'algorithme utilise une formule dérivée des équations d'actualisation financière afin de déterminer directement le nombre de périodes sans avoir recours à des simulations successives. Dans l'exemple proposé, on cherche à savoir combien de périodes seront nécessaires pour atteindre un montant de 50 000 $, en partant d'un solde actuel de 633 $, avec des versements de 2 000 $ et un taux d'intérêt de 11,5 %. Le programme retourne alors la valeur 12,12, indiquant qu'un peu plus de douze périodes seront nécessaires pour atteindre l'objectif fixé. Cet exemple illustre parfaitement comment les fonctions financières classiques des tableurs peuvent être reproduites dans une application C et démontre l'utilité des logarithmes dans la résolution de problèmes financiers pratiques. Grâce à ce type de calcul, il devient possible de développer des simulateurs d'investissement, des calculateurs d'épargne ou des outils d'analyse financière capables de fournir rapidement des prévisions précises sur l'évolution d'un capital au fil du temps.
A l'aide du code source C suivant, vous trouverez la réponse que vous souhaitez :
- #include "stdio.h"
- #include "math.h"
-
- double NPer(double Rate,double Pmt,double PV,double FV,double PType) {
- double F=Pmt*(1+Rate*PType);
- if(fabs(Rate)>1E-6) return log((F-Rate*FV)/(PV*Rate+F))/log(1+Rate);
- else return -(FV+PV)/(PV*Rate+F);
- }
-
- void main() {
- printf("En disposant de 2000$, et que le solde actuel est de 633$ et l'intérêt de 11,5%:");
- printf("%.2f\n",NPer(0.115,-2000,-633,50000,0));
- }
on obtiendra le résultat suivant :
En disposant de 2000$, et que le solde actuel est de 633$ et l'intérêt de 11,5%:12.12