Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunti i sorgenti per Greenleaf Math Library (gfm.dll) git-svn-id: svn://10.65.10.50/trunk@10079 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #include <stdio.h>
 | |
| #include "gm.h"
 | |
| void	getdec(char *,DEC *);
 | |
| void main(void);
 | |
| static	DEC	*payintr[500], *payprin[500], *balance[500];
 | |
| 
 | |
| void	main()
 | |
| {
 | |
| 	int	nper, nyear, begend, i;
 | |
| 	DECP	pv, pmt, intr, aintr;
 | |
| extern	DEC	*payintr[500], *payprin[500], *balance[500];
 | |
| 
 | |
| 	printf("Amortization schedule\n");
 | |
| 
 | |
| 	getdec("Amount of loan (positive):  ", pv);
 | |
| 	getdec("Percentage annual interest rate:  ", aintr);
 | |
| 	printf("Length of loan (years):  ");
 | |
| 	dscanf("%d", &nyear);
 | |
| 	getdec("Monthly payment (positive):  ", pmt);
 | |
| 
 | |
| 	nper = nyear * 12;
 | |
| 	DivideDecimalByInt(intr, aintr, 12);
 | |
| 	begend = GM_END;
 | |
| 
 | |
| 	AllocateDecimalArray(payintr, nper+1);
 | |
| 	AllocateDecimalArray(payprin, nper+1);
 | |
| 	AllocateDecimalArray(balance, nper+1);
 | |
| 		
 | |
| 	AmortizeTable(payintr, payprin, balance, intr,
 | |
| 		pv, pmt, begend, nper);
 | |
| 
 | |
| 	printf("%15s%20s%20s%20s\n", "Payment #", "Interest", 
 | |
| 		"Principal", "Balance");
 | |
| 	for (i=1; i<=nper; i++)
 | |
| 		dprintf("%15d%20v%20v%20v\n", i, payintr[i],
 | |
| 			payprin[i], balance[i]);
 | |
| 		
 | |
| 	FreeDecimalArray(payintr);
 | |
| 	FreeDecimalArray(payprin);
 | |
| 	FreeDecimalArray(balance);
 | |
| }
 | |
| 
 | |
| void	getdec(str, x)
 | |
| char	*str;
 | |
| DEC	*x;
 | |
| {
 | |
| 	int	i;
 | |
| 	
 | |
| 	do  {
 | |
| 		printf("%s", str);
 | |
| 		i = dscanf("%t", x);
 | |
| 	} while (i<1);
 | |
| }
 |