Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Convert thefunction subprogram to subroutine subprogram: *----------------------

ID: 3613139 • Letter: C

Question

Convert thefunction subprogram to subroutine subprogram:

*-------------------------------------------------------------------------*
PROGRAM FIBONACCI
* THIS PROGRAM USES FUNCTION FIB TO
* CALCULATE AS MANY TERMS OF THE SEQUENCE
* AS REQUIRED BY THE MAIN PROGRAM
INTEGER K, MAX, ANSWER, FIB, FIBON, TEMFIB(20)
REAL RATIO
MAX = 15
TEMFIB(1)=1
TEMFIB(2)=1
PRINT 10
10 FORMAT(4X, 'FIBONACCI SEQUENCE, FROM TERM 3')
PRINT 20
20 FORMAT(12X, 'SERIES', 8X, 'RATIO')
DO K = 3, MAX
  ANSWER = FIB(K)
  TEMFIB(K)=ANSWER
  IF (K.EQ.3) THEN
   RATIO = 1
  ELSE
*   RATIO = REAL(FIB(K))/REAL(FIB(K-1))*
  RATIO = REAL(ANSWER)/REAL(TEMFIB(K-1))
  END IF
  PRINT 30, ANSWER, RATIO
30 FORMAT(10X, I6, 7X, F9.4)
END DO
END PROGRAM FIBONACCI
*------------------------------------------------------------------------*
FUNCTION FIB(LIMIT) RESULT(FIBON)
INTEGER LIMIT, J, FIBON, FS(100)
FS(1) = 1
FS(2) = 1
DO J = 3, LIMIT
  FS(J)= FS(J-1) + FS(J-2)
  FIBON = FS(J)
END DO
RETURN
END FUNCTION FIB
*-------------------------------------------------------------------------* Convert thefunction subprogram to subroutine subprogram:

*-------------------------------------------------------------------------*
PROGRAM FIBONACCI
* THIS PROGRAM USES FUNCTION FIB TO
* CALCULATE AS MANY TERMS OF THE SEQUENCE
* AS REQUIRED BY THE MAIN PROGRAM
INTEGER K, MAX, ANSWER, FIB, FIBON, TEMFIB(20)
REAL RATIO
MAX = 15
TEMFIB(1)=1
TEMFIB(2)=1
PRINT 10
10 FORMAT(4X, 'FIBONACCI SEQUENCE, FROM TERM 3')
PRINT 20
20 FORMAT(12X, 'SERIES', 8X, 'RATIO')
DO K = 3, MAX
  ANSWER = FIB(K)
  TEMFIB(K)=ANSWER
  IF (K.EQ.3) THEN
   RATIO = 1
  ELSE
*   RATIO = REAL(FIB(K))/REAL(FIB(K-1))*
  RATIO = REAL(ANSWER)/REAL(TEMFIB(K-1))
  END IF
  PRINT 30, ANSWER, RATIO
30 FORMAT(10X, I6, 7X, F9.4)
END DO
END PROGRAM FIBONACCI
*------------------------------------------------------------------------*
FUNCTION FIB(LIMIT) RESULT(FIBON)
INTEGER LIMIT, J, FIBON, FS(100)
FS(1) = 1
FS(2) = 1
DO J = 3, LIMIT
  FS(J)= FS(J-1) + FS(J-2)
  FIBON = FS(J)
END DO
RETURN
END FUNCTION FIB
*-------------------------------------------------------------------------*

Explanation / Answer

please rate - thanks I figured out how to link program compiles, links, runs *-------------------------------------------------------------------------* * THIS PROGRAM USES FUNCTION FIB TO * CALCULATE AS MANY TERMS OF THE SEQUENCE * AS REQUIRED BY THE MAIN PROGRAM         INTEGER K, MAX, ANSWER,FIB, TEMFIB(20)         REAL RATIO         MAX = 15          TEMFIB(1)=1          TEMFIB(2)=1         PRINT 10 10    FORMAT(4X, 'FIBONACCI SEQUENCE, FROM TERM3')         PRINT 20 20    FORMAT(12X, 'SERIES', 8X, 'RATIO')         DO K = 3, MAX **************       ANSWER =FIB(K)        CALL FIB(K,ANSWER)        TEMFIB(K)=ANSWER        IF (K.EQ.3) THEN                 RATIO = 1         ELSE ******** RATIO = REAL(FIB(K))/REAL(FIB(K-1))*               RATIO = REAL(ANSWER)/REAL(TEMFIB(K-1))        END IF        PRINT 30, ANSWER, RATIO 30    FORMAT(10X, I6, 7X, F9.4)        END DO       END *-------------------------------------------------------------------------*           SUBROUTINE FIB(LIMIT,FIBON)           INTEGER LIMIT, J, FIBON, FS(100)           FS(1) =1            FS(2)= 1          DO J = 3,LIMIT              FS(J)= FS(J-1) + FS(J-2)              FIBON = FS(J)         END DO          RETURN          END