#include #include double atof(); double pow(); main(argc, argv) int argc; char *argv[]; { char tmp[200]; double temp = 0; double bprice = 0; double par = 0; double interest = 0; double pvalue1 = 0; double pvalue2 = 0; double marketi = 0; double nperyear = 2; double length = 0; if ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P'))) { fprintf(stdout,"Enter par value <$>.............................. "); fgets(tmp,100,stdin); par = atof(tmp); fprintf(stdout,"Enter stated interest rate....................... "); fgets(tmp,100,stdin); interest = atof(tmp) / 100; fprintf(stdout,"Enter life of bond ....................... "); fgets(tmp,100,stdin); length = atof(tmp); fprintf(stdout,"Enter bond purchase price <$>.................... "); fgets(tmp,100,stdin); bprice = atof(tmp); fprintf(stdout,"Enter market interest rate....................... "); fgets(tmp,100,stdin); marketi = atof(tmp) / 100; fprintf(stdout,"Enter number of interest payments per year....... "); fgets(tmp,100,stdin); nperyear = atof(tmp); fprintf(stdout,"\n"); } else if ((argc == 2) && ((argv[1][0] == 'v') || (argv[1][0] == 'V'))) { fprintf(stdout,"bond: Version 1.00 \n"); fprintf(stdout," Copyright 1987 by Michael Brochstein\n"); fprintf(stdout," All rights reserved.\n"); } else if (argc != 7) { fprintf(stderr,"Usage: bond p \n"); fprintf(stderr," bond v \n"); fprintf(stderr," bond "); fprintf(stderr,"\n"); fprintf(stderr," \n"); fprintf(stderr," \n"); } else if (argc == 7) { par = atof(argv[1]); interest = atof(argv[2]) / 100; length = atof(argv[3]); bprice = atof(argv[4]); marketi = atof(argv[5]) / 100; nperyear = atof(argv[6]); } if ((argc == 7) || ((argc == 2) && ((argv[1][0] == 'p') || (argv[1][0] == 'P')))) { temp = (par * interest * length) + par - bprice; fprintf(stdout,"Total interest payments\n"); fprintf(stdout,"over life of bond................. %12.2f\n", par * interest * length); fprintf(stdout,"Difference between par value\n"); fprintf(stdout,"and purchase price................ %12.2f\n", par - bprice); fprintf(stdout," -------------\n"); fprintf(stdout," Net return to bondholder: %12.2f\n\n", temp); fprintf(stdout,"Average return per year........... %12.2f\n\n", temp / length); fprintf(stdout,"Approximate annual yield.......... %6.2f %%\n\n", 100 * (temp / length) / bprice); fprintf(stdout,"- Using present value analysis techniques;\n\n"); pvalue1 = par / pow(1+(marketi/nperyear),(nperyear*length)); fprintf(stdout,"Present value of Par value of bond.... %12.2f\n", pvalue1); pvalue2 = 1 / pow(1+(marketi/nperyear),(nperyear*length)); pvalue2 = (1 - pvalue2) / (marketi/nperyear); pvalue2 = (interest * par / nperyear) * pvalue2; fprintf(stdout,"Present value of the annuity of\n"); fprintf(stdout,"the interest payments................. %12.2f\n", pvalue2); fprintf(stdout," "); fprintf(stdout," -------------\n"); fprintf(stdout," TOTAL PRESENT VALUE OF BOND: %12.2f\n", pvalue1+pvalue2); } }