फोरट्रान सीखना


9

मैं सोच रहा था कि फोरट्रान में कार्यक्रम करने का सबसे अच्छा तरीका क्या है?

मैं पुस्तकों की तलाश कर रहा हूं, जो उदाहरण मुझे ठीक लगे "फोरट्रान 95/2003 समझाया" और "फोरट्रान फॉर साइंटिस्ट्स एंड इंजीनियर्स"

मुझे नहीं पता कि तुम लोग इनमें से क्या सोचते हो?

एक और बात जो मैं सोच रहा हूं कि मुझे कौन सा कंपाइलर इस्तेमाल करना चाहिए? मैं विंडोज 7 मशीन (64-बिट) पर काम करता हूं।

मुझे उम्मीद है कि आप लोग इस पर मेरी मदद कर सकते हैं!

तो प्रोग्रामिंग के साथ मेरे अनुभव के लिए:

  1. मैटलैब और मेपल प्रोग्रामिंग दुनिया में मेरे पहले परिचय की तरह थे। मतलब एक ऐसा कार्यक्रम है जिसमें मैं वास्तव में बहुत अच्छा हूं, मुझे लूप के साथ काम करने का झांसा मिला है और कैसे इनका संयोजन अधिक प्रभावी बनाने के लिए किया जाता है। मूल चरण में मेपल अधिक होता है (मुझे पता है कि सरल इंटीग्रल आदि का समाधान कैसे खोजना है)।
  2. एक साल बाद हमें विजुअल बेसिक में C ++ का परिचय मिला। प्रोफेसर वास्तव में इस पर जल्दी चले गए, 2 महीने बाद हम पहले से ही संकेत और विरासत पर चर्चा कर रहे थे। मैं इस भाषा में सरल कार्यक्रम लिखने में सक्षम हूं, केवल कक्षाओं के साथ काम करना एक ऐसी चीज है जो एक कठिनाई बनी हुई है, लेकिन मेरा मानना ​​है कि यह केवल अभ्यास का विषय है।
  3. और एक साल बाद मुझे मैथेमेटिका 8 सीखने की जरूरत पड़ी, जो मैं आजकल बहुत अच्छा कर रहा हूं।

इसलिए मेरे पास थोड़ी बहुत प्रोग्रामिंग-एक्सपायरीज़ है, लेकिन मैं यह नहीं कहूंगा कि यह एक अविश्वसनीय राशि है!

मैं फोर्ट्रान को सीखना चाहता हूं इसका मुख्य कारण यह है कि आप सैद्धांतिक भौतिकी नहीं कर सकते, इसके लिए आपको अपने सिद्धांतों का परीक्षण करने की आवश्यकता है और इसके लिए आपको उन कार्यक्रमों को लिखने में सक्षम होना होगा जो उन सिद्धांतों को संख्यात्मक रूप से जांचने में सक्षम हो सकते हैं। मैंने सुना है कि फोर्ट्रान भाषा का उपयोग करने के लिए दयालु है जब यह संख्यात्मक गणित की बात आती है, तो मुझे लगता है कि यह इस भाषा को जानने के लिए काम में आएगा।

पीएस: फोरट्रान 95 और फोरट्रान 2003 के बीच क्या अंतर है?


3
क्या आप थोड़े अधिक विशिष्ट हो सकते हैं कि आप कहाँ से आ रहे हैं और आप कहाँ जाना चाहते हैं? क्या आपको पहले से ही पता है कि कैसे प्रोग्राम करना है, यानी आप अन्य प्रोग्रामिंग भाषाओं को क्या जानते हैं? और क्या आप फोरट्रान में सक्षम होना चाहते हैं?
पेड्रो

हाँ शायद मुझे अपने प्रश्न में इसका उल्लेख करना चाहिए था, मुझे संपादित करने की अनुमति दें :) @Pedro
Nick

1
मुझे पता है कि यह सवाल का जवाब नहीं देता है, लेकिन मुझे दृढ़ता से आपको फोरट्रान पर पायथन का उपयोग करने की सिफारिश करनी है अगर आपके पास शुरुआत के रूप में विशिष्ट प्रदर्शन की आवश्यकता नहीं है। आपके पास वास्तविक गणित और सिद्धांत के साथ कम सिरदर्द होगा क्योंकि पायथन आप पर कम चिल्लाएगा। इसमें अविश्वसनीय पैकेज भी हैं जो बहुत सारे संख्यात्मक गणित को बहुत सरल बनाते हैं (खोज साइपी, नेम्पी, मेटप्लोटिब)। वे उपकरण इसके उपयोग में MATLAB के समान पायथन बनाते हैं, लेकिन आपके पास ewll के रूप में सॉफ्टवेयर का एक अच्छा टुकड़ा बनाने के लिए एक पूरी भाषा भी है। इसका उल्लेख नहीं है यह खुला स्रोत है।
27'13

1
फोरट्रान 95 भी मैटलैब की तरह है और एक आईएसओ मानक है। पायथन का उपयोग करने वाले बहुत से लोग C / C ++ (यहां तक ​​कि फोरट्रान) में कम्प्यूटेशनल रूप से भारी कर्नेल लिखते हैं, जिसका अर्थ है कि अब आपको एक नहीं बल्कि दो भाषाओं को सीखना होगा। एक प्रदर्शन के लिए और दूसरा सुविधा / उपयोग में आसानी के लिए।
स्टाल

जवाबों:


4

मैं चैपमैन की पुस्तक की दूसरी कड़ी की सिफारिश पर जा रहा हूं। मैंने चैपमैन की फोरट्रान 90 किताब से सीखा, और यह बहुत मददगार थी। यह आपको फोरट्रान भाषा सिखाएगा। यह आपको प्रोग्रामिंग के लिए अच्छे वर्कफ़्लोज़ के बारे में नहीं सिखाएगा, और इसके लिए, आपको कुछ फोरट्रान सीखने और थोड़े से प्रोग्राम करने के बाद कहीं और देखना चाहिए ।

फोरट्रान प्रोग्रामिंग में आपकी सहायता के लिए अधिकांश ऑनलाइन संसाधन लिनक्स आधारित होने जा रहे हैं। इसी तरह, कम्प्यूटेशनल विज्ञान में, अधिकांश लिखित सामग्री लिनक्स उपयोगकर्ताओं की ओर जा रही है। उस कारण से, मैं दृढ़ता से अनुशंसा करता हूं कि आप VirtualBox (या किसी प्रकार का सॉफ़्टवेयर जो आपको वर्चुअल ऑपरेटिंग सिस्टम चलाने में सक्षम बनाता है) स्थापित करें और फिर वहाँ पर कुछ लिनक्स वितरण स्थापित करें। यदि आपने पहले कभी लिनक्स का उपयोग नहीं किया है, तो उबंटू, टकसाल, या फेडोरा जैसे उपयोगकर्ता के अनुकूल वितरण शायद आपका सबसे अच्छा दांव होगा। वर्चुअल वातावरण में चलने पर इन वितरणों को न्यूनतम मात्रा में कॉन्फ़िगरेशन की आवश्यकता होती है, और ऑपरेटिंग सिस्टम को नेविगेट करने में आपकी सहायता करने के लिए एक अच्छा GUI है। इन वितरणों में से प्रत्येक में एक पैकेज प्रबंधक है जिसका उपयोग आप कुछ अतिरिक्त सॉफ़्टवेयर स्थापित करने के लिए कर सकते हैं। पैकेज मैनेजर का उपयोग करके, आप gfortran स्थापित कर सकते हैं।

आप एक टेक्स्ट एडिटर (या एक IDE) में सॉफ़्टवेयर विकसित करना चाहते हैं, इसलिए यह संभवतः कमांड लाइन की मूल बातें सीखने लायक है। सॉफ्टवेयर कारपेंट्री में इस कार्य के लिए अच्छे संसाधन हैं। (डिस्क्लेमर: मैंने सॉफ्टवेयर कारपेंटरी के लिए एक वर्कशॉप का हिस्सा सिखाया है।) फिर आपको सरल प्रोग्राम लिखने और कमांड लाइन पर उन्हें संकलित करने के लिए सीखने के साथ आगे बढ़ने में सक्षम होना चाहिए, और फिर मेकफाइल का उपयोग करना सीखें।

विंडोज-आधारित कुछ भी करने में समस्या यह है कि कम्प्यूटेशनल विज्ञान करते समय आप जो ऑनलाइन सामग्री देखेंगे, उसमें से अधिकांश आप लिनक्स का उपयोग कर रहे हैं, और सलाह (यदि इसके साथ शुरू करने के लिए कोई अच्छा था) तोड़ने जा रहा है नीचे, और आप समय खर्च करते हैं। साइग्विन एक एपीआई परत है जो अधिक लिनक्स जैसी कार्यक्षमता जोड़ता है, लेकिन लिनक्स के साथ पत्राचार परिपूर्ण नहीं है, और लिनक्स के लिए संकलित सॉफ्टवेयर आपके मशीन पर काम नहीं करने वाला है; आपको अभी भी विंडोज-देशी संस्करण प्राप्त करने या विंडोज के लिए सॉफ्टवेयर को फिर से जमा करने की आवश्यकता होगी। एक विंडोज-निवासी फोरट्रान कंपाइलर जैसे विजुअल फोर्ट्रान पैसे खर्च करने जा रहा है, और आपको अभी भी यह समस्या है कि अधिकांश फोरट्रान उपयोगकर्ता और कम्प्यूटेशनल वैज्ञानिक अपने सॉफ़्टवेयर विकास के लिए लिनक्स का उपयोग करते हैं, जिसका अर्थ है कि आपको अपने पर आगे बढ़ना होगा खुद। हालांकि, अगर आपको वास्तव में जरूरत हैकिसी कारण से विंडोज-आधारित सॉफ़्टवेयर वितरित करें , फिर यह समझ में आता है कि विज़ुअल फोरट्रान जैसी किसी चीज़ का उपयोग करने के लिए सभी प्रयासों से गुज़रना पड़ता है।


सलाह के लिए धन्यवाद! लेकिन मैं सोच रहा हूं, वर्चुअल मशीन के बजाय, क्या मैं किसी तरह का डुअल-बूट मैकेनिज्म नहीं बना सकता हूं, जिसमें मुझे पहली बार विंडो 7 या लिनक्स उबंटू शुरू करने के लिए मुझे चुनने के लिए मिल सके? मेरा मानना ​​है कि यह वास्तव में मुझे बहुत समय बचा सकता है! और अगर मुझे खिड़कियों पर जाने की ज़रूरत है, तो मेरे पास लिनक्स-संस्करण का प्रोग्रामिंग अनुभव होगा जो मुझे खिड़कियों पर बहुत तेजी से गर्त में जाने की अनुमति देता है!
निक

तुम चाहो तो कर सकते हो। मुझे लगता है कि डुअल-बूट सेटअप कम लचीला है, और इसके लिए अधिक तकनीकी ज्ञान और समय की आवश्यकता है (आपको विभाजन का आकार बदलना होगा, बूट लोडर को सही तरीके से सेट करना होगा, आदि)। मुझे यह भी लगता है कि वर्चुअल मशीनें किसी नई मशीन में माइग्रेट करने में आसान होती हैं, जो किसी सहयोगी के साथ अपने काम को साझा करने के लिए, या यदि आप एक नए कंप्यूटर का अधिग्रहण करना चाहते हैं और वहां अपने सभी काम को माइग्रेट करना चाहते हैं, तो सहायक हो सकता है।
ज्योफ ऑक्सबेरी

मैं अंत में कुछ समय के लिए सभी nouldarry चरणों गर्त जाने के लिए मिला। मुझे वर्चुअलबॉक्स मिल गया है और मुझे लिनक्स (उबंटू) स्थापित हो गया है। अब मैं सोच रहा था कि सबसे अच्छा कंपाइलर कौन हो सकता है? मैं उस भाग के बारे में बहुत कुछ ऑनलाइन नहीं जान सकता। मैंने किसी को गुर्राते हुए सुना?
निक

2
गैफ़रान मुक्त है, और शायद कम से कम प्रतिरोध का रास्ता। अधिकांश अन्य संकलक को व्यक्तिगत या शैक्षणिक उपयोग के लिए संभावित अपवादों के साथ, लाइसेंस खरीदने की आवश्यकता होती है। (मुझे पता है कि इंटेल के कंपाइलर को केवल निशुल्क आधार पर व्यक्तिगत उपयोग के लिए डाउनलोड और उपयोग किया जा सकता है, उदाहरण के लिए, आपको विवरण के लिए लाइसेंस पढ़ना होगा।) हाईपरफॉर्मेंसमैर्क एक वेब साइट से जुड़ा हुआ है जिसमें कंपाइलरों के लिए प्रदर्शन की तुलना है।
ज्योफ ऑक्सीबेरी

6

मुझे लगता है कि मेटकाफ पुस्तक, फोरट्रान की आधुनिक विशेषताओं के लिए एक अच्छी एनोटेट गाइड है, बहुत उपयोगी है यदि आप पहले से ही भाषा के पहले संस्करण को जानते हैं, लेकिन भाषा में प्रोग्रामिंग के लिए अच्छा परिचय नहीं है।

मेरे पैसे के लिए Chiver's और SleIIIolme पुस्तक और Brainerd पुस्तक दोनों ही काफी अच्छी हैं, हालांकि मुझे नहीं लगता कि या तो एलिस एट अल की पुस्तक उतनी ही अच्छी है , जो दुर्भाग्य से, फोरट्रान 2003 या बाद के लिए अपडेट नहीं की गई है।

मेरे पास चैपमैन की किताब का प्रबल विरोध है। मुझे याद नहीं है कि मैंने 90/95 संस्करण को क्यों नापसंद किया था, इसलिए अब इस विरोध को उचित नहीं ठहराया जा सकता, आप इसे पूर्वाग्रह के रूप में भुना सकते हैं।

लेकिन एक किताब जो मैं बिना किसी हिचकिचाहट के सुझाता हूं, वह है अर्जेन मार्कस की किताब । यह शायद किसी के लिए एक आदर्श परिचय नहीं है जो अभी भी भाषा की बुनियादी विशेषताओं का पता लगाने की कोशिश कर रहा है, लेकिन एक बार जब आप उन लोगों में महारत हासिल कर लेते हैं जिनके लायक है कि यह किसी मूल्यवान पदार्थ में वजन है।

किस कंपाइलर का उपयोग करना है, मैं इंटेल कंपाइलर का उपयोग करता हूं और आमतौर पर इससे खुश हूं। यह विज़ुअल स्टूडियो के साथ एकीकृत होता है, जो आपके लिए महत्वपूर्ण हो सकता है। एनएजी संकलक के पास बेहतर त्रुटि और चेतावनी संदेश हैं लेकिन धीमी (आम तौर पर और आपका अनुभव अलग हो सकता है) निष्पादनयोग्य पैदा करता है। Gfortran संकलक मुफ़्त है और इसे काफी अच्छी समीक्षाएं मिलती हैं, लेकिन यह एक ऐसा नहीं है जिसका मैं उपयोग करता हूं। यदि आप अधिक जानना चाहते हैं तो पॉलीहेड्रॉन आपको बताएगा।


मार्कस पुस्तक में एक महान TOC है।
अलेक्सई

हाँ मार्कस पुस्तक वास्तव में एक महान पुस्तक लगती है, इसलिए मैं निश्चित रूप से इस पर विचार करूंगा! कंपाइलर के लिए मुझे बस तेज़ निष्पादनों (दृश्य स्टूडियो के साथ कोई एकीकरण नहीं) की आवश्यकता है।
निक

मुझे लगता है कि इंटेल कंपाइलर आमतौर पर तेजी से माना जाता है।
अलेक्सई

3

पुस्तकों के लिए, मैं मेटकाफ / रीड / कोहेन द्वारा "मॉडर्न फोरट्रान एक्सप्लेन" की सलाह देता हूं। यह एक पाठ्यपुस्तक से अधिक एक संदर्भ है, लेकिन यदि आप पहले से ही सामान्य रूप से प्रोग्रामिंग के साथ कुछ जोखिम रखते हैं तो यह आपकी अच्छी तरह से सेवा करेगा।

उस पुस्तक के अलावा, मैं दृढ़ता से Ondřej íertík की वेबसाइट http://fortran90.org/ की सिफारिश करता हूं । यह आपको पहली बार में फोरट्रान नहीं सिखाएगा, लेकिन यह आपको सर्वोत्तम प्रथाओं का एक सेट प्रदान करेगा। फोरट्रान प्रोग्रामिंग के लिए विभिन्न तरीकों की अनुमति देता है - यह सब के बाद नीचे संगत है। वहां दिए गए सर्वोत्तम अभ्यास आपको एक सुसंगत, आधुनिक फोरट्रान शैली विकसित करने में मदद करेंगे। इसके अलावा, वहाँ पूछे जाने वाले प्रश्न आप के लिए ब्याज की हो जाएगा।


2
F90 की सर्वोत्तम प्रथाओं के लिए बनाया गया पृष्ठ, जो वास्तव में मेरे लिए भी उपयोगी था।
डैनियल शेपरो

2

चैपमैन पुस्तक मुझे लगता है कि अधिक नौसिखिया अनुकूल और एक अच्छा संदर्भ है। दूसरे पर लेखक सभी विशेषज्ञ हैं, लेकिन मुझे लगता है कि पुस्तक बाद में आपके पुस्तकालय के लिए एक अच्छा जोड़ होगी।

शुरुआत के लिए मैं सुझाव दूंगा कि आप फोरट्रान 95 से चिपके रहें और फिर बाद में (यदि आवश्यक हो तो) फोरट्रान 2003 में चले जाएं। फोरट्रान 95 को सीखना आसान है (लगभग मतलाब जैसा) और आप बहुत जल्दी उत्पादक होंगे।

लिनक्स पर आपके पास टूल, रिचार्ज, gdb, gnuplot, (त्वरित अर्थात के लिए), svv / hg आदि जैसे उपकरणों के एक अमीर सेट के अलावा कई मुफ्त फोरट्रान कंपाइलर (GNU, Solaris Studio, Open64 आदि) हैं। पूर्व-संकलित पैकेज जिसमें संख्यात्मक लिबास (ब्लास / लैपैक / नेट एलसीडीएफ / एफएफटीवी आदि) शामिल हैं, एक कमांड दूर है (कम से कम डेबियन पर एप्ट-गेट के साथ)।

विंडोज पर आप साइबरविन के साथ बेहतर हो सकते हैं क्योंकि यह आपको GNU फोरट्रान कंपाइलर के अलावा उपरोक्त कुछ टूल्स / कामों के लिए आसान और त्वरित पहुँच प्रदान करता है। तो हाँ cygwin.com पर जाएँ और कोर पैकेज को gfortran और पसंद के संपादक के साथ स्थापित करें (विम अच्छा है)। यह एक अच्छी शुरुआत होनी चाहिए। बाद में अगर आपको कुछ और आता है तो मैं सामान लगाने के लिए apt-cyg पैकेज का उपयोग करने का सुझाव दूंगा


1
मैं पहले पाठ संपादक के रूप में विम (या उस बात के लिए, emacs) की सिफारिश नहीं करता हूं। कई आवश्यक विशेषताएं हैं (कट, कॉपी, पेस्ट, ढूंढना, ढूंढना / बदलना) जिसमें पहले टेक्स्ट एडिटर के रूप में उपयोग करने के लिए गैर-उद्देश्यपूर्ण कुंजी संयोजन शामिल हैं, और उन सभी अतिरिक्त, अपरिचित चरणों को एक नया सीखने के लिए कुछ भी सरल करना है जो कुछ भी वे करने की कोशिश कर रहे हैं, उससे हतोत्साहित और विचलित करना (जो, यदि आप एक पाठ संपादक की सिफारिश कर रहे हैं, तो शायद सॉफ्टवेयर विकास का कोई रूप है)।
ज्योफ ऑक्सीबेरी

1
पहले संपादक के रूप में, मैं एक ऐसे उपकरण की सलाह देता हूं, जिसमें आपके लिए कभी भी एकमात्र संपादक होने की क्षमता हो, न कि वह जिसे आप 3 सप्ताह, 3 महीने या यहां तक ​​कि 3 साल में भी पछाड़ देंगे। इस कारण से दोनों Emacs और Vim उपयुक्त पहले संपादक हैं। यकीन है कि उनके पास दूसरों की तुलना में एक प्रारंभिक-सीखने वाला वक्र हो सकता है, लेकिन बहुत सारे प्रोग्रामर ने उस कीमत का भुगतान किया है और पुरस्कार के लायक पाया है।
उच्च प्रदर्शन मार्क

आपकी टिप्पणी एक गलत विकल्प सेट करती है: vim / emacs सीखें और एक संपादक है जिसे आप जीवन के लिए उपयोग कर सकते हैं, खड़ी सीखने की अवस्था के बावजूद, या कुछ अन्य आसान-से-सीखे गए अवर टूल का उपयोग करें, जिन्हें आप बाहर करेंगे। बहुत से पेशेवर प्रोग्रामर कम खड़ी सीख वाले कर्व के साथ अन्य उपकरणों का उपयोग करते हैं, जैसे कि गेडिट, सब्लिम टेक्स्ट, टेक्स्टमैट, टेक्स्टवंगलर, और अन्य, और बस ठीक हो जाते हैं। विम और एमएसीएस महान संपादक हैं - मैं दोनों का उपयोग करता हूं - लेकिन वे प्रोग्रामिंग के लिए केवल एकमात्र स्पष्ट रूप से बेहतर विकल्प नहीं हैं (वोल्फगैंगबैंगर्थ आईडीई के लिए एक अच्छा मामला बनाता है)।
ज्योफ ऑक्सीबेरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.