10  REM  ****  HP BASIC PROGRAM LIBRARY  ******************************
20  REM
30  REM        BANK:  SOLVES FINANCIAL PROBLEMS
40  REM
50  REM        36329  REV B  --  10/73
60  REM
70  REM ****  CONTRIBUTED PROGRAM  *************************************
80  REM BANK - COPYRIGHT 1971, POLYTECHNIC INSTITUTE OF BROOKLYN
90  REM FINANCIAL PROBLEMS   A. WEBB  12/67
100  REM REVISED 8/25/70 (D. PESSEL)
110  PRINT TAB(20);"FINANCIAL PROBLEMS"
120  REM REVISED BY W. TEPPER,  WYANDANCH H.S.  7/10/69 
130  PRINT 
140  PRINT "THIS PROGRAM SOLVES THREE TYPES OF PROBLEMS:"
150  PRINT 
160  PRINT "     (1) INTEREST ON INSTALLMENT BUYING"
170  PRINT "     (2) PAYMENTS ON LONG TERM LOAN"
180  PRINT "     (3) BALANCE OF A SAVINGS ACCOUNT"
190  PRINT 
200  PRINT "WHICH PROBLEM WOULD YOU LIKE TO WORK WITH (TYPE 1, 2 OR 3)";
210  INPUT Q1
220  PRINT 
230  PRINT "*****"
240  PRINT 
250  IF Q1>2 THEN 1070
260  IF Q1>1 THEN 280
270  GOTO 840
280  PRINT "THIS SECTION WILL DETERMINE PAYMENTS FOR A LONG TERM LOAN."
290  PRINT 
300  PRINT "WHAT IS THE AMOUNT BORROWED ($)";
310  INPUT A
320  PRINT "            INTEREST CHARGED (%)";
330  INPUT I
340  PRINT "            INTERVAL BETWEEN PAYMENTS (MONTHS)";
350  INPUT P
360  PRINT "            TERM OF THE LOAN (YEARS)";
370  INPUT Y
380  PRINT 
390  PRINT "DO YOU WISH TO SEE THE TOTALS ONLY - INSTEAD OF THE ENTIRE"
400  PRINT "TABLE - (1-YES, 0-NO)";
410  INPUT P5
420  PRINT 
430  IF P5>0 THEN 490
440  PRINT "           OUTSTANDING"
450  PRINT "           PRINCIPAL AT                         PRINCIPAL"
460  PRINT "           BEGINNING        INTEREST DUE AT     REPAID AT"
470  PRINT "PERIOD     OF PERIOD        END OF PERIOD       END OF PERIOD"
480  PRINT 
490  LET Z=(Y*12)/P
500  LET K=(I*(P/12))/100
510  LET E=A*K/(1-1/(1+K)^Z)
520  LET E=INT(E*100+.5)/100
530  LET C=A
540  LET F=0
550  LET D1=0
560  LET T1=0
570  LET T1=T1+1
580  IF T1>Z THEN 700
590  LET B=T1
600  LET C=C-F
610  LET D=C*K
620  LET F=E-D
630  LET C=INT(C*100+.5)/100
640  LET D=INT(D*100+.5)/100
650  LET F=INT(F*100+.5)/100
660  LET D1=D1+D
670  IF P5>0 THEN 570
680  PRINT B;TAB(11);C;TAB(29);D;TAB(48);F
690  GOTO 570
700  IF P5<1 THEN 760
710  PRINT 
720  LET D1=INT(D1*100+.5)/100
730  PRINT "TOTAL INTEREST PAID - $"D1
740  PRINT "TOTAOL PRINCIPAL REPAID - $"A
750  GOTO 780
760  PRINT "                            ---------------     -------------"
770  PRINT "TOTALS";TAB(29);D1;TAB(48);A
780  LET E5=INT((D1+A)*100+.5)/100
790  PRINT 
800  LET E6=E5/((Y*12)/P)
810  LET E6=INT(100*E6+.5)/100
820  PRINT "YOUR MONTHLY PAYMENT IS $"E6" AND TOTALS $"E5
830  GOTO 1300
840  PRINT "THIS SECTION WILL DETERMINE THE ACTUAL INTEREST YOU PAY"
850  PRINT "WHEN YOU PURCHASE SOMETHING ON CREDIT."
860  PRINT 
870  PRINT "WHAT IS THE CASH PRICE OF THE ARTICLE ($)";
880  INPUT C
890  PRINT "            DOWN PAYMENT ($)";
900  INPUT D
910  PRINT "            NUMBER OF PAYMENTS EXCLUDING THE DOWN PAYMENT";
920  INPUT N
930  PRINT "            NUMBER OF PAYMENTS PER MONTH";
940  INPUT S
950  PRINT "            AMOUNT PER PAYMENT ($)";
960  INPUT R
970  PRINT 
980  LET B=R*N+D
990  LET I=B-C
1000  LET M=N/(S*12)
1010  LET T=I*100/(B*M)
1020  PRINT 
1030  PRINT 
1040  LET T=INT(100*T+.5)/100
1050  PRINT "THE RATE OF INTEREST CHARGED WAS"T" PERCENT."
1060  GOTO 1300
1070  PRINT "THIS SECTION CALCULATES THE BALANCE OF A SAVINGS ACCOUNT"
1080  PRINT "IN WHICH DEPOSITS ARE MADE REGULARLY."
1090  PRINT 
1100  PRINT "WHAT IS THE AMOUNT DEPOSITED PER INTEREST PERIOD ($)";
1110  INPUT A
1120  PRINT "HOW OFTEN IS THE INTEREST COMPOUNDED (MONTHS)";
1130  INPUT B
1140  PRINT "WHAT IS THE RATE OF INTEREST PAID (%)";
1150  INPUT C
1160  PRINT "FOR HOW LONG WILL YOU DEPOSIT MONEY (YEARS)";
1170  INPUT D
1180  LET F=A
1190  LET E=(C/100)/(12/B)
1200  LET G=INT(12/B*D+.5)
1210  LET T1=0
1220  LET T1=T1+1
1230  IF T1=G+1 THEN 1260
1240  LET F=(E*F)+(A+F)
1250  GOTO 1220
1260  PRINT 
1270  PRINT 
1280  LET F=INT(100*F+.5)/100
1290  PRINT "THE BALANCE OF YOUR ACCOUNT AFTER "D"YEARS WILL BE $"F
1300  PRINT 
1310  PRINT 
1320  PRINT 
1330  PRINT "*****"
1340  PRINT 
1350  PRINT "WOULD YOU LIKE TO RUN THE PROGRAM AGAIN (1-YES, 0-NO)";
1360  INPUT Q4
1370  IF Q4>0 THEN 200
1380  END 
