3  REM       BNDYLD:    BOND YIELD   
4  REM
5  REM       36078    REV B    3/72      
6  REM
7  REM ****  CONTRIBUTED PROGRAM **************************************
8  PRINT "BOND YIELD"
9  PRINT 
10  PRINT "SETTLEMENT DATE (MO,DAY,YR)";
20  INPUT S1,S2,S3
30  D1=FNA(0)
40  PRINT "MATURITY DATE (MO,DAY,YR)";
50  INPUT S1,S2,S3
60  D2=FNA(0)
70  DEF FNA()=360*S3+30*S1+S2
80  D3=(D2-D1)/360
90  PRINT "ANNUAL COUPON(%)";
100  INPUT S1
110  PRINT "BOND PRICE",
120  INPUT S2
130  I=S1+(100-S2)/D3
140  D3=2*D3
150  C=(S2+100)/2
160  Y=I/C
170  IF Y>0 THEN 200
180  PRINT "YIELD IS NEGATIVE OR ZERO"
190  END 
200  IF FNB(Y)<S2 THEN 230
210  Y=2*Y
220  GOTO 200
230  Y1=Y/2
240  GOTO 270
250  Y=Y-2*Y1
260  Y=Y+Y1
270  P=FNB(Y)
280  IF ABS(P-S2)<.001 THEN 320
290  Y1=Y1/2
300  IF P-S2<0 THEN 250
310  GOTO 260
320  REM
330  PRINT 
340  PRINT "**************************************************";
350  PRINT "************"
360  PRINT 
370  PRINT "            THE BOND YIELD IS :"Y*100"%"
380  REM
390  PRINT 
400  PRINT "**************************************************";
410  PRINT "*************"
420  DEF FNB()=(S1/2)*(1/((/2)/((1+/2)^D3-1)+/2))+100*(1+/2)^(-D3)
430  END 
