সি প্রোগ্রামিং এইচটিএমএল সিএসএস জাভাস্ক্রিপ্ট পিএইচপি এসকিউএল
ফোরাম
×

 সি টিউটোরিয়াল

সি প্রোগ্রামিং কি? সি এর ইতিহাস সি এর বৈশিষ্ট্যসমূহ কেন সি শিখবেন? সি ইন্সটলেশন প্রথম সি প্রোগ্রাম সি প্রোগ্রামের ফ্লো প্রোগ্রামিং শেখার সঠিক পদ্ধতি সি কীওয়ার্ড সি আইডেন্টিফায়ার সি ভ্যারিয়েবল সি কনস্ট্যান্ট সি ডাটা টাইপ সি মোডিফায়ার সি ইনপুট/আউটপুট সি অপারেটর সি কমেন্ট সি অপারেটর অগ্রাধিকার

সি কন্ট্রোল স্টেটমেন্ট

সি ইফ সি ইফ...ইলস সি ফর লুপ সি হোহাইল লুপ সি ডু...হোহাইল লুপ সি ব্রেক সি কন্টিনিউ সি সুইচ স্টেটমেন্ট সি goto স্টেটমেন্ট

 সি ফাংশন

সি ফাংশন পরিচিতি সি ইউজার কর্তৃক ফাংশন সি ফাংশন টাইপ সি রিকার্সন সি ভ্যারিয়েবল স্কোপ

 সি অ্যারে

সি অ্যারে পরিচিতি সি মালটি-ডাইমেনশনাল অ্যারে সি অ্যারে ফাংশন

 সি স্ট্রিং

সি স্ট্রিং সি স্ট্রিং ফাংশন

 সি পয়েন্টার

সি পয়েন্টার পরিচিত সি পয়েন্টার অ্যারে সি পয়েন্টার ফাংশন সি মেমোরি ম্যানেজমেন্ট

 সি ফাইল এবং স্ট্রাকচার

স্ট্রাকচার পরিচিত স্ট্রাকচার ও পয়েন্টার সি স্ট্রাকচার ও ফাংশন সি ইউনিয়ন ফাইল হ্যান্ডেলিং

 সি অতিরিক্ত টিউটোরিয়াল

সি লাইব্রেরী সি প্রিপ্রোসেসর এবং ম্যাক্রো সি ইনুমিরেশন সি এরর নিয়ন্ত্রণ সি টাইপ কাস্টিং সি বিট ফিল্ড সি ভ্যারিয়েবল আর্গুমেন্ট সি কমান্ড লাইন আর্গুমেন্ট

 

সি প্রোগ্রামিং মাল্টি-ডাইমেনশনাল অ্যারে


এই অধ্যায়ে আপনি সি প্রোগ্রামিং এ মাল্টি-ডাইমেনশনাল অ্যারে(multi-dimensional array) নিয়ে কাজ করা শিখবেন।


সি- মাল্টিডাইমেনশনাল Array

মাল্টিডাইমেনশনাল(multi-dimensional) Array বলতে ঐধরনের Array কে বুঝায় যার মধ্যে এক বা তার অধিক Array থাকে।

Array এর ডাইমেনশন বলতে কোন একটি এলিমেন্টকে এক্সেস(access) করার জন্য যত সংখ্যক ইনডেক্সের প্রয়োজন হয় তাকে বুঝায়।

  • দুই ডাইমেনশনের Array থেকে একটি এলিমেন্টকে এক্সেস করার জন্য আপনার দুটি ইনডেক্স নম্বর লাগবে।
  • তিন ডাইমেনশনের Array থেকে একটি এলিমেন্টকে এক্সেস করার জন্য আপনার তিনটি ইনডেক্স নম্বর লাগবে।

সি প্রোগ্রামিং এ আপনি array এর মধ্যে array তৈরি করতে পারেন যা mult-idimensional array নামে পরিচিত। উদাহরণস্বরূপঃ

int x[3][4];

এখানে x হলো দ্বি-মাত্রিক(two-dimensional) অ্যারে। এই array ১২টি এলিমেন্ট ধারণ করতে পারে। আপনি array কে table হিসাবেও কল্পনা করতে পারেন, যেখানে ৩টি সারি(row) এবং প্রত্যেক সারিতে ৪টি করে কলাম(column) আছে।

সি প্রোগ্রামিং এ দ্বিমাত্রিক অ্যারে


একইভাবে আপনি three-dimensional (3d) array ও ডিক্লেয়ার করতে পারেন। উদাহরণস্বরূপঃ

int y[2][4][3];

এখানে y অ্যারে ২৪ টি এলিমেন্ট ধারণ করতে পারে।

উপরের উদাহরণটিকে আপনি এভাবে চিন্তা করতে পারেন যে, প্রত্যেক 2টি এলিমেন্টের জন্য ৪টি এলিমেন্ট রয়েছে যা ৮টি এলিমেন্ট তৈরি করে এবং প্রত্যেক ৮টি এলিমেন্টর জন্য ৩টি এলিমেন্ট রয়েছে। সুতরাং সম্পূর্ণ এলিমেন্টের সংখ্যা হয় ২৪টি।


multidimensional arrayকে কিভাবে initialize করা হয়?

একের অধিক পদ্ধতিতে mult-idimensional array-কে initialize করা হয় যায়।


two-dimensional array কে Initialize করা

//two-dimensional array কে Initialize করার বিভিন্ন পদ্ধতি

int c[2][3] = {{1, 3, 0}, {-1, 5, 9}};
         
int c[][3] = {{1, 3, 0}, {-1, 5, 9}};
                
int c[2][3] = {1, 3, 0, -1, 5, 9};

multi-dimensional array কে Initialize করা

multidimensional array কে two-dimensional array এর মত একই পদ্ধতিতে initialize করতে পারেন। উদাহরণস্বরূপঃ

int test[2][3][4] = { 
                     { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} },
                     { {13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9} }
                 }; 

উদাহরনঃ ভ্যালু স্টোর(store) এবং প্রদর্শনীর(display) জন্য Two-dimensional Array বিশিষ্ট প্রোগ্রাম

//দুটি শহরের এক সপ্তাহের তাপমাত্রা  স্টোর এবং প্রদর্শনীর জন্য Two-dimensional Array  বিশিষ্ট সি প্রোগ্রাম। 
#include <stdio.h>

const int city = 2;
const int week = 7;

int main()
{
    int temperature[city][week];
    for (int i = 0; i < city; ++i) {
        for(int j = 0; j < week; ++j) {
            printf("City %d, Day %d: ", i+1, j+1);
            scanf("%d", &temperature[i][j]);
        }
    }

    printf("\nDisplaying values: \n\n");
    for (int i = 0; i < city; ++i) {
        for(int j = 0; j < week; ++j)
        {
            printf("City %d, Day %d = %d\n", i+1, j+1, temperature[i][j]);
        }
    }
    return 0;
}

আউটপুট

City 1, Day 1: 33
City 1, Day 2: 34
City 1, Day 3: 35
City 1, Day 4: 33
City 1, Day 5: 32
City 1, Day 6: 31
City 1, Day 7: 30
City 2, Day 1: 23
City 2, Day 2: 22
City 2, Day 3: 21
City 2, Day 4: 24
City 2, Day 5: 22
City 2, Day 6: 25
City 2, Day 7: 26

Displaying values: 

City 1, Day 1 = 33
City 1, Day 2 = 34
City 1, Day 3 = 35
City 1, Day 4 = 33
City 1, Day 5 = 32
City 1, Day 6 = 31
City 1, Day 7 = 30
City 2, Day 1 = 23
City 2, Day 2 = 22
City 2, Day 3 = 21
City 2, Day 4 = 24
City 2, Day 5 = 22
City 2, Day 6 = 25
City 2, Day 7 = 26

উদাহরনঃ Two dimensional array ব্যবহার করে দুটি ম্যাট্রিক্সের যোগ

সি প্রোগ্রামে মাল্টি-ডাইমেনশনাল array ব্যবহার করে 2*2 অর্ডারের দুটি ম্যাট্রিক্সকে যোগ করার প্রোগ্রাম।

#include <stdio.h>
int main()
{
   float a[2][2], b[2][2], c[2][2];
   int i, j;

   //nested for loop ব্যবহার করে ইনপুট গ্রহণ
   printf("Enter elements of 1st matrix\n");
   for(i=0; i<2; ++i)
    for(j=0; j<2; ++j)
    {
       printf("Enter a%d%d: ", i+1, j+1);
       scanf("%f", &a[i][j]);
    }

   //nested for loop ব্যবহার করে ইনপুট গ্রহণ
   printf("Enter elements of 2nd matrix\n");
   for(i=0; i<2; ++i)
    for(j=0; j<2; ++j)
    {
       printf("Enter b%d%d: ", i+1, j+1);
       scanf("%f", &b[i][j]);
    }

   //  array দুটিতে সঙ্গতিপূর্ণ এলিমেন্ট যোগ করা 
   for(i=0; i<2; ++i)
    for(j=0; j<2; ++j)
    {
       c[i][j] = a[i][j] + b[i][j]; 
    }

   // যোগফল প্রদর্শন করানো
   printf("\nSum Of Matrix:");

   for(i=0; i<2; ++i)
    for(j=0; j<2; ++j)
    {
       printf("%.1f\t", c[i][j]);  
       
       if(j==1)            
          printf("\n");
    }
return 0;
}

আউটপুট

Enter elements of 1st matrix
Enter a11: 2;
Enter a12: 0.5;
Enter a21: -1.1;
Enter a22: 2;
Enter elements of 2nd matrix
Enter b11: 0.2;
Enter b12: 0;
Enter b21: 0.23;
Enter b22: 23;

Sum Of Matrix:
2.2     0.5
-0.9    25.0

উদাহরণঃ three-dimensional Array

ইউজার কর্তৃক ইনপুট দেওয়া ভ্যালু স্টোর(store) এবং প্রদর্শনীর(display) জন্য three-dimensional Array বিশিষ্ট সি প্রোগ্রাম

#include <stdio.h>
int main()
{
    // এই array ১২টি এলিমেন্ট স্টোর করতে পারে। 

    int i, j, k, test[2][3][2];

    printf("Enter 12 values: \n");

    for(i = 0; i < 2; ++i) {
        for (j = 0; j < 3; ++j) {
            for(k = 0; k < 2; ++k ) {
                scanf("%d", &test[i][j][k]);
            }
        }
    }

    // সঠিক ইনক্সেসহ ভ্যালু প্রদর্শন করানো

    printf("\nDisplaying values:\n");

    for(i = 0; i < 2; ++i) {
        for (j = 0; j < 3; ++j) {
            for(k = 0; k < 2; ++k ) {
                printf("test[%d][%d][%d] = %d\n", i, j, k, test[i][j][k]);
            }
        }
    }

    return 0;
}

আউটপুট

Enter 12 values: 
1
2
3
4
5
6
7
8
9
10
11
12

Displaying Values:
test[0][0][0] = 1
test[0][0][1] = 2
test[0][1][0] = 3
test[0][1][1] = 4
test[0][2][0] = 5
test[0][2][1] = 6
test[1][0][0] = 7
test[1][0][1] = 8
test[1][1][0] = 9
test[1][1][1] = 10
test[1][2][0] = 11
test[1][2][1] = 12