फ्लो चार्ट

**क्रमदर्शी आरेख** या **प्रवाह तालिका** (फ्लो चार्ट) वस्तुत: कलन विधि का चित्रात्मक प्रदर्शन है। इसमें विभिन्न रेखाओ एवं आकृतियो का प्रयोग किया जाता है जो कि विभिन्न प्रकार के निर्देशो के लिये प्रयोग की जाती है। जिस प्रकार यातायात के निर्देश विशेष चिन्हो द्वारा प्रदर्शित करने से सूक्ष्म एवं सरल हो जाते है उसी प्रकार प्रवाह तालिका मे विभिन्न चिन्हो एवं आकृतियो के माध्यम से निर्देशो का प्रदर्शन सूक्ष्म एवं सरल हो जाता है और प्रोग्रामर की समझ मे सरलता से आ जाता है। सामान्यत: सर्वप्रथम एक एल्गोरिथम को प्रवाह तालिका के रूप मे प्रस्तुत किया जाता है और फिर प्रवाह तालिका के आधार पर उचित कम्प्यूटर भाषा मे प्रोग्राम को तैयार किया जाता है। 

**एल्गोरिद्म को अभिव्यक्त करने के अन्य तरीके:**

* छद्मकूट (Pseudocode)

* प्राकृतिक भाषाएँ (Natural languages)

* प्रोग्रामिंग भाषाएँ (Programming languages)

## महत्व / लाभ
किसी प्रोग्राम की एल्गोरिथम और प्रवाह तालिका तैयार करने का मुख्य लाभ यह है कि प्रोग्रामर इस समय केवल कार्य के समपन्न होने की प्रक्रिया एवं उसमे प्रयुक्त तर्को एवं शर्तो के अनुसार ही प्रोग्राम के निर्देशो को क्रमबध्द करता है, वह प्रोग्रामिंग भाषा मे प्रयोग किये जाने वाले तत्वो पर विचार नही करता। प्रोग्राम मे तार्किक त्रुटि एवं शर्तो के पूरा न होने की स्थिति एल्गोरिथम एवं प्रवाह तालिका अधिक स्पष्ट हो जाती है। एक बार प्रवाह तालिका बन जाने पर प्रोग्रामर तर्को एवं शर्तो पर अपना ध्यान केन्द्रित न करके मात्र प्रवाह तालिका मे प्रयुक्त विभिन्न बॉक्सो मे दी गई विभिन्न क्रियाओ की कोडिंग प्रोग्रामिंग भाषा मे स्टेटमेन्ट के रूप मे प्रस्तुत करने मे करता है। इससे निश्चय ही एक त्रुटिरहित प्रोग्राम तैयार किया जा सकता है।

## प्रवाह तालिका बनाने के नियम
right|thumb|300px|फ्लोचार्ट बनाने में लगने वाले विभिन्न ब्लॉक
*१. प्रवाह तालिका का निर्माण एक Terminal Symbol Start से प्रारंभ होता है।

*२. प्रवाह तालिका मे प्रवाह ऊपर से नीचे एवं बाए से दायी ओर होना चाहिये।

*३. दो विभिन्न क्रियाये किसी एक प्रश्न के दो सम्भावित उत्तरो पर निर्भर करती है। ऎसी परिस्थिति मे प्रश्न को एक निर्णय चिन्ह मे प्रदर्शित करते है तथा इन परिस्थितियो को निर्णय चिन्ह से निकलने वाली दो प्रवाह रेखाओ द्वारा जो कि चिन्ह से बाहर की ओर आ रही है, प्रदर्शित करते है। निर्णय चिन्ह मे एक प्रवाह रेखा आनी चाहिये और सभी सम्भावित उत्तरो के लिये पृथ्क रेखा होनी चाहिये। 

*४. प्रत्येक चिन्ह मे दिये गए निर्देश स्पष्ट एवं पूर्ण होने चाहिये तांकि उसे पढकर समझने मे कठिनाई नही होनी चाहिये।

*५. प्रवाह तालिका मे प्रयुक्त नाम एवं परिवर्तनांक एक रूप होने चाहिये।

*६. यदि प्रवाह तालिका बडी हो गई है और उसे अगले पृष्ठ पर भी बनाया जाना है तो प्रवाह तालिका को input अथवा output symbol पर ही तोडना चाहिये तथा प्रयुक्त connectors का प्रयोग करना चाहिये।

*७. प्रवाह तालिका जहां तक सम्भव हो अत्यंत साधारण होनी चाहिये।

*८. प्रवाह रेखाये एक दूसरे को काटती हुई नही होनी चाहिये। यदि एसी परिस्थिति आती है तो उपयुक्त connector का प्रयोग करना चाहिये।

*९. Proccess symbol मे केवल एक ही प्रवाह रेखा आनी चाहिये और एक ही प्रवाह रेखा निकलनी चाहिये।

*१०. नीचे से ऊपर की ओर जाने वाली प्रवाह रेखा या तो किसी विश्लेषण की पुनरावृति अथवा लूप को प्रदर्शित करना चाहिये।

निम्न प्रवाह तालिका तापमान को फारेनहाईट से सेन्टीग्रेड मे बदलने के लिये प्रोग्राम बनाने के लिये है। इसमे सबसे पहले टर्मिनल चिन्ह का प्रयोग करके इसमे START लिखकर प्रोग्राम का प्रारंभ दर्शाया गया है। अब इनपुट/आऊट्पुट चिन्ह द्वारा इनपुट दर्शाया गया है। इस इनपुट चिन्ह मे हमे फारेनहाईट इनपुट करना है यह निर्देश दिया गया है। इसके पश्चात प्रोसेसिंग चिन्ह का प्रयोग किया गया है। इस चिन्ह मे यह स्पष्ट निर्देश दिया गया है कि किस सूत्र के अनुसार फारेनहाईट को सेन्टीग्रेड मे बदला जाना है। अब प्रोसेसिंग के पश्चात परिणाम को मॉनीटर स्क्रीन पर प्रदर्शित करने के लिये आउट्पुट चिन्ह का प्रयोग किया गया है तथा इस चिन्ह मे प्राप्त परिणाम को प्रिन्ट करने का निर्देश दिया गया है और अन्त मे टर्मिनल चिन्ह का प्रयोग करके प्रोग्राम का समापन दर्शाया गया है।

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

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

*किसी प्रोग्राम जब प्रवाह तालिका तैयार कर ली जाती है तो प्रोग्रामर उस प्रोग्राम की कोडिंग अर्थात प्रोग्राम को सरलता से लिख लिया जाता है। प्रवाह तालिका प्रोग्राम के प्रारंभ बिन्दु से समापन बिन्दु तक की समस्त प्रक्रिया कदम-ब-कदम प्रदर्शित करती है अत: प्रोग्रामर को एक त्रुटिरहित प्रोग्राम अल्प समय मे विकसित करने मे सहायक होती है।

*प्रोग्राम को चलाने पर यदि कोइ त्रुटि आती है और प्रोग्राम की प्रवाह तालिका बनी हुई है तो इस त्रुटि को ढुंढने और इसे दूर करने मे सरलता होती है।

## प्रवाह तालिका की परिसीमाएं
* प्रवाह तालिका बनाने मे अधिक श्रम व समय लगता है। यह छोटे प्रोग्राम्स के लिये तो उपयुक्त है लेकिन बडे प्रोग्रामो की प्रवाह तालिका सही चिन्हो सहित तैयार कर पाना अत्यन्त जटिल एवं दुरूह कार्य है।

* यदि प्रोग्राम के किसी तर्क मे कोइ परिवर्तन आता है तो प्रवाह तालिका को नये सिरे से तैयार करना पडता है।

इन्ही परिसीमाओ के कारण वर्तमान मे प्रवाह तालिका के स्थान पर मिथ्या संकेतो (छद्म कूट) का प्रयोग किया जाने लगा है।

## इन्हें भी देखें
* अल्गोरिद्म
* साफ्टवेयर
* प्रोग्रामिंग भाषा
* अवस्था आरेख (state diagram)

## बाहरी कड़ियाँ
* '''Drawanywhere''' - फ्लोचार्ट बनाने का मुफ्त, आनलाइन, सरल औजार
* '''Code Visual to Flow chart''' - सी-कोड से फ्लो-चार्ट बनाने का साफ्टवेयर
* '''Code to Chart 2.0''' -creates visual representation of source code
* Create A Flow Chart In Word 2007

श्रेणी:सॉफ्टवेयर
श्रेणी:प्रोग्रामिंग भाषा