dimanche 7 février 2016

Syntax error in COBOL program, unexpected if

I am coding in COBOL, and after adding the if statement listed below, I kept getting " In paragraph '000-main': Error: syntax error, unexpected IF"

   Identification Division.
   Program-ID. Lab2.   
  *This program will generate a statement for a single investment
  *that compounds interest monthly.
  *  It will prompt use for 3 inputs, calculate total interest
  *  earned, final balance, & entire account balance schedule.
  *  It will then display all output to the console.
   Environment Division.
   Data Division.
   Working-Storage Section.
   01  invest-amt     pic S9(9)V99.

   01  invest-error-msg      pic x(40) value "Investment "
   &     "Amount must be positive".

   01  int-rate        pic S9(2)V99.
   01  int-rate-error-msg    pic x(40) value "Annual Interest "
   &     "Rate must be positive".

   01  int-rate-final  pic 9V99999.


   01  num-months   pic S9(3).
   01  num-months-error-msg  pic x(40) value "Number of Months "
   &     "must be positive".  

   01  multiply-rate pic 9V99999.

   01  blank-line     pic x value " ".


   01  month-counter   pic 99 value 1.
   01  balance-month   pic 9(9)V99.
   01  interest-month  pic 9(9)V99.

   01  total-interest  pic 9(9)V99.
   01  final-balance   pic 9(9)V99.

   01  additional-value  pic S9(9)V99.
   01  add-value-error-msg  pic x(40) value "Additional Value "
   &     "must be positive".  
   01  Q           pic 9(3).
   01  R           pic 9(3).
   01  months-in-year pic 9(2) Value 12.


   Procedure Division.
   000-main.
       perform 100-initialize

       perform until invest-amt >=0 
          display invest-error-msg
          perform 200-input
       end-perform

       perform 210-input-rate

       perform until int-rate >=0
          display int-rate-error-msg
          perform 210-input-rate
       end-perform

       perform 220-input-month

       perform until num-months >=0
          display num-months-error-msg
          perform 220-input-month
       end-perform

       perform 230-input-additional-value

       perform until additional-value >=0
          display add-value-error-msg
          perform 230-input-additional-value
       end-perform

       perform 300-print-words

       perform 400-process-interest
       perform 310-print-values
       display blank-line

       perform until month-counter = num-months
          add 1 to month-counter

          Divide month-counter By months-in-year Giving Q Remainder R

Everything was compiling fine up until I added the if statement below.

          if ( (num-months> months-in-year) & (R=0))
             Add additional-value to balance-month

          multiply month-counter by months-in-year 

          add interest-month to balance-month rounded
          perform 400-process-interest
          perform 310-print-values
          display blank-line
       end-perform

Aucun commentaire:

Enregistrer un commentaire