Fortran ट्यूटोरियल
शुरुआत फोरट्रान से हुई
खोज…
टिप्पणियों
फोरट्रान एक ऐसी भाषा है जिसका उपयोग वैज्ञानिक समुदाय में संख्यात्मक अभिकलन के लिए उपयुक्तता के कारण किया जाता है। विशेष रूप से आकर्षक इसकी सहज सरणी संकेतन है, जो तेजी से सदिश कम्प्यूटिंग लिखना आसान बनाता है।
अपनी उम्र के बावजूद, फोरट्रान अभी भी सक्रिय रूप से विकसित है, जिसमें कई कार्यान्वयन हैं, जिसमें जीएनयू, इंटेल, पीजीआई और क्रे शामिल हैं।
संस्करण
संस्करण | ध्यान दें | रिहाई |
---|---|---|
फोरट्रान 66 | एएसए द्वारा पहला मानकीकरण (अब एएनएसआई) | 1966/03/07 |
फोरट्रान 77 | फिक्स्ड फॉर्म, हिस्टोरिक | 1978/04/15 |
फोरट्रान 90 | नि: शुल्क फार्म, आईएसओ मानक, ऐरे संचालन | 1991/06/15 |
फोरट्रान 95 | शुद्ध और मौलिक प्रक्रियाएं | 1997/06/15 |
फोरट्रान 2003 | ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग | 2004/04/04 |
फोरट्रान 2008 | सह-सारणी, | 2010-09-10 |
स्थापना या सेटअप
फोरट्रान एक भाषा है जिसे कई विक्रेताओं द्वारा आपूर्ति किए गए संकलक का उपयोग करके संकलित किया जा सकता है। अलग-अलग हार्डवेयर प्लेटफॉर्म और ऑपरेटिंग सिस्टम के लिए अलग-अलग कंपाइलर उपलब्ध हैं। कुछ संकलक मुफ्त सॉफ्टवेयर हैं, कुछ का उपयोग नि: शुल्क किया जा सकता है और कुछ को लाइसेंस खरीदने की आवश्यकता होती है।
सबसे आम मुक्त फोरट्रान संकलक GNU फोरट्रान या गफ़रन है। स्रोत कोड GNU से GCC, GNU संकलक संग्रह के एक भाग के रूप में उपलब्ध है। कई ऑपरेटिंग सिस्टम के लिए बायनेरिज़ https://gcc.gnu.org/wiki/GFortranBinaries पर उपलब्ध हैं। लिनक्स वितरण में अक्सर उनके पैकेज मैनेजर में gfortran होता है।
आगे के संकलक उदाहरण के लिए उपलब्ध हैं:
एचपीसी-सिस्टम पर अक्सर सिस्टम प्रदाता द्वारा उपलब्ध विशिष्ट संकलक होते हैं, उदाहरण के लिए आईबीएम या क्रे संकलक।
ये सभी संकलक फोरट्रान 95 मानक का समर्थन करते हैं। फोरमैन 2003 की स्थिति और विभिन्न संकलक द्वारा फोरट्रान 2008 की स्थिति पर एक अवलोकन एसीएम फोरट्रान फोरम द्वारा प्रस्तुत किया गया है और फोरट्रान विकी में उपलब्ध है।
नमस्ते दुनिया
किसी भी फोरट्रान कार्यक्रम को अंतिम विवरण के रूप में end
शामिल करना है। इसलिए, सरलतम फोरट्रान कार्यक्रम इस तरह दिखता है:
end
यहाँ "हैलो, दुनिया" कार्यक्रमों के कुछ उदाहरण दिए गए हैं:
print *, "Hello, world"
end
write
बयान के साथ:
write(*,*) "Hello, world"
end
स्पष्टता के लिए अब एक कार्यक्रम शुरू करने और इसे एक नाम देने के लिए program
बयान का उपयोग करना आम है। end
कथन तब इस नाम को संदर्भित कर सकता है ताकि यह स्पष्ट हो सके कि यह क्या संदर्भित है, और संकलक को शुद्धता के लिए कोड की जांच करने दें। इसके अलावा, सभी फोरट्रान कार्यक्रमों में एक implicit none
वक्तव्य implicit none
होना चाहिए। इस प्रकार, एक न्यूनतम फोरट्रान कार्यक्रम वास्तव में इस प्रकार दिखना चाहिए:
program hello
implicit none
write(*,*) 'Hello world!'
end program hello
इस बिंदु से अगला तार्किक कदम यह है कि नमस्ते विश्व कार्यक्रम का परिणाम कैसे देखा जाए। यह खंड दिखाता है कि पर्यावरण की तरह एक लिनक्स में कैसे हासिल किया जाए। हम मानते हैं कि आपके पास शेल कमांड के कुछ मूल विचार हैं, मुख्य रूप से आप जानते हैं कि शेल टर्मिनल कैसे प्राप्त करें। हम यह भी मानते हैं कि आपने अपने fortran
वातावरण को पहले ही सेट कर लिया है । अपने पसंदीदा टेक्स्ट एडिटर (नोटपैड, नोटपैड ++, vi, vim, emacs, gedit, kate, आदि) का उपयोग करके, अपने होम डायरेक्टरी में hello.f90
नामक फाइल में ऊपर दिए गए हैलो प्रोग्राम (कॉपी और पेस्ट) को hello.f90
करें। hello.f90
आपकी स्रोत फ़ाइल है। फिर कमांड लाइन पर जाएं और डायरेक्टरी (होम डायरेक्टरी?) पर नेविगेट करें जहां आपने अपनी सोर्स फाइल सेव की है, फिर निम्न कमांड टाइप करें:
>gfortran -o hello hello.f90
आपने अभी-अभी अपना हैलो वर्ल्ड एक्ज़ीक्यूटेबल प्रोग्राम बनाया है। तकनीकी शब्दों में, आपने बस अपना कार्यक्रम संकलित किया है। इसे चलाने के लिए, निम्न कमांड टाइप करें:
>./hello
आपको अपने शेल टर्मिनल पर छपी निम्न पंक्ति देखनी चाहिए।
> Hello world!
बधाई, आपने अभी "हैलो वर्ल्ड" कार्यक्रम लिखा, संकलित किया और चलाया।
द्विघात समीकरण
आज फोरट्रान का उपयोग मुख्य रूप से संख्यात्मक गणना के लिए किया जाता है। यह बहुत ही सरल उदाहरण द्विघात समीकरणों को हल करने के लिए बुनियादी कार्यक्रम संरचना को दिखाता है:
program quadratic
!a comment
!should be present in every separate program unit
implicit none
real :: a, b, c
real :: discriminant
real :: x1, x2
print *, "Enter the quadratic equation coefficients a, b and c:"
read *, a, b, c
discriminant = b**2 - 4*a*c
if ( discriminant>0 ) then
x1 = ( -b + sqrt(discriminant)) / (2 * a)
x2 = ( -b - sqrt(discriminant)) / (2 * a)
print *, "Real roots:"
print *, x1, x2
! Comparison of floating point numbers for equality is often not recommended.
! Here, it serves the purpose of illustrating the "else if" construct.
else if ( discriminant==0 ) then
x1 = - b / (2 * a)
print *, "Real root:"
print *, x1
else
print *, "No real roots."
end if
end program quadratic
केस असंवेदनशीलता
अपर्चर और वर्णमाला के निचले अक्षर फोरट्रान वर्ण सेट में समतुल्य हैं। दूसरे शब्दों में, फोरट्रान केस असंवेदनशील है । यह व्यवहार केस-संवेदी भाषाओं के विपरीत है, जैसे कि C ++ और कई अन्य।
परिणामस्वरूप, चर a
और A
ही चर रहे हैं। सिद्धांत रूप में, एक कार्यक्रम निम्नानुसार लिख सकता है
pROgrAm MYproGRaM
..
enD mYPrOgrAM
इस तरह के बदसूरत विकल्पों से बचने के लिए यह अच्छा प्रोग्रामर है।