10 ! BOND AMORTIZATION ! WRITTEN BY DARRYL JOHNSON AND RICHARD D'ANGELO ! BENTLEY COLLEGE FEB '73 20 PRINT:INPUT "WHAT IS THE NOMINAL INTEREST RATE, FACE RATE";A 30 PRINT:INPUT "WHAT IS THE YIELD INTEREST RATE PER YEAR";B 40 PRINT:INPUT "WHAT IS THE TOTAL PAR VALUE OF BONDS IN DOLLARS";C 50 PRINT:INPUT "WHAT IS THE CARRYING VALUE OR AMOUNT PAID FOR THE BONDS";D 60 PRINT:INPUT "HOW MANY YEARS TO MATURITY FROM THE PURCHASE DATE";E 70 PRINT:INPUT "HOW MANY MONTHS BETWEEN INTEREST PAYMENTS";F: G=12/F*E:P=D-C:A1=INT(C*A*F/12*100+.5)/100 80 PRINT :INPUT "STRAIGHT LINE OR COMPOUND INTEREST";A$: IF LEFT(A$,3%)="COM" THEN F%=1% ELSE IF LEFT(A$,3%)="STR" THEN F%=0% ELSE GO TO 80 90 PRINT FOR I=1 TO 5:PRINT TAB(11);: IF P<0 THEN PRINT "ACCUMULATION OF DISCOUNT-"; ELSE PRINT "AMORTIZATION OF PREMIUM-"; 100 IF F% THEN PRINT "COMPOUND INTEREST METHOD" ELSE PRINT "STRAIGHT LINE METHOD" 110 PRINT:PRINT: PRINT "INTEREST";TAB(15);"INTEREST";TAB(30);: IF F% THEN PRINT "INTEREST"; ELSE IF P<0 THEN PRINT "DISCOUNT"; ELSE PRINT "PREMIUM"; 120 PRINT TAB(45);:IF F%=0% THEN PRINT "INTEREST"; ELSE IF P<0 THEN PRINT "DISCOUNT"; ELSE PRINT "PREMIUM"; 130 PRINT TAB(60);"BOND":PRINT "PAYMENT";TAB(15);"RECEIVED";TAB(30);: IF F% THEN PRINT "INCOME"; ELSE IF P<0 THEN PRINT "ACCUMULATION"; ELSE PRINT "AMORTIZATION"; 140 PRINT TAB(45);:IF F%=0% THEN PRINT "INCOME"; ELSE IF P<0 THEN PRINT "ACCUMULATION"; ELSE PRINT "AMORTIZATION"; 150 PRINT TAB(58);"CARRYING VALUE":A5,A6=0:PRINT: PRINT TAB(56);:PRINT USING "$$#,###,###.##",D 160 A$="#### $$##,###.## $$##,###.## $$##,###.## ": A$=A$+"#,###,###.##" 170 FOR I%=1% TO G:IF F% THEN A2=INT(D*B*F/12*100+.5)/100 ELSE A2=INT(P/G*100+.5)/100 180 A3=INT((A1-A2)*100+.5)/100:IF F% THEN A4=INT((D-A3)*100+.5)/100 ELSE A4=INT((D-A2)*100+.5)/100 190 D=A4:A5=A5+ABS(A2):A6=A6+ABS(A3): PRINT USING A$,I%,A1,ABS(A2),ABS(A3),A4 200 IF I%=1% THEN A$=LEFT(A$,12%)+" ##,###.## ##,###.## ": A$=A$+"##,###.## #,###,###.##" 210 NEXT I%:PRINT TAB(13);"---------- ---------- ----------": A$="TOTALS $$###,###.## $$###,###.## $$###,###.##": PRINT USING A$,G*A1,A5,A6: PRINT TAB(13);"========== ========== ==========" 220 END