Romania Clasa a XI-a Computer Science (mathematics-informatics)
अध्याय: 3
1. Data structures
Two-dimensional arrays · Strings · Records · Lists · Graphs
- ऐरे और लिस्ट: एक नाम में बहुत सारे मान – ऐरे (array) नंबर वाले डिब्बों की एक पंक्ति है जिनका नाम एक ही होता है। हर डिब्बे में एक मान होता है और उसका इंडेक्स 0 से शुरू होता है। इंडेक्स से हम डिब्बा पढ़ते या बदलते हैं, लूप से हर डिब्बे पर जाते हैं (ट्रैवर्सल), और इसी लूप से योग, औसत, सबसे बड़ा मान, गिनती और लीनियर सर्च करते हैं। 2D ऐरे पंक्तियों और स्तंभों का ग्रिड है, जिसे दो इंडेक्स और दो नेस्टेड लूप से पढ़ते हैं। ऐरे का आकार तय होता है; लिस्ट बढ़-घट सकती है।
- Python में स्ट्रिंग – स्ट्रिंग अक्षरों का इम्यूटेबल अनुक्रम है जो एकल, दोहरे या तिहरे उद्धरण चिह्नों में लिखा जाता है। हर अक्षर का धनात्मक इंडेक्स (बाएँ से 0) और ऋणात्मक इंडेक्स (दाएँ से −1) होता है। संक्रियाएँ: + (जोड़ना), * (दोहराना), in / not in (सदस्यता) और स्लाइसिंग s[start:stop:step], जो start से stop तक (stop शामिल नहीं) अक्षर लेती है। ट्रैवर्सल = लूप से हर अक्षर पर जाना। len(), upper(), lower(), title(), capitalize(), count(), find(), index(), replace(), split(), join(), strip(), startswith(), endswith(), isalpha(), isdigit(), isalnum(), islower(), isupper(), isspace() जैसे मेथड मूल स्ट्रिंग बदले बिना नया मान देते हैं।
- डेटा संरचना: ऐरे, लिस्ट, स्टैक, क्यू और ट्री – डेटा संरचना मेमोरी में डेटा को ऐसे जमाने का तरीका है कि प्रोग्राम उसे अच्छे से इस्तेमाल कर सके। ऐरे चीज़ों को क्रमांकित डिब्बों में रखता है ताकि सूचकांक से तुरंत पहुँच हो। लिंक्ड लिस्ट नोड्स को पॉइंटर से जोड़ती है, इसलिए बीच में डालना आसान है। स्टैक LIFO (अंतिम आया, पहले गया) और क्यू FIFO (पहले आया, पहले गया) पर चलते हैं। डिक्शनरी कुंजी (key) से मान खोजती है और ट्री डेटा को स्तरों में रखता है ताकि खोज तेज़ हो।
- लिंक्ड लिस्ट (Linked List) – लिंक्ड लिस्ट चीज़ों को नोड में रखती है। हर नोड में डेटा और एक पॉइंटर (अगले नोड का पता) होता है। head नाम का वेरिएबल पहले नोड को दिखाता है; आख़िरी नोड NULL को दिखाता है। नोड मेमोरी में कहीं भी हो सकते हैं, इसलिए शुरू में जोड़ना-हटाना बस पॉइंटर बदलना है, पर k-वाँ आइटम ढूँढने के लिए head से चलना पड़ता है।
- ग्राफ़ सिद्धांत: बिंदु, रेखाएँ और नेटवर्क – ग्राफ़ शीर्षों (बिंदुओं) का समूह है जिन्हें किनारे (रेखाएँ) जोड़ते हैं। किसी शीर्ष की घात उसे छूने वाले किनारों की संख्या है, और सभी घातों का योग किनारों का दुगुना होता है। ऑयलर पथ हर किनारे का एक बार उपयोग करता है और तभी संभव है जब 0 या 2 शीर्ष विषम घात के हों। वृक्ष ऐसा जुड़ा ग्राफ़ है जिसमें चक्र नहीं और n − 1 किनारे हैं। भारित ग्राफ़ सड़कें और नेटवर्क दिखाते हैं; क्रुस्कल और प्रिम विधियाँ न्यूनतम विस्तृत वृक्ष ढूँढती हैं।
2. Programming methods
Divide and conquer · Backtracking
जल्द आ रहा है
3. Subprograms
Subprograms · Recursion
- पायथन में फ़ंक्शन: अपनी मशीनें ख़ुद बनाइए – फ़ंक्शन एक नाम वाला कोड-खंड है जो एक काम करता है। पायथन में बिल्ट-इन फ़ंक्शन (print, len), मॉड्यूल के फ़ंक्शन (math.sqrt, random.randint) और def से बने यूज़र-डिफ़ाइंड फ़ंक्शन होते हैं। कॉल में भेजे मान आर्ग्युमेंट हैं; उन्हें पकड़ने वाले नाम पैरामीटर हैं। आर्ग्युमेंट स्थान के अनुसार (positional), नाम से (keyword) या डिफ़ॉल्ट मान से आते हैं। return मान वापस भेजता है। पायथन ऊपर से नीचे चलता है, कॉल पर फ़ंक्शन में कूदता है और फिर लौट आता है। फ़ंक्शन के अंदर बने नाम लोकल, बाहर बने ग्लोबल होते हैं।
- रिकर्शन: ख़ुद को पुकारने वाले फ़ंक्शन – रिकर्शन (recursion) तब होता है जब कोई फ़ंक्शन किसी प्रश्न को हल करने के लिए उसी प्रश्न के छोटे रूप पर ख़ुद को पुकारता है। हर रिकर्सिव फ़ंक्शन में एक आधार स्थिति (base case) चाहिए, जहाँ वह रुककर सीधे उत्तर देता है, और एक रिकर्सिव स्थिति जो आधार स्थिति की ओर बढ़ती है। हर पुकार को कॉल स्टैक पर अपना स्टैक फ़्रेम मिलता है; पुकार लौटने पर फ़्रेम हट जाता है।