//Cameron Pham CS1A Chapter 6, p. 371, #9
//
/******************************************************************************
* CALCULATE INVESTMENT DEPOSIT
* ______________________________________________________________________________
* This program accepts floating point values for the future value of money
* wanted in an account, the annual interest rate, and number of years planned
* to let money sit in the account. It then calculates the present value
* needed to deposit money today in order to accumulate to the future value.
* ______________________________________________________________________________
* INPUT
* Future value // Amount of money wanted in account
* Annual interest rate // Rate at which interest is accumulated
* Years // Number of years planned to let money sit
*
* OUTPUT
* Present value // Amount of money necessary for deposit
*
*******************************************************************************/
#include <iostream>
#include <cmath> // Required for pow()
using namespace std;
float presentValue( float , float , float ) ;
int main( )
{
float futureVal;
float interestRate;
float numYears;
float presentVal;
cout << "Enter the future value you want in your account, annual interest" ;
cout << " rate, and number of years you plan to let the money sit in the" ;
cout << " account, and I will tell you the amount that you need to deposit" ;
cout << " today." << endl;
presentVal = presentValue( futureVal, interestRate, numYears) ;
cout << "You will have to deposit $" << presentVal << " today." << endl;
return 0 ;
}
float presentValue( float futureVal, float interestRate, float numYears)
{
float future;
float rate;
float years;
float present;
cin >> future >> rate >> years;
present = ( future) / pow ( ( 1 + rate) , years) ;
return present;
}
Ly9DYW1lcm9uIFBoYW0gICAgICAgICAgICAgQ1MxQSAgICAgICAgICAgICAgICAgICAgICAgQ2hhcHRlciA2LCBwLiAzNzEsICM5Ci8vCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBDQUxDVUxBVEUgSU5WRVNUTUVOVCBERVBPU0lUCiogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiogVGhpcyBwcm9ncmFtIGFjY2VwdHMgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZvciB0aGUgZnV0dXJlIHZhbHVlIG9mIG1vbmV5Ciogd2FudGVkIGluIGFuIGFjY291bnQsIHRoZSBhbm51YWwgaW50ZXJlc3QgcmF0ZSwgYW5kIG51bWJlciBvZiB5ZWFycyBwbGFubmVkCiogdG8gbGV0IG1vbmV5IHNpdCBpbiB0aGUgYWNjb3VudC4gSXQgdGhlbiBjYWxjdWxhdGVzIHRoZSBwcmVzZW50IHZhbHVlCiogbmVlZGVkIHRvIGRlcG9zaXQgbW9uZXkgdG9kYXkgaW4gb3JkZXIgdG8gYWNjdW11bGF0ZSB0byB0aGUgZnV0dXJlIHZhbHVlLgoqIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoqIElOUFVUCiogRnV0dXJlIHZhbHVlCQkJLy8gQW1vdW50IG9mIG1vbmV5IHdhbnRlZCBpbiBhY2NvdW50CiogQW5udWFsIGludGVyZXN0IHJhdGUJLy8gUmF0ZSBhdCB3aGljaCBpbnRlcmVzdCBpcyBhY2N1bXVsYXRlZAoqIFllYXJzIAkJCQkvLyBOdW1iZXIgb2YgeWVhcnMgcGxhbm5lZCB0byBsZXQgbW9uZXkgc2l0CiogCiogT1VUUFVUCiogUHJlc2VudCB2YWx1ZQkJCS8vIEFtb3VudCBvZiBtb25leSBuZWNlc3NhcnkgZm9yIGRlcG9zaXQKKiAKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+IC8vIFJlcXVpcmVkIGZvciBwb3coKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZmxvYXQgcHJlc2VudFZhbHVlKGZsb2F0LCBmbG9hdCwgZmxvYXQpOwoKaW50IG1haW4oKSAKewoJZmxvYXQgZnV0dXJlVmFsOwoJZmxvYXQgaW50ZXJlc3RSYXRlOwoJZmxvYXQgbnVtWWVhcnM7CglmbG9hdCBwcmVzZW50VmFsOwoJCgljb3V0IDw8ICJFbnRlciB0aGUgZnV0dXJlIHZhbHVlIHlvdSB3YW50IGluIHlvdXIgYWNjb3VudCwgYW5udWFsIGludGVyZXN0IjsKCWNvdXQgPDwgIiByYXRlLCBhbmQgbnVtYmVyIG9mIHllYXJzIHlvdSBwbGFuIHRvIGxldCB0aGUgbW9uZXkgc2l0IGluIHRoZSI7Cgljb3V0IDw8ICIgYWNjb3VudCwgYW5kIEkgd2lsbCB0ZWxsIHlvdSB0aGUgYW1vdW50IHRoYXQgeW91IG5lZWQgdG8gZGVwb3NpdCI7Cgljb3V0IDw8ICIgdG9kYXkuIiA8PCBlbmRsOwoJcHJlc2VudFZhbCA9IHByZXNlbnRWYWx1ZShmdXR1cmVWYWwsIGludGVyZXN0UmF0ZSwgbnVtWWVhcnMpOwoJY291dCA8PCAiWW91IHdpbGwgaGF2ZSB0byBkZXBvc2l0ICQiIDw8IHByZXNlbnRWYWwgPDwgIiB0b2RheS4iIDw8IGVuZGw7CgkKCXJldHVybiAwOwp9CgpmbG9hdCBwcmVzZW50VmFsdWUoZmxvYXQgZnV0dXJlVmFsLCBmbG9hdCBpbnRlcmVzdFJhdGUsIGZsb2F0IG51bVllYXJzKQp7CglmbG9hdCBmdXR1cmU7CglmbG9hdCByYXRlOwoJZmxvYXQgeWVhcnM7CglmbG9hdCBwcmVzZW50OwoJCgljaW4gPj4gZnV0dXJlID4+IHJhdGUgPj4geWVhcnM7CgkKCXByZXNlbnQgPSAoZnV0dXJlKSAvIHBvdygoMSArIHJhdGUpLCB5ZWFycyk7CgkKCXJldHVybiBwcmVzZW50Owp9