home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / compound.zip / PERIODS.PRG < prev    next >
Text File  |  1980-01-01  |  2KB  |  66 lines

  1. *  PROGRAM  --- PERIODS.PRG
  2. *               COMPOUND INTEREST: NUMBER OF TIME PERIODS
  3. *  AUTHOR:      VENKAT PENUGONDE,  IRVICE MICRO ARTS, IRVINE, CA
  4. *
  5. *  MODIFIED TO RUN WITH  WITH DBASE II
  6.  
  7. * THIS PROGRAM CALCULATES THE NUMBER OF TIME PERIODS IN A          
  8. *            COMPOUND INTEREST CALCULATION GIVE THE FOLLOWING:
  9.  
  10. *           PRINCIPAL =  PRESENT VALUE OR PRINCIPAL
  11. *        ANNRATE   =  NOMINAL ANNUAL INTEREST RATE IN %         
  12. *        YPERIOD   =  NUMBER OF COMPOUNDIING PERIODS PER YEAR
  13. *        FUVALUE   =  VALUE AT THE END OF THE TOTAL TIME PERIOD
  14.  
  15.  
  16. SET TALK OFF
  17. IF FILE('DBASEOVR.COM')
  18.    ERASE
  19. ELSE
  20.    CLEAR
  21. ENDIF
  22. STORE 0.00 TO FUVALUE,PRINCIPAL,ANNRATE
  23. STORE 0 TO YPERIOD
  24. @ 2,30  SAY 'COMPOUND INTEREST'
  25. @ 3,30  SAY 'NUMBER OF PERIODS'
  26. @ 5,17  SAY 'PRINCIPAL     [enter zero to exit]  :'
  27. @ 7,17  SAY 'FUTURE VALUE                        :'
  28. @ 9,17  SAY 'ANNUAL INTEREST RATE      [ in % ]  :'
  29. @ 11,17 SAY 'NUMBER OF COMPOUNDING PERIODS       :'
  30. STORE 'T' TO MCONTINUE
  31. DO WHILE MCONTINUE = 'T'
  32.    @ 5,55 GET PRINCIPAL
  33.    READ
  34.    IF PRINCIPAL <= 0
  35.       STORE 'F' TO MCONTINUE
  36.       LOOP
  37.    ENDIF
  38.    @ 7,55 GET FUVALUE
  39.    @ 9,55 GET ANNRATE
  40.    @ 11,55 GET YPERIOD
  41.    READ
  42.  
  43. *  COMPUTE INTEREST RATE PER PERIOD
  44.    STORE ANNRATE/YPERIOD TO INTRATE
  45. *  
  46.  
  47. *  COMPUTE TOTAL NUMBER OF COMPOUNDING PERIODS
  48.    IF FILE('DBASEOVR.COM')
  49.       STORE FUVALUE/PRINCIPAL TO NUMBER
  50.       DO LOG
  51.       STORE MLOG TO NUMERATOR
  52.       STORE 1 + INTRATE/100 TO NUMBER
  53.       DO LOG
  54.       STORE MLOG TO DENOMANATO
  55.    ELSE
  56.       NUMERATOR = LOG(FUVALUE/PRINCIPAL)
  57.       DENOMANATO = LOG(1+INTRATE/100)
  58.    ENDIF
  59.    STORE NUMERATOR / DENOMANATO TO TPERIOD
  60.    @ 15,17 SAY 'NUMBER OF COMPOUNDING PERIODS     ' + STR(TPERIOD,10,1)
  61. ENDDO
  62. RETURN
  63.  
  64.  
  65.  
  66.