<ja*******@hotmail.com> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
I'm working on a program that will compute interest on a savings
account. The interest is compounded monthly for 30 years, and a
desposit is made on the account at the beginning of each year. My
problem is that my C++ skills are pretty limited, and this needs to be
done within a few days. I've figured out a basic structure, but need
help understanding what is and what is not working. Here's what I've
got so far:
#include <iostream>
using namespace std;
int main()
{
double I, P, R;
int i, x;
P=2000.00;
R=00.06;
{
for (i=0; i<30; i++)
{
for (x=0; x<12; x++)
I=P+P*R;
cout<< i << " "<< I<<endl;
i++2000.00;
i++2000.00; does not compile for me.
Did you mean i+= 2000.00; and if so, why are you tring to add 2000.00; to
your for counter? Did you mean I? So I += 2000.00; ? And if so, why would
you add 2000.00 to your interest?
If this 2000.00 is deposited every year, isnt' it the Principal that
increases? So wouldn't it be
P += 2000.00;
?
But, your Interest, I you are already adding the princpal into I see.
Okay...
I = P + P*R;
That makes your Interest equal to Your Principal plus your prinicpal times
rate. Wrong. Your PRINCIPAL becomes your Principal + Interest, which is
Principal * Rate. So a few things gotta be fixed.
#include <iostream>
double Dollars( const double& Amount )
{
return ( static_cast<float>( static_cast<int>( Amount * 100.00 ) ) /
100.00 );
}
int main()
{
double I, P, R;
int y, m;
P = 0.0;
R = 00.06 / 12.00;
for (y = 0; y < 30; y++)
{
std::cout <<"Principal:" << P << " *** Deposit ***:" << 2000.00 << "
New Balance:" << P + 2000.00 << std::endl;
P += 2000.00;
for (m = 0; m < 12; m++)
{
I = Dollars( P * R );
std::cout << "Year:" << y + 1 << " Month:" << m + 1 << "
Principal:" << P << " Interest:" << I << " New Balance:" << P + I <<
std::endl;
P += I;
}
std::string wait;
std::getline( std::cin, wait );
}
std::string wait;
std::getline( std::cin, wait );
return 0;
}
Notice I changed i and x to y and m for Year and Month. Myself, I would go
ahead and use Year and Month as the counters themselves. Gets rid of the
type of confusion you had. Also, I doubt highly if the bank is going to
give you 6% monthy interest. That's 72% yearly interest not even
compounded. So each month one way to calculate it is to simply divide the
yearly rate by 12. Like I said, one way, different loans, even "simple
interest" are calculated different ways sometimes. This one is just common.
So, your monthly interest is 6% divided by 12 months, or 00.06 / 12.
Also, I gave a few more columns so you could see what was going on.
Also, I included a Dollars function. The reason being, the bank doesn't
give you half pennies, it drops them.
Also, changed the payments to the beginning of the year, not the end. Why?
Because otherwise you have 31 payments of 2000 instead of 31 (one at the
very end of the term).
I tested this and it looks somewhat right. The last line I see is:
Year:30 Month:12 Principal:172045 Interest:860.22 New Balance:172905