एक नई प्रोग्रामिंग भाषा सीखना मजेदार हो सकता है। जब भी मैं एक नया सीखने की कोशिश करता हूं, तो मैं चर को परिभाषित करने, एक बयान लिखने और अभिव्यक्तियों का मूल्यांकन करने पर ध्यान केंद्रित करता हूं। एक बार जब मुझे उन अवधारणाओं की सामान्य समझ हो जाती है, तो मैं आमतौर पर बाकी को अपने आप समझ सकता हूं। अधिकांश प्रोग्रामिंग भाषाओं में कुछ समानताएं होती हैं, इसलिए एक बार जब आप एक प्रोग्रामिंग भाषा जान लेते हैं, तो अगली भाषा सीखना अद्वितीय विवरणों का पता लगाने और उसमें अंतरों को पहचानने का मामला है।
एक नई प्रोग्रामिंग भाषा का अभ्यास करने में मेरी मदद करने के लिए, मुझे कुछ परीक्षण कार्यक्रम लिखना पसंद है। एक नमूना कार्यक्रम जो मैं अक्सर लिखता हूं वह एक सरल "संख्या का अनुमान" कार्यक्रम है, जहां कंप्यूटर एक और 100 के बीच की संख्या चुनता है और मुझसे संख्या का अनुमान लगाने के लिए कहता है। प्रोग्राम तब तक चलता है जब तक मैं सही अनुमान नहीं लगा लेता।
"संख्या का अनुमान लगाएं" प्रोग्राम प्रोग्रामिंग भाषाओं में कई अवधारणाओं का प्रयोग करता है:चर के लिए मान कैसे निर्दिष्ट करें, कथन कैसे लिखें, और सशर्त मूल्यांकन और लूप कैसे करें। नई प्रोग्रामिंग भाषा सीखने के लिए यह एक बेहतरीन व्यावहारिक प्रयोग है।
बैश में संख्या का अनुमान लगाएं
अधिकांश लिनक्स सिस्टम के लिए बैश मानक शेल है। एक समृद्ध कमांड-लाइन यूजर इंटरफेस प्रदान करने के अलावा, बैश स्क्रिप्ट के रूप में एक संपूर्ण प्रोग्रामिंग भाषा का भी समर्थन करता है। ।
यदि आप बैश से परिचित नहीं हैं, तो मैं इन परिचयों की अनुशंसा करता हूं:
- बैश क्या है?
- बैश प्रोग्रामिंग के साथ शुरुआत करें
- sysadmins के लिए बैश स्क्रिप्टिंग के साथ आरंभ करें
- बैश में फंक्शन कैसे लिखें
- बैश के बारे में और पढ़ें
आप "गेस द नंबर" गेम का वर्जन लिखकर बैश को एक्सप्लोर कर सकते हैं। यहाँ मेरा कार्यान्वयन है:
#!/bin/bash
number=$(( $RANDOM % 100 + 1 ))
echo "Guess a number between 1 and 100"
guess=0
while [ "0$guess" -ne $number ] ; do
read guess
[ "0$guess" -lt $number ] && echo "Too low"
[ "0$guess" -gt $number ] && echo "Too high"
done
echo "That's right!"
exit 0
स्क्रिप्ट को तोड़ना
स्क्रिप्ट की पहली पंक्ति, #!/bin/bash
बैश शेल का उपयोग करके इस स्क्रिप्ट को चलाने के लिए लिनक्स को बताता है। हर स्क्रिप्ट #!
. से शुरू होती है वर्ण जोड़ी, जो इंगित करती है कि यह एक शेल स्क्रिप्ट है। #!
. के तुरंत बाद क्या होता है चलाने के लिए खोल है। इस मामले में, /bin/bash
बैश शेल है।
किसी वेरिएबल को कोई मान निर्दिष्ट करने के लिए, वेरिएबल के नाम को =
. के बाद सूचीबद्ध करें संकेत। उदाहरण के लिए, कथन guess=0
guess
. को एक शून्य मान प्रदान करता है चर।
आप उपयोगकर्ता को read
. का उपयोग करके एक मान दर्ज करने के लिए भी कह सकते हैं बयान। यदि आप read guess
लिखते हैं , बैश उपयोगकर्ता द्वारा कुछ पाठ दर्ज करने की प्रतीक्षा करता है और फिर उस मान को guess
में संग्रहीत करता है चर।
किसी वैरिएबल के मान को संदर्भित करने के लिए, $
. का उपयोग करें परिवर्तनीय नाम से पहले। इसलिए, guess
. में एक मान संग्रहीत करने के बाद चर, आप इसे $guess
. का उपयोग करके पुनः प्राप्त कर सकते हैं ।
आप चर के लिए जो भी नाम पसंद करते हैं उसका उपयोग कर सकते हैं, लेकिन बैश अपने लिए कुछ विशेष चर नाम सुरक्षित रखता है। एक विशेष चर है RANDOM
, जो हर बार जब आप इसका संदर्भ देते हैं तो एक बहुत बड़ी यादृच्छिक संख्या उत्पन्न करता है।
यदि आप उसी समय एक ऑपरेशन करना चाहते हैं जब आप एक मूल्य संग्रहीत करते हैं, तो आपको विशेष ब्रैकेट में कथन संलग्न करना होगा। यह बैश को पहले उस कथन को निष्पादित करने के लिए कहता है, और =
परिणामी मान को चर में संग्रहीत करता है। गणितीय व्यंजक का मूल्यांकन करने के लिए, $(( ))
. का उपयोग करें आपके बयान के इर्द-गिर्द दोहरे कोष्ठक एक अंकगणितीय व्यंजक . दर्शाते हैं . मेरे उदाहरण में, number=$(( $RANDOM % 100 + 1 ))
अभिव्यक्ति का मूल्यांकन करता है $RANDOM % 100 + 1
और फिर मान को number
. में संग्रहीत करता है चर।
मानक अंकगणितीय ऑपरेटर जैसे +
(प्लस), -
(माइनस), *
(गुणा करें), /
(विभाजित), और %
(मॉड्यूलो) लागू करें।
यानी स्टेटमेंट number=$(( $RANDOM % 100 + 1 ))
एक और 100 के बीच एक यादृच्छिक संख्या उत्पन्न करता है। मोडुलो ऑपरेटर (%
) शेष . लौटाता है दो संख्याओं को विभाजित करने के बाद। इस मामले में, बैश एक यादृच्छिक संख्या को 100 से विभाजित करता है, शेष को शून्य से 99 की सीमा में छोड़ देता है। उस मान में एक जोड़कर, आपको एक और 100 के बीच एक यादृच्छिक संख्या मिलती है।
बैश सशर्त अभिव्यक्तियों . का समर्थन करता है और प्रवाह नियंत्रण छोरों की तरह। "गेस द नंबर" गेम में, बैश तब तक लूपिंग जारी रखता है जब तक guess
में मान है number
. के बराबर नहीं है . यदि अनुमान यादृच्छिक संख्या से कम है, तो बैश "बहुत कम" प्रिंट करता है और यदि अनुमान संख्या से अधिक है, तो बैश "बहुत अधिक" प्रिंट करता है।
यह कैसे काम करता है
अब जब आपने अपनी बैश स्क्रिप्ट लिख ली है, तो आप इसे "गेस द नंबर" गेम खेलने के लिए चला सकते हैं। सही संख्या मिलने तक अनुमान लगाते रहें:
Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!
हर बार जब आप स्क्रिप्ट चलाते हैं, तो बैश एक अलग रैंडम नंबर चुनेगा।
यह "अनुमान संख्या" गेम एक नई प्रोग्रामिंग भाषा सीखते समय एक महान परिचयात्मक कार्यक्रम है क्योंकि यह बहुत ही सरल तरीके से कई सामान्य प्रोग्रामिंग अवधारणाओं का अभ्यास करता है। इस सरल गेम को विभिन्न प्रोग्रामिंग भाषाओं में लागू करके, आप कुछ मुख्य अवधारणाओं को प्रदर्शित कर सकते हैं और प्रत्येक भाषा में विवरण की तुलना कर सकते हैं।
क्या आपके पास पसंदीदा प्रोग्रामिंग भाषा है? आप इसमें "गेस द नंबर" गेम को कैसे लिखेंगे? अन्य प्रोग्रामिंग भाषाओं के उदाहरण देखने के लिए इस लेख श्रृंखला का अनुसरण करें, जिनमें आपकी रुचि हो सकती है।