domingo, 5 de agosto de 2012

Planeje o futuro através das finanças

Apresento uma aplicação interessante na área de finanças e quem sabe pode despertar o seu perfil poupador. Trata-se da quantia que você pode juntar fazendo depósitos regulares sob uma taxa de juros contante durante um determinado número de períodos.

Após a exibição dos conteúdos de cada arquivo, veja uma demonstração com base nos dados compatíveis com os índices atuais da economia brasileira (agosto/2012). Por exemplo:

  1. Valor do depósito a cada mês: R$ 100,00
  2. Taxa de juros (valor percentual): 0,5% de acordo com este link.
  3. Período: 240 meses = 20 anos

Como sempre nos códigos-fontes de C++, divide-se em 3 arquivos:

  1. Definição da classe
  2. Definições das funções-membros da classe
  3. Programa driver

1. Definição da classe

$ cat rendimento.h

#ifndef RENDIMENTO_H
#define RENDIMENTO_H

class rendimento {
public:
    rendimento();
    rendimento(const rendimento& orig);
    virtual ~rendimento();
    void calculo(int, float, float);
private:

};

#endif /* RENDIMENTO_H */

2. Definições das funções-membros da classe

$ cat rendimento.cpp

#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <cmath>
#include <iomanip>
using std::setw;
using std::fixed;
using std::setprecision;
#include "rendimento.h"

rendimento::rendimento() {
}

rendimento::rendimento(const rendimento& orig) {
}

rendimento::~rendimento() {
}

void rendimento::calculo(int periodo, float juros, float depositoRegular) {
    
    float montante;  
    
    for (int i=1; i<=periodo; i++)
    {
        montante=(1+juros)* (pow(1+juros,i)-1)*depositoRegular/juros;        
        cout << setw(3) << i << " " << fixed << setprecision(2) << setw(10) <<  montante << "   ";
        if (i%4==0)
            cout << endl;
    }
}

3. Programa driver

$ cat main.cpp

#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include "rendimento.h"

int main(int argc, char** argv) {
    
    int tempo;
    float taxa, valorInicial, depositoRegular;
    
    cout << "Digite o valor depositado regular: ";
    cin >> depositoRegular;
    cout << "Digite a taxa de juros (em porcento): ";
    cin >> taxa;
    cout << "Digite o período de rendimentos: ";
    cin >> tempo;
    
    taxa/=100.0;
    
    rendimento mycalculo;
    mycalculo.calculo(tempo, taxa, depositoRegular);

    return 0;
}

Demonstração do resultado:

./caderneta_poupanca 
Digite o valor depositado regular: 100 
Digite a taxa de juros (em porcento): 0.5
Digite o período de rendimentos: 240
  1     100.50     2     201.50     3     303.01     4     405.03   
  5     507.55     6     610.59     7     714.14     8     818.21   
  9     922.80    10    1027.92    11    1133.56    12    1239.72   
 13    1346.42    14    1453.65    15    1561.42    16    1669.73   
 17    1778.58    18    1887.97    19    1997.91    20    2108.40   
 21    2219.44    22    2331.04    23    2443.20    24    2555.91   
 25    2669.19    26    2783.04    27    2897.45    28    3012.44   
 29    3128.00    30    3244.14    31    3360.86    32    3478.17   
 33    3596.06    34    3714.54    35    3833.61    36    3953.28   
 37    4073.54    38    4194.41    39    4315.88    40    4437.96   
 41    4560.65    42    4683.96    43    4807.88    44    4932.42   
 45    5057.58    46    5183.37    47    5309.78    48    5436.83   
 49    5564.52    50    5692.84    51    5821.80    52    5951.41   
 53    6081.67    54    6212.58    55    6344.14    56    6476.36   
 57    6609.24    58    6742.79    59    6877.00    60    7011.89   
 61    7147.45    62    7283.68    63    7420.60    64    7558.21   
 65    7696.50    66    7835.48    67    7975.16    68    8115.53   
 69    8256.61    70    8398.39    71    8540.89    72    8684.09   
 73    8828.01    74    8972.65    75    9118.01    76    9264.10   
 77    9410.92    78    9558.48    79    9706.77    80    9855.80   
 81   10005.58    82   10156.11    83   10307.39    84   10459.43   
 85   10612.23    86   10765.79    87   10920.12    88   11075.22   
 89   11231.09    90   11387.75    91   11545.19    92   11703.41   
 93   11862.43    94   12022.24    95   12182.85    96   12344.27   
 97   12506.49    98   12669.52    99   12833.37   100   12998.04   
101   13163.53   102   13329.84   103   13496.99   104   13664.98   
105   13833.80   106   14003.47   107   14173.99   108   14345.36   
109   14517.59   110   14690.67   111   14864.63   112   15039.45   
113   15215.15   114   15391.72   115   15569.18   116   15747.53   
117   15926.77   118   16106.90   119   16287.93   120   16469.88   
121   16652.72   122   16836.49   123   17021.17   124   17206.78   
125   17393.31   126   17580.78   127   17769.18   128   17958.53   
129   18148.82   130   18340.06   131   18532.26   132   18725.42   
133   18919.55   134   19114.65   135   19310.72   136   19507.78   
137   19705.81   138   19904.84   139   20104.87   140   20305.89   
141   20507.92   142   20710.96   143   20915.02   144   21120.09   
145   21326.19   146   21533.32   147   21741.49   148   21950.70   
149   22160.95   150   22372.26   151   22584.62   152   22798.04   
153   23012.53   154   23228.09   155   23444.73   156   23662.46   
157   23881.27   158   24101.18   159   24322.18   160   24544.29   
161   24767.51   162   24991.85   163   25217.31   164   25443.90   
165   25671.62   166   25900.47   167   26130.48   168   26361.63   
169   26593.94   170   26827.41   171   27062.04   172   27297.85   
173   27534.84   174   27773.02   175   28012.38   176   28252.94   
177   28494.71   178   28737.68   179   28981.87   180   29227.28   
181   29473.92   182   29721.79   183   29970.89   184   30221.25   
185   30472.86   186   30725.72   187   30979.85   188   31235.25   
189   31491.92   190   31749.88   191   32009.13   192   32269.68   
193   32531.53   194   32794.68   195   33059.16   196   33324.95   
197   33592.08   198   33860.54   199   34130.34   200   34401.49   
201   34674.00   202   34947.87   203   35223.11   204   35499.73   
205   35777.73   206   36057.11   207   36337.90   208   36620.09   
209   36903.69   210   37188.71   211   37475.15   212   37763.03   
213   38052.34   214   38343.10   215   38635.32   216   38929.00   
217   39224.14   218   39520.76   219   39818.86   220   40118.46   
221   40419.55   222   40722.15   223   41026.26   224   41331.89   
225   41639.05   226   41947.75   227   42257.98   228   42569.77   
229   42883.12   230   43198.04   231   43514.53   232   43832.60   
233   44152.27   234   44473.53   235   44796.39   236   45120.88   
237   45446.98   238   45774.71   239   46104.09   240   46435.11   

Considerações finais:

Os códigos-fontes foram escritos através da IDE Netbeans.

Caso prefira colar os respectivos conteúdo nos três arquivos com os nomes sugeridos, a linha de comando é:

$ g++ rendimento.cpp main.cpp -o caderneta_poupanca.out -ansi

O cálculo pode ser conferido através do BCB - Calculadora do cidadão.

Planeje seu futuro! Este programa pode auxiliar como lidar com o seu investimento.