परिचय।

बहुत बार, किसी भी जानकारी के साथ काम करते समय, आपको सारणीबद्ध डेटा से निपटना पड़ता है। आधुनिक कार्यक्रम अक्सर ऐसे डेटा के साथ काम करते हैं। सबसे सरल उदाहरण चेकर्ड बोर्ड पर प्रोग्रामिंग गेम है: टिक-टैक-टो, शतरंज, चेकर्स, आदि।

गणित में, ऐसी संरचनाओं को आव्यूह कहा जाता है।

 
मैट्रिक्स एक ही प्रकार के तत्वों (संख्या, तार, आदि) से बना एक आयताकार तालिका है।< / स्पान>

C# में इस तरह के डेटा को द्वि-आयामी सरणियों के रूप में संग्रहीत और संसाधित किया जा सकता है - "सरणियों की सरणियाँ"
तालिका में डेटा को संसाधित करने के लिए, प्रत्येक सेल (सेल) की स्थिति को याद रखना आवश्यक है। प्रत्येक सेल में दो संख्याएँ होती हैं: एक पंक्ति संख्या और एक स्तंभ संख्या।
मैट्रिक्स में, प्रत्येक तत्व के दो सूचकांक होते हैं: पहले पंक्ति संख्या इंगित की जाती है, फिर स्तंभ संख्या। पंक्तियों और स्तंभों की संख्या शून्य से शुरू होती है।
उदाहरण के लिए, A[1, 2] तत्व दूसरी पंक्ति और तीसरे कॉलम में स्थित तत्व है।

मैट्रिसेस के साथ काम करने के लिए नियमित सरणियों की तरह, आपको उन्हें बनाना सीखना होगा, दर्ज करें, संसाधित करें और प्रदर्शित करें।

मैट्रिक्स बनाएं।>

इसका  इन-मेमोरी मैट्रिक्स बनाना संभव है कुछ प्रारंभिक मानों से भरा एक दिया गया आकार।

<कोड> इंट [,] सरणी = नया इंट [4, 2]; // 4 पंक्तियां, 2 कॉलम

  <दिव>

मैट्रिक्स बनाने के बाद, आप इसे मनमाने मूल्यों से भर सकते हैं। चूँकि प्रत्येक तत्व में दो अनुक्रमणिकाएँ होती हैं, इसलिए नेस्टेड लूप्स का उपयोग करना आवश्यक है

<पूर्व> for (int i=1; i <= N, i++) { / / एन - लाइनों की संख्या for (int j=1; j <= N, j++) { // M स्तंभों की संख्या है ए [आई, जे] = ...   } } मैट्रिक्स प्रदर्शित कर रहा हूं।

सूची को संसाधित करने और प्रदर्शित करने के लिए आमतौर पर दो नेस्टेड लूप का उपयोग किया जाता है। पहला लूप लाइन नंबर पर है, दूसरा लूप लाइन के भीतर तत्वों पर है। मैट्रिक्स को स्क्रीन पर पंक्ति दर पंक्ति आउटपुट करने के लिए, एक पंक्ति के भीतर रिक्त स्थान के साथ संख्याओं को अलग करने के लिए, आपको निम्न खंड लिखने की आवश्यकता है:
  <पूर्व> for (int i=1; i <= N, i++) { for (int j=1; j <= N, j++) { कंसोल। लिखें (ए [आई, जे] + " ");   }   कंसोल। राइटलाइन (); // एक नई लाइन पर जाएं }

आप ऐसा ही कर सकते हैं, लेकिन इंडेक्स के बजाय लिस्ट लूप का उपयोग करें ( फोरच )। एक सबरूटीन लिखने का प्रयास करें जो इसे स्वयं लागू करता है।

कीबोर्ड से मानों के साथ एक मैट्रिक्स भरना।>

प्रोग्राम को इनपुट के रूप में द्वि-आयामी सरणी प्राप्त करने दें, फॉर्म में < em>n स्ट्रिंग्स, प्रत्येक में m रिक्तियों द्वारा अलग की गई संख्याएं हैं। उन्हें कैसे गिनें? उदाहरण के लिए, इस तरह:

<पूर्व> int[,] array = new int[n,m]; // आबाद करने के लिए एक सरणी बनाएं के लिए (int i = 0; i <  n; i++) {        स्ट्रिंग ए = कंसोल.रीडलाइन (); // पढ़ने के लिए लाइन        int[] curr = A.Split(' ').Select(int.Parse).ToArray(); // इस स्ट्रिंग को एक आयामी सरणी वक्र में बदलें         के लिए (int j = 0; j < m; j++)        {            सरणी [मैं, जे] = वक्र [जे]; // उस सरणी के स्ट्रिंग को भरें जिसकी हमें सरणी सरणी से मानों के साथ आवश्यकता है        } }

 

मैट्रिक्स के प्रत्येक तत्व में दो इंडेक्स होते हैं, इसलिए आपको पुनरावृति के लिए नेस्टेड लूप का उपयोग करने की आवश्यकता होती है सभी तत्व।
आमतौर पर एक मैट्रिक्स पंक्ति दर पंक्ति पुनरावृत्त होता है: बाहरी लूप पंक्ति सूचकांकों पर पुनरावृति करता है, जबकि आंतरिक लूप स्तंभ सूचकांकों पर पुनरावृति करता है।
लेकिन यदि आवश्यक हो, तो आप मैट्रिक्स और स्तंभों पर पुनरावृति कर सकते हैं, फिर चक्रों को उलट दिया जाता है।