শুক্রবার, ৯ মে, ২০১৪

অ্যারে-২


গত পর্বে আমরা 1D অ্যারে শিখেছিলাম। আজ আমরা শিখব 2D অ্যারে।
2D অ্যারে ডিক্লেয়ার করার নিয়ম হল-

data_type array_name[row_size][column_size];

যেমনঃ

int array[5][10];

এখানে row পাঁচ টা আর column দশ টা। প্রত্যেক row তে দশ টা column. মোটে ভেরিয়েবল হল ৫*১০=৫০ টা।
প্রথম  row এর প্রথম ভেরিয়েবলের ইনডেক্স (0,0) ;দ্বিতীয় ভেরিয়েবলের ইনডেক্স (0,1)……………………….দশম ভেরিয়েবলের ইনডেক্স (0,9);
দ্বিতীয় row এর প্রথম ভেরিয়েবলের ইনডেক্স (1,0) ;দ্বিতীয় ভেরিয়েবলের ইনডেক্স (1,1)……………………….দশম ভেরিয়েবলের ইনডেক্স (1,9);
.
.
.
r তম row এর প্রথম ভেরিয়েবলের ইনডেক্স (r-1,0) ;দ্বিতীয় ভেরিয়েবলের ইনডেক্স (r-1,1)……………………….দশম ভেরিয়েবলের ইনডেক্স (r-1,9);

2D অ্যারে initialization :

সবকটা ভেরিয়েবলের মান একসাথে দিয়ে দেয়া-

int array[2][3]={10,20,30,40,50,60};

এভাবে লিখলে কম্পাইলার মানগুলোকে অ্যারের প্রথম ভেরিয়েবল থেকে দেয়া শুরু করবে। যদি কম হয়ে যায় তবে বাকিগুলোর মান 0 হয়ে যাবে।
বা

int array[2][3]={{10,20,30},{40,50,60}};

কিংবা

int array[2][3]={{10,20,30},
{40,50,60}};

কিংবা

int array[2][3]={
  {10,20,30},
  {40,50,60}
};

এভাবে একেকটা বন্ধনী একেকটা row এর মান নির্ধারণ করে। কোন row এর মান দিতে গিয়ে যদি কম হয়ে যায় ওই row এর বাকিগুলোর মান 0 হয়ে যাবে।
2D অ্যারে নিয়ে কাজ করতে গেলে আমাদের দরকার দুটো লুপ। প্রথম লুপটা নিয়ন্ত্রণ করবে row আর দ্বিতীয়টা column.
এখন তোমাকে যেটা করতে হবে, একটা প্রোগ্রাম লেখ যেটা initialize করা একটা 2D অ্যারের মানগুলো প্রিন্ট করবে। নিজে চেষ্টা করো। না পারলে কোড দেখ-

#include<stdio.h>
#define ROW 3
#define COL 4
int main()
{
    int array[ROW][COL]= {1,2,3,4,5,6,7,8,9,10},i,j;
    for(i=0; i<ROW; i++)
    {
      for(j=0; j<COL; j++)
        printf("%d ",array[i][j]);
      printf("\n");
    }
    return0;
}

আমরা যদি 2D অ্যারে কে অন্য ফাংশন এ পাঠাতে চাই ফাংশন কলিং এর মাধ্যমে তাহলে কলিং ফাংশন হবে নিচের মত-

function_name(array_name);

আর রিসিভিং ফাংশনের চেহারা হবে এরকম-

return type function_name(array_data_type array_name[row_size][column_size])

row এর সাইজ না লিখলেও চলে তবে columnএর সাইজ লিখতে হয়।
এ তো গেল 2D অ্যারের কথা। আমরা আমাদের ইচ্ছেমত আরও dimension ইউস করতে পারি।
এখন তোমাকে যেটা করতে হবে, এমন একটা প্রোগ্রাম লেখ যেটা দুটো ম্যাট্রিক্স ইনপুট নেবে এবং দুটোকে গুন করে একটি 2D অ্যারে তে সংরক্ষণ করে রাখবে।
ওপরের বকবকানি গুলো বুঝে থাকলে ম্যাট্রিক্স গুন করা তোমার কাছে দুধ ভাতের মত।
তোমরা প্র্যাকটিস করো। আমি উঠি। অন্যদিন কথা হবে।
হ্যাপি কোডিং !!! :)










কোন মন্তব্য নেই: