#include #include double atof(); double pow(); main(argc, argv) int argc; char *argv[]; { char tmp[200]; double fvalue =0; double interest = 0; double pvalue = 0; double per_intr = 0; double length = 0; double nmperiod = 1; if ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P'))) { fprintf(stdout,"Enter future value <$>........................... "); fgets(tmp,100,stdin); fvalue = atof(tmp); fprintf(stdout,"Enter interest rate ................ "); fgets(tmp,100,stdin); interest = atof(tmp) / 100; fprintf(stdout,"Enter length of time .................... "); fgets(tmp,100,stdin); length = atof(tmp); fprintf(stdout,"Enter number of compounding periods ... "); fgets(tmp,100,stdin); nmperiod = atof(tmp); fprintf(stdout,"\n"); } else if ((argc == 2) && ((argv[1][0] == 'v') || (argv[1][0] == 'V'))) { fprintf(stdout,"pv: Version 1.00 \n"); fprintf(stdout," Copyright 1987 by Michael Brochstein\n"); fprintf(stdout," All rights reserved.\n"); } else if ((argc != 4) && (argc != 5)) { fprintf(stderr,"Usage: pv p \n"); fprintf(stderr," pv v \n"); fprintf(stderr," pv "); fprintf(stderr," \n"); fprintf(stderr," pv "); fprintf(stderr," "); fprintf(stderr,"\n \n"); } else if ((argc == 4) || (argc == 5)) { fvalue = atof(argv[1]); interest = atof(argv[2]) / 100; length = atof(argv[3]); if (argc == 5) { nmperiod = atof(argv[4]); } } if ((argc == 4) || (argc == 5) || ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P')))) { if (nmperiod <= 0) { fprintf(stderr,"pv: Number of compounding "); fprintf(stderr,"periods must be >= 1; using 1\n\n"); nmperiod = 1; } per_intr = (1.0 / nmperiod) * interest; pvalue = 1 / pow(1+per_intr,(length/12)*nmperiod); /* fprintf(stdout,"Present value factor.... %14.4f\n",pvalue); */ fprintf(stdout,"Present value........... %14.2f\n",pvalue * fvalue); } }