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

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

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

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

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

पॉइंटर घोषणा, इनिशियलाइज़ेशन और एक्सेस

निम्नलिखित स्टेटमेंट पर विचार करें:

int qty = 179;

घोषणा

पॉइंटर घोषित करना निम्नानुसार किया जा सकता है:

int *p;

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

इनिशियलाइज़ेशन

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

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

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

अपने पॉइंटर के माध्यम से वेरिएबल एक्सेस करना

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

उदाहरण

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

#include <stdio.h>
#define ROW 3
#define COL 3

/* फंक्शन घोषणाएं */
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("पहली मैट्रिक्स के एलिमेंट्स दर्ज करें आकार %dx%d\n", ROW, COL);
    matrixInput(mat1);
    printf("दूसरी मैट्रिक्स के एलिमेंट्स दर्ज करें आकार %dx%d\n", ROW, COL);
    matrixInput(mat2);
    matrixMultiply(mat1, mat2, product);
    printf("दोनों मैट्रिक्स का गुणनफल है: \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;
        }
    }
}

आउटपुट

पहली मैट्रिक्स के एलिमेंट्स दर्ज करें आकार 3x3
2 3 1
2 5 6
2 6 8
दूसरी मैट्रिक्स के एलिमेंट्स दर्ज करें आकार 3x3
1 2 1
2 3 4
5 6 7
दोनों मैट्रिक्स का गुणनफल है:
13 19 21
42 55 64
54 70 82
  1. Java OpenCV लाइब्रेरी का उपयोग करके दो इमेज की तुलना कैसे करें? Java OpenCV लाइब्रेरी का उपयोग करके दो इमेज की तुलना कैसे करें?

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

  1. Python का उपयोग करके TensorFlow में दो मैट्रिक्स को कैसे गुणा करें? Python का उपयोग करके TensorFlow में दो मैट्रिक्स को कैसे गुणा करें?

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

  1. Python का उपयोग करके TensorFlow में दो मैट्रिक्स को कैसे जोड़ें? Python का उपयोग करके TensorFlow में दो मैट्रिक्स को कैसे जोड़ें?

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