কম্পিউটার টিউটোরিয়াল

C ভাষায় পয়েন্টার ব্যবহার করে দুটি ম্যাট্রিক্স গুণ করার পদ্ধতি


পয়েন্টার হলো একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা সংরক্ষণ করে।

পয়েন্টার বৈশিষ্ট্য

  • পয়েন্টার মেমরি স্পেস বাঁচায়।
  • মেমরি লোকেশনে সরাসরি অ্যাক্সেসের কারণে পয়েন্টারের এক্সিকিউশন টাইম দ্রুত।
  • পয়েন্টারের সাহায্যে মেমরি দক্ষতার সাথে অ্যাক্সেস করা যায় অর্থাৎ মেমরি ডাইনামিক্যালি অ্যালোকেট এবং ডি-অ্যালোকেট করা যায়।
  • পয়েন্টার ডেটা স্ট্রাকচারের সাথে ব্যবহৃত হয়।

পয়েন্টার ঘোষণা, ইনিশিয়ালাইজেশন এবং অ্যাক্সেস

নিচের স্টেটমেন্টটি বিবেচনা করুন:

int qty = 179;

মেমরিতে, ভেরিয়েবলটি নিচের মত রিপ্রেজেন্ট করা হয়:

C ভাষায় পয়েন্টার ব্যবহার করে দুটি ম্যাট্রিক্স গুণ করার পদ্ধতি

ঘোষণা

পয়েন্টার ঘোষণা নিম্নরূপ করা হয়:

Int *p;

এটি মানে 'p' একটি পয়েন্টার ভেরিয়েবল যা অন্য একটি ইন্টিজার ভেরিয়েবলের ঠিকানা ধারণ করে।

ইনিশিয়ালাইজেশন

অ্যাড্রেস অপারেটর (&) ব্যবহার করে পয়েন্টার ভেরিয়েবল ইনিশিয়ালাইজ করা হয়।

উদাহরণস্বরূপ,

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

পয়েন্টার মাধ্যমে ভেরিয়েবল অ্যাক্সেস

ভেরিয়েবলের ভ্যালু অ্যাক্সেস করার জন্য ইন্ডিরেকশন অপারেটর (*) ব্যবহার করা হয়।

উদাহরণ

পয়েন্টার ব্যবহার করে দুটি ম্যাট্রিক্স গুণ করার C প্রোগ্রাম:

#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. C ভাষায় পয়েন্টার ব্যবহার করে অ্যারে এলিমেন্টের যোগফল বের করার পদ্ধতি

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে দুটি চিত্র তুলনা

  3. পাইথনে টেনসরফ্লো ব্যবহার করে দুটি ম্যাট্রিক্স গুণ করার পদ্ধতি

  4. পাইথনে টেনসরফ্লো ব্যবহার করে দুটি ম্যাট্রিক্স যোগ করার পদ্ধতি