<ja*******@hotm ail.com> wrote in message

news:11******** **************@ g14g2000cwa.goo glegroups.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<flo at>( 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:17204 5 Interest:860.22 New Balance:172905