home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / BASIC / MORTGAGE.BAS < prev    next >
BASIC Source File  |  2000-06-30  |  5KB  |  172 lines

  1. 10  REM *****MORGAG*****BUSINESS PROGRAM  
  2. 20  REM MORGAG**********VERSION #1 (7/31/69)*****MORTGAGE ANALYSIS*****
  3. 30  REM
  4. 40  PRINT "*  MORTGAGE ANALYSIS  *"
  5. 50  PRINT 
  6. 60  PRINT "IF YOU WANT TO FIND:"
  7. 70  PRINT "     THE RATE, TYPE '1'"
  8. 80  PRINT "     THE LIFE, TYPE '2'"
  9. 90  PRINT "     THE AMOUNT BORROWED, TYPE '3'"
  10. 100  PRINT "     THE MONTHLY PAYMENT, TYPE '4'"
  11. 110  PRINT "WHICH DO YOU WANT";
  12. 120  INPUT Z
  13. 130  PRINT 
  14. 140  IF Z=1 THEN 220
  15. 150  PRINT "WHAT IS THE NOMINAL ANNUAL RATE USING DECIMAL NOTATION";
  16. 160  INPUT R
  17. 170  IF R<1 THEN 200
  18. 180  PRINT "IT APPEARS THAT YOU HAVE FORGOTTEN TO USE DECIMAL NOTATION"
  19. 190  GOTO 150
  20. 200  PRINT 
  21. 210  IF Z=2 THEN 260
  22. 220  PRINT "WHAT IS THE LIFE OF THE MORTGAGE: YEARS, MONTHS";
  23. 230  INPUT Y,M
  24. 240  PRINT 
  25. 250  IF Z=3 THEN 300
  26. 260  PRINT "WHAT IS THE AMOUNT TO BE BORROWED";
  27. 270  INPUT A
  28. 280  PRINT 
  29. 290  IF Z=4 THEN 330
  30. 300  PRINT "WHAT IS THE AMOUNT OF ONE MONTHLY PAYMENT";
  31. 310  INPUT P
  32. 320  PRINT 
  33. 330  PRINT "WHAT IS THE MONTH (JAN=1,ETC.), AND YEAR IN WHICH THE MORTGAGE LOAN IS"
  34. 340  PRINT "TO BE MADE";
  35. 350  INPUT T1,T2
  36. 360  PRINT 
  37. 370  PRINT "FOR HOW MANY CALENDAR YEARS DO YOU WANT THE MORTGAGE TABLE PRINTED";
  38. 380  INPUT T3
  39. 390  PRINT 
  40. 400  PRINT "TYPE A ONE (1) IF YOU WANT ONLY AN ANNUAL SUMMARY OF THE MORTGAGE"
  41. 410  PRINT "TABLE; TYPE A ZERO (0) FOR A MONTHLY TABLE";
  42. 420  INPUT Z1
  43. 430  PRINT 
  44. 440  IF Z=2 THEN 470
  45. 450  N=12*Y+M
  46. 460  IF Z=1 THEN 660
  47. 470  R1=R/12
  48. 480  IF Z=3 THEN 580
  49. 490  IF Z=4 THEN 610
  50. 500  IF (A*R1/P)<1 THEN 530
  51. 510  PRINT "THE FIRST MONTHS PAYMENT WILL NOT EVEN COVER ITS INTEREST CHARGE"
  52. 520  RUN "DIR" 
  53. 530  N=-(LOG(1-(A*R1)/P))/LOG(1+R1)
  54. 540  N=INT(N)+1
  55. 550  Y=INT(N/12)
  56. 560  M=N-12*Y
  57. 570  GOTO 770
  58. 580  A=(P*(1-1/((1+R1)^N)))/R1
  59. 590  A=INT((A+5)/10)*10
  60. 600  GOTO 770
  61. 610  P=(A*R1)/(1-1/((1+R1)^N))
  62. 620  P=(P*1000+5)/10
  63. 630  P=INT(P)
  64. 640  P=P/100
  65. 650  GOTO 770
  66. 660  R1=0
  67. 670  FOR O=1 TO 5
  68. 680  FOR I=1 TO 10
  69. 690  Q=I*(1/(10^O))+R1
  70. 700  C=(P*(1-1/((1+Q)^N)))/Q
  71. 710  IF C<A THEN 730
  72. 720  NEXT I
  73. 730  R1=Q-(1/(10^O))
  74. 740  NEXT O
  75. 750  R1=INT(24000*R1+.5)/24000
  76. 760  R=12*R1
  77. 770  PRINT 
  78. 780  IF 12*P>(R*A+1) THEN 830
  79. 790  PRINT "YOUR FIRST YEARS'S PAYMENTS ARE"12*P
  80. 800  PRINT "THE FIRST YEARS'S INTEREST IS"R*A
  81. 810  PRINT "THEREFORE, THE LIFE OF THE MORTGAGE IS UNDEFINED"
  82. 820  RUN "DIR" 
  83. 830  PRINT "***********************************************************************"
  84. 840  PRINT 
  85. 850  PRINT "                           MORTGAGE TERMS"
  86. 860  PRINT 
  87. 870  PRINT "     NOMINAL ANNUAL RATE =";R*100;"PERCENT"
  88. 880  PRINT "     LIFE OF MORTGAGE =";Y;"YEARS,";M;"MONTHS"
  89. 890  PRINT "     AMOUNT BORROWED = $";A
  90. 900  PRINT "     MONTHLY PAYMENT = $";P
  91. 910  IF Z=1 THEN 950
  92. 920  IF Z=3 THEN 990
  93. 930  IF Z=2 THEN 970
  94. 940  GOTO 1000
  95. 950  PRINT " (NOTE: THE ANNUAL RATE HAS BEEN ROUNDED TO NEAREST 1/100 PERCENT)"
  96. 960  GOTO 1000
  97. 970  PRINT " (NOTE: THE MORTGAGE LIFE HAS BEEN ROUNDED UPWARD TO NEAREST MONTH)"
  98. 980  GOTO 1000
  99. 990  PRINT " (NOTE: THE AMOUNT BORROWED ROUNDED TO NEAREST $10)"
  100. 1000  PRINT 
  101. 1010  PRINT "----------------------------------------------------------------------"
  102. 1020  PRINT 
  103. 1030  PRINT "                           MORTGAGE TABLE"
  104. 1040  PRINT 
  105. 1050  PRINT 
  106. 1060  Z2=0
  107. 1070  S1=0
  108. 1080  S2=0
  109. 1090  IF T1=12 THEN 1120
  110. 1100  M2=T1
  111. 1110  GOTO 1140
  112. 1120  T2=T2+1
  113. 1130  M2=0
  114. 1140  M3=M2+1
  115. 1150  IF Z1=1 THEN 1230
  116. 1160  PRINT "   ","BEGINNING"
  117. 1170  PRINT "   ","PRINCIPAL","   ","PRINCIPAL"
  118. 1180  PRINT "MONTH","OUTSTANDING","INTEREST","REPAYMENT"
  119. 1190  PRINT 
  120. 1200  PRINT 
  121. 1210  PRINT "   ","FOR THE CALENDAR YEAR"T2
  122. 1220  GOTO 1280
  123. 1230  PRINT "   ","   ","   ","ENDING"
  124. 1240  PRINT "   ","   ","PRINCIPAL","PRINCIPAL"
  125. 1250  PRINT "YEAR","INTEREST","REPAYMENT","OUTSTANDING"
  126. 1260  PRINT 
  127. 1270  PRINT 
  128. 1280  FOR M1=M3 TO 12*T3
  129. 1290  I1=A*R1
  130. 1300  I1=(I1*1000+5)/10
  131. 1310  I1=INT(I1)
  132. 1320  I1=I1/100
  133. 1330  IF P<(A+I1) THEN 1360
  134. 1340  P1=A
  135. 1350  GOTO 1370
  136. 1360  P1=P-I1
  137. 1370  A1=A
  138. 1380  A=A1-P1
  139. 1390  S1=S1+I1
  140. 1400  S2=S2+P1
  141. 1410  M2=M2+1
  142. 1420  IF Z1=1 THEN 1590
  143. 1430  PRINT M2,A1,I1,P1
  144. 1440  IF M2=12 THEN 1470
  145. 1450  IF A>0 THEN 1690
  146. 1460  Z2=1
  147. 1470  PRINT 
  148. 1480  PRINT "     INTEREST PAID DURING";T2;TAB(42);"=";S1
  149. 1490  PRINT "     PRINCIPLE REPAID DURING";T2;TAB(42);"=";S2
  150. 1500  PRINT "     PRINCIPLE OUTSTANDING AT YEAR END";TAB(42);"=";A
  151. 1510  IF Z2=1 THEN 1700
  152. 1520  T2=T2+1
  153. 1530  PRINT 
  154. 1540  PRINT "-----"
  155. 1550  PRINT 
  156. 1560  IF M1=12*T3 THEN 1700
  157. 1570  PRINT "   ","FOR THE CALENDAR YEAR"T2
  158. 1580  GOTO 1660
  159. 1590  IF M2=12 THEN 1620
  160. 1600  IF A>0 THEN 1690
  161. 1610  Z2=1
  162. 1620  PRINT T2,S1,S2,A
  163. 1630  T2=T2+1
  164. 1640  IF M1=12*T3 THEN 1700
  165. 1650  IF Z2=1 THEN 1700
  166. 1660  S1=0
  167. 1670  S2=0
  168. 1680  M2=0
  169. 1690  NEXT M1
  170. 1700  PRINT "**********************************************************************"
  171. 1710  RUN "DIR" 
  172.