Array


অ্যারে
অ্যারেঅ্যারে হলো একই ধরনের বা সমপ্রকৃতির চলকের সমাবেশ। অ্যারে একটি ডিরাইভড ডেটা টাইপ। একই টাইপের অনেকগুলো চলক নিয়ে কাজ করার প্রয়োজন হলে তখন চলক ঘোষনার পরিবর্তে অ্যারে ঘোষণা করা হয়। অ্যারেকে সাধারণত দুই ভাগে ভাগ করা হয়। যথা:
একমাত্রিক অ্যারে
২। দ্বিমাত্রিক অ্যারে

একমাত্রিক অ্যারে: অ্যারের অন্তর্ভুক্ত উপাদান বা ডেটাগুলো যদি একটি মাত্র কলাম একাধিক সারি অথবা একটি মাত্র সারি এবং একাধিক কলামে উপস্থাপন করা হয় তাকে একমাত্রিক অ্যারে বলা হয়। একমাত্রিক অ্যারে ঘোষণার ফরম্যাটঃ
Data_Type  Array_Name [ array_size ]; 

array_size বলতে বুঝায় অ্যারেতে কয়টি চলক থাকবে। Array_Name লেখার ক্ষেত্রে চলক ঘোষণার নিয়ম মেনে লিখতে হবে। Data_Type  বলতে বুঝায় চলক গুলোতে কি ধরণের ডেটা থাকবে। উদাহরণঃ
int id [5];

ব্যাখ্যা: যখন int id [5]; অ্যারে ঘোষণা করা হয়। তখন int টাইপের নিচের মত পাচটি চলক ঘোষণা হয়।
int id [0];
int id [1];
int id [2];
int id [3];
int id [4];

অ্যারের মান নির্ধারণ: অ্যারের মান  তিনটি উপায়ে নির্ধারন করা যায়। যথা-
অ্যারে ঘোষণার সময়
অ্যারে ঘোষণার পরে
প্রোগ্রাম নির্বাহের সময়

অ্যারে ঘোষণার সময় মান নির্ধারণ: int id [5]; এই অ্যারের মান অ্যারে ঘোষণার সময় নিমোক্ত উপায়ে নির্ধারণ করা যায়।
int id [5]={101, 102, 103, 104, 105};
মান গুলো অ্যারেতে নিমোক্ত ভাবে নির্ধারণ হবে
int id [0]=101;
int id [1]=102;
int id [2]=103;
int id [3]=104;
int id [4]=105;
যেমন:
#include<stdio.h>
main()
{
  int i, id[5]={101,102,103,104,105};
    for(i=0; i<5; i++)
  {
      printf("ID: %d\n", id[i]);
  }
  return 0;
}
অ্যারে ঘোষণার পরে মান নির্ধারণ: int id [5]; এই অ্যারের মান অ্যারে ঘোষণার পর নিমোক্ত উপায়ে নির্ধারণ করা যায়।
int  id [5];
id [0]=101;
id [1]=102;
id [2]=103;
id [3]=104;
id [4]=105;

যেমন:
#include<stdio.h>
main()
{
  int i,  id [5];
id [0]=101;
id [1]=102;
id [2]=103;
id [3]=104;
id [4]=105;
    for(i=0; i<5; i++)
  {
      printf("ID: %d\n", id[i]);
  }
  return 0;
}

প্রোগ্রাম নির্বাহের সময় মান নির্ধারণ: এ প্রক্রিয়ায় প্রোগ্রাম নির্বাহের সময় scanf() ব্যবহার করে অ্যারে ভেরিয়েবলের ডেটা টাইপ অনুযায়ী প্রতিটি অ্যারে উপাদানের জন্য আলাদাভাবে মান পাঠায় আবার লুপ স্টেটমেন্ট ব্যবহার করে অ্যারের সবগুলো চলকের মানও নির্ধারণ করা যায়।  লুপ ব্যবহার করে int id [5]; অ্যারের মান নির্ধারণ


#include<stdio.h>

main()
{
  int i, id[5];
  printf("Enter Id: ");
  for(i=0; i<5; i++)
  {
    scanf("%d",&id[i]);
  }
  for(i=0; i<5; i++)
  {
      printf("ID: %d\n", id[i]);
  }
  return 0;
}

দ্বিমাত্রিক অ্যারে: 
যে অ্যারের উপাদানগুলো একই সাথে একাধিক সারি একাধিক কলামে ডেটা উপস্থাপন করা হয় তাকে দ্বিমাত্রিক অ্যারে বলা হয়।

দ্বিমাত্রিক অ্যারে ঘোষণার ফরম্যাটঃ
Data_Type Array_Name [row_size][column_size]; 

row_size এবং column_size যথাক্রমে দ্বিমাত্রিক অ্যারের সারি এবং কলাম সংখ্যা বুঝায়। Array_Name লেখার ক্ষেত্রে চলক ঘোষণার নিয়ম মেনে লিখতে হবে। Data_Type  বলতে বুঝায় চলক গুলোতে কি ধরণের ডেটা থাকবে।
উদাহরণঃ
int a [3][4]; একটি দ্বিমাত্রিক অ্যারে।

two-dimensional array কে Initialize করার নিয়ম

int a[3][4] = {
{0, 1, 2, 3}, // values for first row, index 0
{4, 5, 6, 7}, // values for second row, index 1
{8, 9, 10, 11} // values for third row, index 2
};


#include <stdio.h>
main ()
{
int i, j, number[3][4] = {
 {0, 1, 2, 3} ,   // values for first row, index 0
 {4, 5, 6, 7} ,   // values for second row, index 1
 {8, 9, 10, 11}   // values for third row, index 2
};

// output each array element's value
for ( i = 0; i < 3; i++ )
{
    for ( j = 0; j < 4; j++ )
    {
        printf("%d\t", number[i][j] );
    }

    printf("\n");
}
   return 0;
}

অ্যারে ব্যবহারের সুবিধা:
একই নামে অনেকগুলো চলক ব্যবহার করা যায়।
অ্যারের উপাদানগুলো মেমরিতে পাশাপাশি অবস্থান করে।
প্রোগ্রাম নির্বাহ দ্রুত হয়।
অ্যারে উচ্চস্তরের ভাষার একটি অনন্য বৈশিষ্ট্য।
অ্যারে প্রোগ্রামকে সহজ, সুন্দর ছোট করে এবং জটিলতা কমায়।

অ্যারে ব্যবহারের অসুবিধা:
অ্যারেতে একই জাতীয় ডেটা অর্থাৎ একই টাইপের ডেটা রাখতে হয়। ভিন্ন ভিন্ন টাইপের ডেটা একটি অ্যারেতে রাখা যায় না।
প্রোগ্রাম নির্বাহের সময়ে ঘোষণাকৃত অ্যারের সাইজ কখনো পরিবর্র্তন করা যায় না।
প্রকৃত ডেটা অপেক্ষা অ্যারের সাইজ অনেক বেশি ঘোষণা করা হলে মেমরির অপচয় হতে পারে।


সমাধান: চট্টগ্রাম বোর্ড-২০১৯ (৭ নং প্রশ্নের ঘ এর উত্তর)
#include <stdio.h>
main ()
{
int a[10],i,n,largest;
printf("Enter Ten Numbers:");
for(i=0;i<10;i++)
{
    scanf("%d", &a[i]);
}
largest=a[0];
for(i=0;i<10;i++)
{
    if(a[i]>largest)
        largest=a[i];
}
printf("The largest number is: %d", largest);

}



সমাধান: সিরিজের যোগফল নির্ণয়ের প্রোগ্রাম

#include<stdio.h>
int main()
{
    int n, i, array[100], sum = 0;

    printf("Enter the size of array: ");
    scanf("%d", &n);

    printf("Enter %d integers: ", n);

    for(i = 0; i< n; i++)
    {
        scanf("%d", &array[i]);
        sum =sum+array[i];
    }

    printf("Sum = %d", sum);
    return 0;
}

No comments:

Post a Comment