एल्गोरिदम एक चरण-दर-चरण प्रक्रिया है जो किसी समस्या को हल करने में सहायक होती है। यदि इसे अंग्रेजी जैसे वाक्यों में लिखा जाता है, तो इसे 'स्यूडो कोड' (PSEUDO CODE) कहा जाता है।
एल्गोरिदम के गुण
एक एल्गोरिदम में निम्नलिखित पांच गुण होने चाहिए:
- इनपुट (Input) - शून्य या अधिक इनपुट्स
- आउटपुट (Output) - एक या अधिक आउटपुट्स
- परिमितता (Finiteness) - सीमित चरणों में समाप्त होना चाहिए
- निश्चितता (Definiteness) - प्रत्येक चरण स्पष्ट और अस्पष्ट नहीं होना चाहिए
- प्रभावशीलता (Effectiveness) - प्रत्येक चरण मौलिक रूप से निष्पादन योग्य होना चाहिए
उदाहरण: तीन संख्याओं का औसत खोजने का एल्गोरिदम
- शुरुआत (Start)
- 3 संख्याएं a, b, c पढ़ें
- योग गणना करें: sum = a + b + c
- औसत गणना करें: average = sum / 3
- औसत मान प्रिंट करें
- रोकें (Stop)
फ्लोचार्ट (FLOW CHART)
एल्गोरिदम का आरेखीय प्रतिनिधित्व फ्लोचार्ट कहलाता है।
फ्लोचार्ट में उपयोग किए जाने वाले प्रतीक
| नाम | प्रतीक | उद्देश्य |
|---|---|---|
| टर्मिनल (Terminal) | अंडाकार (Oval) | शुरुआत/रोक/प्रारंभ/अंत |
| इनपुट/आउटपुट | समानांतर चतुर्भुज (Parallelogram) | डेटा का इनपुट/आउटपुट |
| प्रोसेस (Process) | आयत (Rectangle) | किए जाने वाले किसी भी प्रसंस्करण को दर्शाता है |
| निर्णय बॉक्स (Decision) | हीरा (Diamond) | निर्णय ऑपरेशन जो वैकल्पिक पथ निर्धारित करता है |
| कनेक्टर (Connector) | वृत्त (Circle) | फ्लोचार्ट के विभिन्न भागों को जोड़ने के लिए |
| फ्लो (Flow) | तीर (Arrows) | दो प्रतीकों को जोड़ता है और निष्पादन प्रवाह दर्शाता है |
| पूर्वनिर्धारित प्रक्रिया | डबल-साइडेड आयत | मॉड्यूल/सबरूटीन जो कहीं और निर्दिष्ट है |
| पेज कनेक्टर | पंचकोण (Pentagon) | दो अलग-अलग पेजों में फ्लोचार्ट जोड़ने के लिए |
| फोर लूप प्रतीक | षट्कोण (Hexagon) | लूप वेरिएबल का आरंभीकरण, शर्त और इन्क्रीमेंटेशन दिखाता है |
| डॉक्यूमेंट | प्रिंटआउट | प्रिंटआउट के लिए तैयार डेटा दिखाता है |
उदाहरण: तीन संख्याओं का औसत खोजने का फ्लोचार्ट
[Start] (Oval)
|
v
[Input a, b, c] (Parallelogram)
|
v
[sum = a + b + c] (Rectangle)
|
v
[avg = sum / 3] (Rectangle)
|
v
[Print avg] (Parallelogram)
|
v
[Stop] (Oval)
निर्णय संरचना के साथ फ्लोचार्ट उदाहरण (उदाहरण: दो संख्याओं में से बड़ी खोजें):
[Start]
|
v
[Input a, b]
|
v
[a > b?] (Diamond) --Yes--> [Print "a is larger"]
| |
No |
| v
v [End/Join]
[Print "b is larger"]
|
v
[Stop]
एल्गोरिदम vs फ्लोचार्ट
| पहलू | एल्गोरिदम | फ्लोचार्ट |
|---|---|---|
| प्रतिनिधित्व | पाठ/स्यूडोकोड | चित्रमय/दृश्य |
| पठनीयता | विस्तृत तर्क के लिए अच्छा | फ्लो/निर्णयों के लिए अच्छा |
| लेखन में आसानी | आसान (टेक्स्ट एडिटर) | टूल आवश्यक (Visio, draw.io, आदि) |
| डीबगिंग | कोड में सीधा अनुवाद | लॉजिक त्रुटियों को दृश्यमान बनाता है |
| दस्तावेजीकरण | तकनीकी दस्तावेज | संचार/प्रस्तुति के लिए बेहतर |
सर्वोत्तम अभ्यास
- कोडिंग से पहले एल्गोरिदम/फ्लोचार्ट बनाएं।
- जटिल लॉजिक के लिए फ्लोचार्ट, विस्तृत चरणों के लिए स्यूडोकोड उपयोग करें।
- फ्लोचार्ट को सरल रखें; जटिल भागों को सबरूटीन में विभाजित करें।
- मानक प्रतीकों का उपयोग करें (ISO 5807 / ANSI)।