मैं ऐसे प्रोजेक्ट पर काम कर रहा हूं जिसे FORTRAN में कुछ संख्यात्मक तरीकों को लागू करने की आवश्यकता है। इसके लिए, मुझे कुछ पुनरावर्ती कार्यों को लिखने की जरूरत है। मेरा कोड यहाँ है।FORTRAN फ़ंक्शन
!
! File: main.F95
!
RECURSIVE FUNCTION integrate(n) RESULT(rv)
IMPLICIT NONE
DOUBLE PRECISION :: rv
INTEGER, INTENT(IN) :: n
DOUBLE PRECISION, PARAMETER :: minusone = -1.0
IF (n == 1) THEN
rv = 10 !exp(minusone)
RETURN
ELSE
rv = 1 - (n * integrate(n - 1))
RETURN
END IF
END FUNCTION integrate
RECURSIVE FUNCTION factorial(n) RESULT(res)
INTEGER res, n
IF (n .EQ. 0) THEN
res = 1
ELSE
res = n * factorial(n - 1)
END IF
END
PROGRAM main
DOUBLE PRECISION :: rv1
PRINT *, factorial(5)
PRINT *, integrate(2)
!READ *, rv1
END PROGRAM main
इस कार्यक्रम के लिए उत्पादन होता है:
NaN
1
तो मैं प्रिंट बयान के आदेश (लाइन 30 & 31) बदलने के लिए, उत्पादन होगा:
1
-19.000000
आउटपुट होना चाहिए (मूल प्रिंट स्टेटमेंट ऑर्डर के लिए):
120
-19
मैंने विकिपीडिया Fortran 95 language features पृष्ठ से फैक्टोरियल फ़ंक्शन लिया। मैं फ़ोरट्रान में नया हूं, मुझे नहीं पता कि मेरे कोड में क्या गलत है। कृपया मुझे लोगों की मदद करो।
- संकलक: gfortran 4.5.3 Cygwin
- IDE के साथ: Netbeans 7.0.1
- प्लेटफ़ॉर्म: Windows 7
अग्रिम धन्यवाद।
बहुत अच्छा सवाल है, एक पुनरावर्ती कार्य सुविधा और विस्तार पर ध्यान देने के लिए तैयार हैं। धन्यवाद। –