Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी में पॉइंटर्स का उपयोग करके दो मैट्रिक्स कैसे गुणा करें?

पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है।

पॉइंटर्स की विशेषताएं

  • सूचक स्मृति स्थान बचाता है।
  • मेमोरी लोकेशन तक सीधी पहुंच के कारण पॉइंटर का निष्पादन समय तेज होता है।
  • पॉइंटर्स की मदद से, मेमोरी को कुशलता से एक्सेस किया जाता है यानी मेमोरी आवंटित की जाती है और गतिशील रूप से डील की जाती है।
  • पॉइंटर्स का उपयोग डेटा संरचनाओं के साथ किया जाता है।

सूचक घोषणा, आरंभीकरण और पहुंच

निम्नलिखित कथन पर विचार करें -

int qty = 179;

मेमोरी में, वेरिएबल को नीचे दिखाए अनुसार दर्शाया जा सकता है -

सी में पॉइंटर्स का उपयोग करके दो मैट्रिक्स कैसे गुणा करें?

घोषणा

पॉइंटर की घोषणा नीचे दिखाए अनुसार की जा सकती है -

Int *p;

इसका मतलब है कि 'p' एक पॉइंटर वेरिएबल है जो दूसरे इंटीजर वेरिएबल का पता रखता है।

आरंभीकरण

एड्रेस ऑपरेटर (&) का उपयोग पॉइंटर वेरिएबल को इनिशियलाइज़ करने के लिए किया जाता है।

उदाहरण के लिए,

int qty = 175;
int *p;
p= &qty;

किसी वेरिएबल को उसके पॉइंटर से एक्सेस करना

वेरिएबल के मान को एक्सेस करने के लिए, इनडायरेक्शन ऑपरेटर (*) का उपयोग किया जाता है।

उदाहरण

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

#include <stdio.h>
#define ROW 3
#define COL 3
/* Function declarations */
void matrixInput(int mat[][COL]);
void matrixPrint(int mat[][COL]);
void matrixMultiply(int mat1[][COL], int mat2[][COL], int res[][COL]);
int main() {
   int mat1[ROW][COL];
   int mat2[ROW][COL];
   int product[ROW][COL];
   printf("Enter elements in first matrix of size %dx%d\n", ROW, COL);
   matrixInput(mat1);
   printf("Enter elements in second matrix of size %dx%d\n", ROW, COL);
   matrixInput(mat2);
   matrixMultiply(mat1, mat2, product);
   printf("Product of both matrices is : \n");
   matrixPrint(product);
   return 0;
}
void matrixInput(int mat[][COL]) {
   int row, col;
   for (row = 0; row < ROW; row++) {
      for (col = 0; col < COL; col++) {
         scanf("%d", (*(mat + row) + col));
      }
   }
}
void matrixPrint(int mat[][COL]) {
   int row, col;
   for (row = 0; row < ROW; row++) {
      for (col = 0; col < COL; col++) {
         printf("%d ", *(*(mat + row) + col));
      }
      printf("\n");
   }
}
void matrixMultiply(int mat1[][COL], int mat2[][COL], int res[][COL]) {
   int row, col, i;
   int sum;
   for (row = 0; row < ROW; row++) {
      for (col = 0; col < COL; col++) {
         sum = 0;
         for (i = 0; i < COL; i++) {
            sum += (*(*(mat1 + row) + i)) * (*(*(mat2 + i) + col));
         }
         *(*(res + row) + col) = sum;
      }
   }
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -

Enter elements in first matrix of size 3x3
2 3 1
2 5 6
2 6 8
Enter elements in second matrix of size 3x3
1 2 1
2 3 4
5 6 7
Product of both matrices is :
13 19 21
42 55 64
54 70 82

  1. जावा ओपनसीवी लाइब्रेरी का उपयोग करके दो छवियों की तुलना कैसे करें?

    दो छवियों की तुलना करने के लिए - Image.IO.read() . का उपयोग करके दोनों को पढ़ें विधि। यह सुनिश्चित करने के लिए कि वे समान हैं, दोनों की ऊंचाई और चौड़ाई प्राप्त करें। पिक्सेल मान प्राप्त करें और दोनों छवियों के RGB मान प्राप्त करें। इन दो छवियों के आरजीबी मूल्यों के बीच अंतर का योग प्रा

  1. पायथन का उपयोग करके दो मैट्रिक्स को गुणा करने के लिए Tensorflow का उपयोग कैसे किया जा सकता है?

    Tensorflow एक मशीन लर्निंग फ्रेमवर्क है जो Google द्वारा प्रदान किया जाता है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसका उपयोग एल्गोरिदम, गहन शिक्षण अनुप्रयोगों और बहुत कुछ को लागू करने के लिए पायथन के साथ संयोजन में किया जाता है। इसका उपयोग अनुसंधान और उत्पादन उद्देश्यों के लिए किया जाता है। इसमें अनुकूलन

  1. पायथन का उपयोग करके दो मैट्रिक्स जोड़ने के लिए Tensorflow का उपयोग कैसे किया जा सकता है?

    Tensorflow एक मशीन लर्निंग फ्रेमवर्क है जो Google द्वारा प्रदान किया जाता है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसका उपयोग एल्गोरिदम, गहन शिक्षण अनुप्रयोगों और बहुत कुछ को लागू करने के लिए पायथन के साथ संयोजन में किया जाता है। इसका उपयोग अनुसंधान और उत्पादन उद्देश्यों के लिए किया जाता है। इसमें अनुकूलन