PLT - Programming logic's (languages) and Techniques (प्रोग्रॅमिंगचे तर्कशास्त्र आणि तंत्र)
संगणकाचा सर्वसाधारण उपयोग डेटावर प्रक्रिया करण्यासाठी आणि प्रॉब्लेम्स सोडविण्यासाठी होतो. प्रॉब्लेम्स सोडविणे हा संगणकाचा महत्वाचा फायदा आहे. संगणकाचे प्रॉब्लेम्स सोडवणे म्हणजे अत्यंत स्पष्ट अशा सूचनांचा संच प्रोग्रॅमिंगच्या भाषेमध्ये देणे. प्रोग्रॅमिंग लॉजिकचे शास्त्र आणि तंत्र यासाठी मदत म्हणून विकसित झाले.
नेहमी, संगणकाचा उपयोग गुंतागुंतीचे कार्य करण्यासाठी होतो. असे गुंतागुंतीचे काम करण्यासाठी, तुम्हाला मोठया प्रमाणात सुचना द्याव्या लागतात. विशिष्ट कार्य करण्यासाठी सूचनांच्या संचाचा उपयोगाला प्रोग्रॅम म्हणतात.
प्रोग्रॅम्स लिहिण्यापूर्वी, तो प्रॉब्लेम्स पूर्णत: समजाऊन घेणे, तो सोडविण्यासाठी विविध मार्गांचे विश्लेषण करणे आणि उत्कृष्ट अशा मार्गापर्यंत येणे हा चांगला मार्ग आहे. खालील आकृती प्रॉब्लेम्स सोडविण्याचे लॉजिक दर्शवतो.
प्रोग्रॅमिंगचे तंत्र शिकण्यापूर्वी, तुम्हाला इनपूट, प्रोसेस आणि आऊटपूट या संज्ञांची माहिती होणे आवश्यक आहे.
तुम्हा सर्वांना माहित आहे की बर्फाचे तुकडे म्हणजेच आईस क्युब्ज कसे तयार करतात.
१. बर्फाच्या ट्रे मध्ये पाणी घालतात.
२. बर्फाचा ट्रे फ्रिझरमध्ये ठेवतात.
३. काही वेळेनंतर, पाणी गोठते आणि आईस क्यूब्ज तयार होतात.
येथे, पाणी हे इनपूट आहे, गोठणे ही केलेली क्रिया आहे आणि आईस क्यूब्ज हे आऊटपूट आहे. वरील उदाहरणातील इनपूट, प्रोसेस आणि आऊटपूट हे चित्र स्वरूपात खालील आकृतीत दिसेल.
पीएलटी प्रॉब्लम्स सोडविण्याचा पद्घतशीर आकृतीसंबंध पुरवते. ते काही मार्गदर्शक तत्वांतर आधारित आहे. ज्याचा फायदा तुम्हाला कार्यक्षम प्रोग्रॅम्स लिहिण्यासाठी होतो. खालील आकृती टप्याटप्याने प्रॉब्लेम कसा सोडवायचा ते दर्शवते.
यामधील प्रत्येक टप्याचे विस्तृतपणे स्पष्टीकरण केले आहे.
टप्प १ :- प्रॉब्लेम निश्चित करणे.
या टप्यामध्ये प्रॉब्लेमची सर्व बाजूंची स्पष्टपणे निश्चिती केली जाते. स्पष्टपणे प्रॉब्लेम निश्चित करणे याला प्रॉब्लेमचे स्टेटमेंट असेही म्हणतात.
जर प्रॉब्लेम स्पष्टपणे निश्चित केला नाही तर, त्याचा परिणाम प्रोग्रॅमवर होईल ज्यामूळे प्रोग्रॅम वापरणाऱ्याच्या अपेक्षा पूर्ण होणार नाहीत.
टप्प २ :- सोल्यूशन निश्चित करणे
प्रॉब्लेमकरिता उत्कृष्ट असे सोल्यूशन म्हणजे, योग्य सोल्यूशनपर्यंत येण्यासाठी संगणकाला लागणारा वेळ आणि सोपा मार्ग याचे मनामध्ये सतत विश्लेषण करणे. याकरीता, योग्य ते आऊटपूट मिळविण्यासाठी तुम्हाला मिळालेल्या इनपूटवर फेरफार करण्यासाठी समीकरणे किंवा इतर मार्गांचा अवलंब करावा लागेल.
टप्प ३ :- सोल्यूशनचा आराखडा काढणे
तिसरा टप्पा हा सोल्यूशनचा आराखडा काढण्याचा आहे. एकदा तुम्ही इनपूट आणि इष्ट आऊटपूट निश्चित केले की तुम्हाला योग्य क्रमाने सोल्यूशनचा आराखडा तयार करावा लागतो. हे तुम्हाला अल्गोरिदमचा वापर करुन करता येते. अल्गोरिदम म्हणजे निश्चित असा टप्प्यांचा क्रम जो प्रॉब्लेम सोडविण्यासाठी पुरविला जातो, कोणत्याही प्रोग्रॅमिंग भाषेसाठी स्वतंत्र असतो.
टप्प ४ :- प्रोग्रॅम लिहिणे
चौथा टप्पा म्हणजे प्रोग्रॅम लिहिणे. एकदा तुम्ही अल्गोरिदम पूर्ण केला. तुम्हाला अल्गोरिदममधील प्रत्येक पयारी ही स्टेटमेंटसच्या स्वरुपात विशिष्ट अशा प्रोग्रॅमिंग भाषेमध्ये रुपांतरित करावी लागते.
टप्प ५ :- प्रोग्रॅम तपासणे
ही प्रॉब्लेम सोडविण्याची शेवटची पायरी आहे. येथे, प्रोग्रॅम वैध आणि अवैध अशा दोन्ही डेटासह तपासला जातो. येणारे आऊटपूटची तुलना प्रत्यक्ष आऊटपूटशी केली जाते. जर दोन्ही सारखे असतील तर प्रोग्रॅम चुकांविरहित आहे असे समजले जाते. जर नसेल तर, प्रोग्रॅम दुरुस्त केला जातो आणि पुन्हा तपासला जातो. निश्चित सोल्युशन पर्यंत येईपर्यंत ही क्रिया पुन:पुन्हा केली जाते.
* प्रोग्रॅम तपासण्यासाठी जे नमुना डेटा वापरला जातो. त्यास टेस्ट केस म्हणतात.
प्रॉब्लेम सोडविण्याचे तंत्र
प्रॉब्लेम सोडविण्यासाठी क्रमाक्रमाने अनुसरावयाच्या पायऱ्यांना अल्गोरिदम म्हणतात. अल्गोरिदम दोन मार्गानी दर्शविले जातात, ते म्हणजे :-
१. स्युडोकोड (Pseudocode)
२. फ्लो चार्ट (Flow Chart)
स्युडोकोड (Pseudocode)
स्युडोकोड ही अल्गोरिदम व्यक्त करण्याची सोपी भाषा आहे. विशिष्ट प्रोग्रॅमिंग भाषेमध्ये प्रोग्रॅम विकसित करण्यासाठी सुरुवातीची पायरी म्हणून याचा उपयोग करतात. एकदा स्युडोकोड स्वीकारला की ते प्रोग्रॅमींग भाषेच्या रचनेमध्ये म्हणजेच सिन्टॅक्समध्ये पुन्हा लिहिला जातो.
खालील टेबलमध्ये स्युडोकोड लिहिताना वापरली जाणारी कनर्व्हशन्स स्पष्ट केली आहेत.
आता एक उदा. पाहू.
// Pseudocode to find the product of two numbers' (दोन संख्यांचा गुणाकार काढण्याचा स्युडोकोड)
Begin
Accept A
Accept B
C = A + B
Display C
End
वरील प्रोग्रॅममधील पहिली ओळ ही कमेंट लाईन आहे.
फ्लोचार्ट
फ्लोचार्ट हा अल्गोरिदमची आकृतीस्वरुपात मांडणी आहे. तो प्रॉब्लेम सोडविण्याच्या विविध पायऱ्या दर्शवतो आणि सोपे प्रोग्रॅमिंग करण्यास मदत करतो. फ्लोचार्टमध्ये चिन्हांचे संच वापरले जातात ज्यांचे विशिष्ट असे कार्य असते. खालील टेबलमध्ये फ्लोचार्ट चिन्हे आणि त्यांची कार्ये स्प्ष्ट केली आहेत.
फ्लोचार्टची आकृती पहा, जी दोन संख्यांचा गुणाकार काढते.
हा फ्लोचार्ट व्हेरिएबल A आणि B मध्ये दोन व्हॅल्यूज स्वीकारतो. या व्हॅल्यूज गुणाकार होतो आणि त्याचे उत्तर C मध्ये साठविले जाते.
कॉन्स्टंटस आणि व्हेरिएबल्स
तुम्हाला माहित आहे की संगणक योग्य ते आऊटपूट तयार करण्यासाठी इनपूटवर प्रक्रिया करतो. त्यासाठी इनपूट हे त्यावर प्रक्रिया होण्यासाठी मेमरीमध्ये साठविणे आवश्यक आहे. इनपूट मेमरीमध्ये साठविण्यासाठी, तुम्ही व्हेरिएबल्सचा उपयोग करु शकता. अशाप्रकारे, व्हेरिएबल्स ही मेमरीमधील ठिकाणे आहेत जेथे इनपूट व्हॅल्यूज साठविल्या जातात. व्हेरिएबल्सला इनपूट म्हणून ज्या व्हल्यूज दिल्या जातात त्यांना कॉन्स्टंट म्हणतात. प्रोग्रॅमचे एक्झिक्युशन होताना कॉन्स्टंट व्हॅल्यूज बदलत नाहीत.
दोन संख्याच्या बेरजेचे सोपे उदाहरण पहा. दोन संख्यांच्या बेरजेचा खालीलप्रमाणे असेल.
Begin
Accetp A
Accept B
C = A + B
End
येथे पहिली व्हॅल्यू स्वीकारली जाईल आणि ती व्हेरिएबल अे मध्ये साठविली जाईल. त्याचप्रमाणे दुसरी व्हॅल्यू स्वीकारली जाईल आणि ती बी मध्ये साठविली जाईल. A आणि B मध्ये साठविलेल्या व्हॅल्यूजची बेरीज केली जाईल आणि येणारे उत्तर व्हेरिएबल C मध्ये साठविले जाईल. शेवटी, उत्तर दाखविले जाईल.
जर युजरने इनपुट म्हणून १० आणि २० या व्हॅल्यूज दिल्या, तर त्या अनुक्रमे व्हेरिएबल्स A आणि B मध्ये साठविल्या जातील. A आणि B च्या व्हॅल्यूजची बेरीज होईल आणि येणारे उत्तर ३० हे C मध्ये साठविले जाईल. शेवटी C मधील उत्तर दाखविले जाईल. टेबलमध्ये व्हेरिएबल्स आणि त्यामधील साठविलेल्या व्हॅल्यूज दाखविल्या आहेत.
डेटा टाईप
बरील उदाहरणात, इनपूट म्हणून संख्या दिल्या आहेत. त्याचप्रमाणे तुम्ही संख्या नसलेला डेटा म्हणजेच नॉन न्युमरीक डेटा टाईप व्हेरिएबलमध्ये साठविला जातो त्याला डेटा टाईप असे म्हणतात.
डेटा टाईपचे वर्गीकरण असे करता येते :-
न्युमरीक म्हणजेच अंक
कॅरेक्टर म्हणजेच अक्षरे
कॅरेक्टर कॉन्स्टंटस
कॅरेक्टर कॉन्स्टंटस चा उपयोग
१. Alphabets -- A-Z, a-z
२. Numbers -- 0-9
३. Symbols -- ? ! @ # $ % ^ & * ( ) { } . , ; : " ' / \
साठविण्यासाठी होतो.
कॅरेक्टर्सच्या संचाला स्ट्रिंग म्हणतात. स्ट्रिंग कॉन्स्टंटस हे नेहमी दुहेरी अवतरण चिन्हांत असतात.
कोणत्याही स्ट्रिंग कॉन्स्टंटमध्ये कॅरॅक्टर व्हेरिएबल साठवता येते. जे अक्षर अंकाचे आणि विशेष कॅरेक्टर्सचे एकत्रिकरण असते. जरी त्यामध्ये फक्त संख्या असल्या तरी ते गणना म्हणजेच कॅल्क्यूलेशन करण्यासाठी वापरता येत नाही.
उदाहरणार्थ :-
" Hellow World", "123", "A001"
अल्फान्युमेरिक कॉन्टंट हे अक्षरे, संख्या आणि विशेष कॅरेक्टर्सचे एकत्रिकरण आहे.
न्युमरिक कॉन्स्टंटस
न्युमरिक कॉन्स्टंटस चा उपयोग
१. ० ते ९ संख्या
२. सुरुवातीस धन (+) किंवा (-) चिन्ह
३. डेसिबल पॉइंट (.)
4. साठविण्यासाठी होतो.
न्युमरिक कॉन्स्टंटचा उपयोग गणना म्हणजेच कॅल्क्यूलेशन करण्यासाठी होतो. न्युमरिक कॉन्स्टंटस दोन प्रकारचे आहेत, ते म्हणजे
१. इंटिजर
२. फ्लोट
इंटिजर
इंटिजर व्हेरिएबल्सचा उपयोग फक्त पूर्ण संख्या साठविण्यासाठी होतो.
उदा. :- २४, २, आणि ५
फ्लोट
फ्लोट व्हेरिएबल्सचा उपयोग डेसिमल पॉइंट्स असलेल्या संख्या म्हणजे अपूर्णांक संख्या साठविण्यासाठी होतो.
उदा. १२, ५, ७, ४, आणि २.४
न्युमेरिक कॉन्स्टंटस हे दुहेरी अवतरण चिन्हात नसावेत.
व्हेरिएबल डिक्लेअर करणे
प्रोग्रॅममध्ये वापरले जाणारे प्रत्येक व्हेरिएबल डिक्लेअर करणे आवश्यक आहे. प्रोग्रॅममध्ये स्टेटमेंट असणे आवश्यक आहे जे व्हेरिएबलमधील माहितीचा प्रकार स्पस्ट करते. व्हेरिएबल डिक्लेअर करण्याचा सिन्टॅक्स आहे.
{डेटा टाईप} {व्हेरिएबलचे नांव}
उदाहाणे :-
१. Chat Name
२. येथे Name हे अल्फान्युमरिक व्हेरिएबल डिक्लेअर केले आहे.
३. Integer Sum
हे स्टेटमेंट Sum नावाचे इंटिजर व्हेरिएबल डिक्लेअर करते. हे व्हेरिएबल फक्त पूर्ण संख्याच धारण करू शकते.
* Float Salary
हे स्टेटमेंट Salary नावाचे फ्लोट व्हेरिएबल डिक्लेअर करते जे अपूर्णांक संख्या धारण करु शकते.
व्हेरिएबलला नाव देण्याच्या पद्धती (Variable name conventions)
व्हेरिएबलला नाव देण्यासाठी काही नियम पाळावे लागतात. ते म्हणजे :-
१. व्हेरिएबलच्या नावाची सुरुवात अक्षराने म्हणजेच अल्फाबेटने होणे आवश्यक आहे, ज्यापुढे अल्फाबेट्स किंवा डिजीटस असू शकतात.
२. त्यामध्ये मोकळी जागा किंवा चिन्हे जसे ? ! @ # $ % ^ & () . , ' " ; : / \ नसावीत.
३. जेव्हा स्पेस किंवा मोकळी जागा सोडायची आहे तेथे अंडरस्कोअर्सचा उपयोग करता येतो.
खालील व्हेरिएबल्स पहा :-
a) product - हे वैध व्हेरिएबल नाव आहे.
b) Net salary -- हे वैध व्हेरिएबल नाव नाही. व्हेरिएबलच्या नावामध्ये स्पेस नसावी. योग्य डिक्लेरेशन net_salary असे आहे.
c) number # -- हे वैध व्हेरिएबल नाव नाही. व्हेरिएबलच्या नावात # हे चिन्ह नसावे.
ऑपरेटर्स
प्रोग्रॅम्स केवळ इनपूट आणि आऊटपूट ऑपरेशन्स करीत नाही. ते बेरीज, वजाबाकी आणि दोन व्हॅल्यूजची तुलना यांसारख्या क्रियाही करते. संगणकाच्या सर्व भाषांमध्ये अशा क्रिया करणारी टूल्स दिलेली आहेत. या टूल्सला ऑपरेटर्स म्हणतात. ऑपरेटर्स तीन प्रकारात विभागले जातात. ते म्हणजे :-
१. अरीथमॅटीक ऑपरेटर्स
२. रिलेशनल ऑपरेटर्स
३. लॉजिकल ऑपरेटर्स
अरीथमॅटीक ऑपरेटर्स
जे ऑपरेटर्स गणिती क्रिया म्हणजेच अरेथमॅटिक कॅल्क्यूलेशन्स करण्यासाठी वापरतात त्यांना अरेथमॅटीक ऑपरेटर्स म्हणतात. अरेथमॅटिक ऑपरेटर्समध्ये,
१. बेरीज म्हणजेच ॲडिशन (Addition)
२. वजाबाकी म्हणजेच सबट्रॅकशन (Substraction)
३. गुणाकार म्हणजेच मल्टिप्लिकेशन (Multiplication)
४. भागाकार म्हणजेच डिव्हीजन (Division)
याचा समावेश होतो.
टेबलमध्ये काही ऑपरेटर्स आणि ते करीत असलेल्या क्रिया स्पष्ट केल्या आहेत.
उदा.
समजा A आणि B च्या व्हॅल्यूज अनुक्रमे १०.२ आहेत.
* वजाबाकी
C = A - B
व्हेरिएबल B मधील व्हॅल्यू व्हेरिएबल A मधील व्हॅल्यूमधून वजा केली जाईल. येणारा फरक व्हेरिएबल C मध्ये साठविला जाईल. C ची व्हॅल्यू ८ होईल.
* भागाकार
C = A / B
व्हेरिएबल A मधील व्हेरिएबल B मधील व्हॅल्यूने भागले जाईल. येणारे उत्तर हे व्हेरिएबल C मध्ये साठविले जाईल. C ची व्हॅल्यू ५ होईल.
टीप :- वरील ऑपरेटर्स बरोबरच तुम्हाला क्यूबेसिसिमध्ये घातांक म्हणजेच एक्पोनंट ऑपरेटर्ससुद्धा (^) आहेत. हा ऑपरेटर दिलेल्या संख्येचा घातक काढण्यासाठी वापरतात. उदा. 43(3 चा चौथा घात) चे उत्तर 81. क्यूबेसिसमध्ये हे 3^4 = 81 असे दर्शवतात.
रिलेशनल ऑपरेटर्स
रिलेशनल ऑपरेटर्सचा उपयोग दोन व्हॅल्यूजची तुलना करण्यासाठी होतो. ते व्हेरिएबलच्या व्हॅल्यूजची तुलना कॉन्स्टंट बरोबर करण्यासाठी ही वापरतात. असे सह रिलेशनल ऑपरेटर्स आहेत. टेबलमध्ये त्याचा तपशील दिला आहे.
उदा.
एक्सप्रेशन (A == 5) : व्हेरिएबल A मधील व्हॅल्यू ही व्हेरिएबल B मधील व्हॅल्यूच्या बरोबर आहे का हे तपासते. उत्तर हो किंवा नाही यापैकी येईल (सत्य किंवा असत्य असेही उत्तर काढता येते).
टीप :- कोणत्याही रिलेशनल ऑपरेटनचे आऊटपूट चूक किंवा बरोबर येते (हो किंवा नाही असेही उत्तर येते).
टीप :- क्यूबेसिक मध्ये, इक्वल टू ही खूण = अशी दर्शवतात आणि Not Equal to ही खूण <> अशी दर्शवतात.
लॉजीकल ऑपरेटर्स
लॉजिकल ऑपरेटर्सचा उपयोग रिलेशनल ऑपरेटर्स समाविष्ट असलेल्या दोन किंवा अधिक एक्सप्रेशन्सचा एकत्र विचार करण्यासाठी होतो. एकूण तीन लॉजीक ऑपरेटर्स आहेत. ते म्हणजे :-
१. AND
२. OR
३. NOT
खालील उदा. पहा.
तुम्हाला व्हेरिएबल Num 1 हे 7 च्या बरोबर आहे का आणि दुसरे व्हेरिएबल Num 2 हे 5 पेक्षा मोठे आहे का हे तपासायचे आहे. अशा प्रकारच्या एक्सप्रशनचा कोड लिहिण्यासाठी, लॉजिकल ऑपरेटर AND चा उपयोग रिलेशनल ऑपरेटर = बरोबर खालीलप्रमाणे करतात.
Num 1 = 7 AND Num2>5.
AND ऑपरेटर
जर सर्व स्वतंत्र कंडिशन्स ह्या बरोबर असतील तरच AND ऑपरेटर बरोबर उत्तर देतो. वरील उदा. जर व्हेरिएबल Num 1 ची व्हॅल्यू 7 असेल आणि व्हेरिएबल Num 2 ची व्हॅल्यू 5 पेक्षा अधिक असेल तरच उत्तर बरोबर असे येईल.
OR ऑपरेटर
लॉजिकल ऑपरेटर OR चा उपयोग करण्यासाठी एकत्र कंडिशनमधील किमान एक कंडिशन बरोबर असणे आवश्यक आहे.
NOT ऑपरेटर
लॉजिकल ऑपरेटर NOT चा उपयोग कोणत्याही एकत्र कंडिशनचे आऊटपूट उलटे करण्यासाठी होतो.
टीप :- जेव्हा लॉजिकल ऑपरेटर्स वापरुन कंडिशन्स एकत्र करतात त्यांना एकत्र कंडिशन म्हणजेच कंम्पाऊंड कंडिशन म्हणतात.