समस्या समाधान के चरण
- विश्लेषण: क्या दिया है (इनपुट), क्या चाहिए (आउटपुट) और नियम क्या हैं।
- एल्गोरिद्म बनाना: हल को स्पष्ट, क्रमबद्ध चरणों में लिखना।
- कोड: एल्गोरिद्म को Python जैसी भाषा में लिखना।
- टेस्ट: कई इनपुट से चलाना, खास मामलों (0, ऋणात्मक, बहुत बड़ी संख्या) सहित।
- डीबग: गलतियाँ ढूँढकर ठीक करना; फिर दोबारा टेस्ट।
अच्छे एल्गोरिद्म में: स्पष्ट इनपुट-आउटपुट, सीमित चरण (रुकना ज़रूरी), सटीक चरण, और सही परिणाम।
फ़्लोचार्ट
फ़्लोचार्ट मानक चिह्नों और तीरों से एल्गोरिद्म का चित्र है।
- अंडाकार (टर्मिनल): शुरू / रुको।
- समांतर चतुर्भुज: इनपुट / आउटपुट।
- आयत: प्रक्रिया (गणना या मान देना)।
- हीरा: निर्णय; एक रास्ता अंदर, दो बाहर (हाँ/नहीं)।
- तीर: बहाव की दिशा।
फ़्लोचार्ट देखकर समझना आसान है, पर बड़ी समस्या में बहुत बड़ा हो जाता है।
स्यूडोकोड
स्यूडोकोड एल्गोरिद्म को INPUT, COMPUTE, PRINT, IF…ELSE, WHILE जैसे शब्दों के साथ सरल भाषा में लिखता है। यह असली भाषा नहीं, इसलिए सिंटैक्स की चिंता नहीं।
INPUT A, B
IF A > B THEN
PRINT A
ELSE
PRINT Bएल्गोरिद्म में क्रम (एक के बाद एक), चयन (IF निर्णय) और पुनरावृत्ति (लूप) होते हैं।
विघटन (Decomposition)
विघटन यानी जटिल समस्या को छोटी, सरल उप-समस्याओं में तोड़ना। हर भाग अलग हल होता है (अक्सर अलग व्यक्ति या फ़ंक्शन से), फिर जोड़ा जाता है।
उदाहरण: रेलवे आरक्षण = ट्रेन खोजो, सीट देखो, टिकट बुक करो, भुगतान लो, टिकट छापो।
लाभ: समझना आसान, काम बाँट सकते हैं, गलती ढूँढना आसान, भाग दोबारा काम आते हैं।
बोर्ड परीक्षा पर ध्यान
आम प्रश्न: सरल कामों का फ़्लोचार्ट या स्यूडोकोड (बड़ी संख्या, 1 से n का योग, सम/विषम, अंकों से ग्रेड), चिह्नों के नाम, समस्या समाधान के चरण, विघटन उदाहरण सहित।
मुख्य सूत्र और परिभाषाएँ
- समस्या समाधान: विश्लेषण → एल्गोरिद्म → कोड → टेस्ट → डीबग
- एल्गोरिद्म = सीमित, सटीक, क्रमबद्ध चरण, इनपुट-आउटपुट सहित
- अंडाकार = शुरू/रुको; समांतर चतुर्भुज = I/O; आयत = प्रक्रिया; हीरा = निर्णय
- आधार: क्रम, चयन, पुनरावृत्ति
हल किए गए उदाहरण
1. आयत का क्षेत्रफल निकालने का एल्गोरिद्म लिखें।
1. शुरू। 2. लंबाई L और चौड़ाई B इनपुट। 3. क्षेत्रफल = L × B। 4. क्षेत्रफल छापो। 5. रुको।
2. संख्या सम या विषम जाँचने का स्यूडोकोड लिखें।
INPUT N IF N MOD 2 = 0 THEN PRINT "सम" ELSE PRINT "विषम"
3. 1 से 10 तक का योग छापने का फ़्लोचार्ट बताइए।
शुरू → प्रक्रिया: sum = 0, i = 1 → निर्णय: i <= 10? → हाँ: sum = sum + i, i = i + 1, तीर वापस निर्णय पर → नहीं: sum छापो → रुको।
4. 'स्कूल खेल दिवस' का विघटन करें।
उप-समस्याएँ: खेलों की सूची, छात्रों का पंजीकरण, मैदान और सामान, समय सारणी, निर्णय और परिणाम, इनाम। हर एक टीम संभाले, फिर जोड़ें।
5. A = 5, B = 12 के लिए बड़ी संख्या वाला फ़्लोचार्ट चलाइए।
शुरू → A = 5, B = 12 → 5 > 12? नहीं → B = 12 छापो → रुको।
6. ग्रेड का स्यूडोकोड: अंक ≥ 90 → A, ≥ 75 → B, वरना C।
INPUT M IF M >= 90 THEN PRINT "A" ELSE IF M >= 75 THEN PRINT "B" ELSE PRINT "C"
आम गलतियाँ
- निर्णय के लिए आयत बनाना। निर्णय हमेशा हाँ/नहीं वाले हीरे में।
- ऐसा एल्गोरिद्म जो कभी न रुके। एल्गोरिद्म सीमित होना चाहिए।
- 0 या ऋणात्मक जैसे खास इनपुट से टेस्ट न करना।
- इनपुट/आउटपुट (समांतर चतुर्भुज) और प्रक्रिया (आयत) को मिला देना।