Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में दिए गए मैट्रिक्स को विकर्ण मैट्रिक्स में बदलें


आकार nxn की एक मैट्रिक्स दी गई है और कार्य किसी भी प्रकार की दी गई मैट्रिक्स को विकर्ण मैट्रिक्स में बदलना है।

विकर्ण मैट्रिक्स क्या है

विकर्ण मैट्रिक्स nxn मैट्रिक्स है जिसके सभी गैर-विकर्ण एलिमेंट्स शून्य हैं और विकर्ण एलिमेंट्स कोई भी मान हो सकते हैं।

गैर-विकर्ण एलिमेंट्स को 0 में बदलने का आरेख नीचे दिया गया है।

$$\begin{bmatrix}1 & 2 & 3 \\4 & 5 & 6 \\7 & 8 & 9 \end{bmatrix}\:\rightarrow\:\begin{bmatrix}1 & 0 & 3 \\0 & 5 & 0 \\7 & 0 & 9 \end{bmatrix}$$

दृष्टिकोण गैर-विकर्ण एलिमेंट्स के लिए एक लूप और विकर्ण एलिमेंट्स के लिए दूसरा लूप शुरू करना है और गैर-विकर्ण के मान को शून्य से बदलना है और विकर्ण एलिमेंट्स को अपरिवर्तित छोड़ देना है।

उदाहरण

इनपुट-: matrix[3][3] = {{ 1, 2, 3 },    { 4, 5, 6 },    { 7, 8, 9 }} आउटपुट-: {{ 1, 0, 3},    { 0, 5, 0},    { 7, 0, 9}} इनपुट-: matrix[3][3] = {{ 91, 32, 23 },    { 40, 51, 26 },    { 72, 81, 93 }} आउटपुट-: {{ 91, 0, 23},    { 0, 51, 0},    { 72, 0, 93}}

एल्गोरिदम

शुरुआत चरण 1-> मैट्रिक्स आकार के लिए मैक्रो परिभाषित करें const int n = 10 चरण 2-> विकर्ण मैट्रिक्स में बदलने के लिए फ़ंक्शन घोषित करें    void diagonal(int arr[][n], int a, int m)       लूप लिए int i = 0 i < a i++          लूप लिए int j = 0 j < m j++             यदि i != j & i + j + 1 != a                arr[i][j] = 0 सेट करें             समाप्त          समाप्त       समाप्त       लूप लिए int i = 0 i < a i++          लूप लिए int j = 0 j < m j++             arr[i][j] प्रिंट करें          समाप्त          प्रिंट \n       समाप्त चरण 2-> main() में    मैट्रिक्स घोषित करें int arr[][n] = { { 1, 2, 3 },       { 4, 5, 6 },       { 7, 8, 9 } }    फ़ंक्शन को diagonal(arr, 3, 3) के रूप में कॉल करें रुकें

उदाहरण

#include <iostream> using namespace std; const int n = 10; //nxn मैट्रिक्स में विकर्ण पर 0 प्रिंट करें void diagonal(int arr[][n], int a, int m) {    for (int i = 0; i < a; i++) {       for (int j = 0; j < m; j++) {          if (i != j && i + j + 1 != a)          arr[i][j] = 0;       }    }    for (int i = 0; i < a; i++) {       for (int j = 0; j < m; j++) {          cout << arr[i][j] << " ";       }       cout << endl;    } } int main() {    int arr[][n] = { { 1, 2, 3 },       { 4, 5, 6 },       { 7, 8, 9 } };    diagonal(arr, 3, 3);    return 0; }

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा

0 2 0 4 0 6 0 8 0

  1. C++ में इन्वोल्यूटरी मैट्रिक्स जांचें C++ में इन्वोल्यूटरी मैट्रिक्स जांचें

    एक मैट्रिक्स M[r][c] दिया गया है, r पंक्तियों की संख्या दर्शाता है और c कॉलम की संख्या दर्शाता है जैसे कि r = c एक स्क्वायर मैट्रिक्स बनाता है। हमें जांचना है कि दिया गया स्क्वायर मैट्रिक्स इन्वोल्यूटरी मैट्रिक्स है या नहीं।इन्वोल्यूटरी मैट्रिक्सएक मैट्रिक्स को इन्वोल्यूटरी मैट्रिक्स कहा जाता है यदि

  1. C++ में डायगोनल मैट्रिक्स और स्केलर मैट्रिक्स जांचें C++ में डायगोनल मैट्रिक्स और स्केलर मैट्रिक्स जांचें

    एक मैट्रिक्स M[r][c] दिया गया है, r पंक्तियों की संख्या दर्शाता है और c कॉलम की संख्या दर्शाता है जैसे कि r = c एक स्क्वायर मैट्रिक्स बनाता है। हमें ढूंढना है कि दिया गया स्क्वायर मैट्रिक्स डायगोनल और स्केलर मैट्रिक्स है या नहीं, यदि यह डायगोनल और स्केलर मैट्रिक्स है तो परिणाम मे

  1. C++ प्रोग्राम: एडजेसेंसी मैट्रिक्स इम्प्लीमेंट करना C++ प्रोग्राम: एडजेसेंसी मैट्रिक्स इम्प्लीमेंट करना

    एक ग्राफ का एडजेसेंसी मैट्रिक्स V x V आकार का एक वर्ग मैट्रिक्स होता है। V ग्राफ G के वर्टेक्स की संख्या है। इस मैट्रिक्स में प्रत्येक तरफ V वर्टेक्स मार्क किए जाते हैं। यदि ग्राफ में i से j वर्टेक्स तक कुछ एज हैं, तो एडजेसेंसी मैट्रिक्स में i-वीं पंक्ति और j-वें कॉलम में 1 होगा (या वेटेड ग्राफ के