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

C++ में बहुआयामी सरणियों का उपयोग करके दो मैट्रिक्स गुणा करने का प्रोग्राम


मैट्रिक्स संख्याओं का एक आयताकार सरणी है जो पंक्तियों और कॉलम के रूप में व्यवस्थित होता है।

मैट्रिक्स का एक उदाहरण निम्नलिखित है।

एक 3*3 मैट्रिक्स में 3 पंक्तियाँ और 3 कॉलम होते हैं जैसा कि नीचे दिखाया गया है:

8 6 3 7 1 9 5 1 9

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

उदाहरण

#include<iostream> using namespace std; int main() {    int product[10][10], r1=2, c1=3, r2=3, c2=3, i, j, k;    int a[2][3] = { {2, 4, 1} , {2, 3, 9} };    int b[3][3] = { {1, 2, 3} , {3, 6, 1} , {2, 9, 7} };    if (c1 != r2) {       cout<<"पहले मैट्रिक्स का कॉलम दूसरे मैट्रिक्स की पंक्ति के बराबर होना चाहिए";    } else {       cout<<"पहला मैट्रिक्स है:"<<endl;       for(i=0; i<r1; ++i) {          for(j=0; j<c1; ++j)          cout<<a[i][j]<<" ";          cout<<endl;       }       cout<<endl;       cout<<"दूसरा मैट्रिक्स है:"<<endl;       for(i=0; i<r2; ++i) {          for(j=0; j<c2; ++j)          cout<<b[i][j]<<" ";          cout<<endl;       }       cout<<endl;       for(i=0; i<r1; ++i)       for(j=0; j<c2; ++j) {          product[i][j] = 0;       }       for(i=0; i<r1; ++i)       for(j=0; j<c2; ++j)       for(k=0; k<c1; ++k) {          product[i][j]+=a[i][k]*b[k][j];       }       cout<<"दो मैट्रिक्स का गुणनफल है:"<<endl;       for(i=0; i<r1; ++i) {          for(j=0; j<c2; ++j)          cout<<product[i][j]<<" ";          cout<<endl;       }    }    return 0; }

आउटपुट

पहला मैट्रिक्स है: 2 4 1 2 3 9 दूसरा मैट्रिक्स है: 1 2 3 3 6 1 2 9 7 दो मैट्रिक्स का गुणनफल है: 16 37 17 29 103 72

उपरोक्त प्रोग्राम में, दो मैट्रिक्स a और b को निम्नानुसार आरंभ किया जाता है।

int a[2][3] = { {2, 4, 1} , {2, 3, 9} }; int b[3][3] = { {1, 2, 3} , {3, 6, 1} , {2, 9, 7} };

यदि पहले मैट्रिक्स में कॉलम की संख्या दूसरे मैट्रिक्स में पंक्तियों की संख्या के बराबर नहीं है तो गुणा नहीं किया जा सकता। इस मामले में एक त्रुटि संदेश प्रिंट किया जाता है। यह निम्नानुसार दिया गया है।

if (c1 != r2) {    cout<<"पहले मैट्रिक्स का कॉलम दूसरे मैट्रिक्स की पंक्ति के बराबर होना चाहिए"; }

दोनों मैट्रिक्स a और b को नेस्टेड फॉर लूप का उपयोग करके प्रदर्शित किया जाता है। यह निम्नलिखित कोड स्निपेट द्वारा प्रदर्शित होता है।

cout<<"पहला मैट्रिक्स है:"<<endl; for(i=0; i<r1; ++i) {    for(j=0; j<c1; ++j)    cout<<a[i][j]<<" ";    cout<<endl; } cout<<endl; cout<<"दूसरा मैट्रिक्स है:"<<endl; for(i=0; i<r2; ++i) {    for(j=0; j<c2; ++j)    cout<<b[i][j]<<" ";    cout<<endl; } cout<<endl;

इसके बाद, product[][] मैट्रिक्स को 0 से आरंभ किया जाता है। फिर दो मैट्रिक्स a और b का गुणनफल खोजने के लिए नेस्टेड फॉर लूप का उपयोग किया जाता है। यह नीचे दिए गए कोड स्निपेट में प्रदर्शित है।

for(i=0; i<r1; ++i) for(j=0; j<c2; ++j) {    product[i][j] = 0; } for(i=0; i<r1; ++i) for(j=0; j<c2; ++j) for(k=0; k<c1; ++k) {    product[i][j]+=a[i][k]*b[k][j]; }

गुणनफल प्राप्त होने के बाद, इसे प्रिंट किया जाता है। यह निम्नानुसार दिखाया गया है।

cout<<"दो मैट्रिक्स का गुणनफल है:"<<endl; for(i=0; i<r1; ++i) {    for(j=0; j<c2; ++j)    cout<<product[i][j]<<" ";    cout<<endl; }

  1. C++ प्रोग्राम: इन्सिडेंस मैट्रिक्स का उपयोग करके ग्राफ प्रतिनिधित्व करना C++ प्रोग्राम: इन्सिडेंस मैट्रिक्स का उपयोग करके ग्राफ प्रतिनिधित्व करना

    एक ग्राफ का इन्सिडेंस मैट्रिक्स ग्राफ को मेमोरी में स्टोर करने का एक और प्रतिनिधित्व है। यह मैट्रिक्स एक वर्ग मैट्रिक्स नहीं है। इन्सिडेंस मैट्रिक्स का ऑर्डर V x E होता है। जहां V वर्टेक्स की संख्या है और E ग्राफ में एज की संख्या है। इस मैट्रिक्स की प्रत्येक पंक्ति में हम वर्टेक्स रखते हैं, और प्रत

  1. C++ प्रोग्राम: एडजेसेंसी मैट्रिक्स का उपयोग करके ग्राफ प्रतिनिधित्व करना C++ प्रोग्राम: एडजेसेंसी मैट्रिक्स का उपयोग करके ग्राफ प्रतिनिधित्व करना

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

  1. - जावा प्रोग्राम: मल्टी-डाइमेंशनल ऐरे का उपयोग करके दो मैट्रिक्स को जोड़ना

    इस लेख में, हम समझेंगे कि मल्टी-डाइमेंशनल ऐरे का उपयोग करके दो मैट्रिक्स को कैसे जोड़ा जाता है। मैट्रिक्स में इसके एलिमेंट्स की पंक्ति और स्तंभ व्यवस्था होती है। m पंक्तियों और n स्तंभों वाले मैट्रिक्स को m × n मैट्रिक्स कहा जा सकता है। मैट्रिक्स में व्यक्तिगत प्रविष्टियों को एलिमेंट कहा जाता है और