#_______________________ Array _______________________#
*** Array পড়ার আগে আমরা একটু Variable সম্পর্কে জেনে নিই ।
একটি Variable এ সাধারনত একটি সংখ্যা রাখা যায় । আমরা যখন একটি variable declare করি তখন মেমোরিতে নিচের চিত্রের ন্যায় জায়গা দখল হয় ।
মানে আগের value ( 7 ) টা delete হয়ে গেলো । আর নতুন value 5 মেমোরিতে জমা হলো ।
*** কিন্তু একটি Array তে একাধিক সংখ্যা রাখা যায় । যেমন ঃ
Int a [ 5 ] ;
( i ) একই কাজ বার বার করার জন্য যেমন Loop ব্যবহার করা হয় ঠিক তেমনি অনেক গুল সংখ্যা value রাখার জন্য Array ব্যবহার করা হয় ।
( ii ) যদি বলে 100 জন student এর mark input নাও । তাহলে কি 100 জনের জন্য 100 টা variable declare করবো ? এটা তো প্রায় অসম্ভব । এর থেকে ভালো 100 সাইজের একটা Array declare করে দিলেই তো হলো ।
# 5 টি সংখ্যার যোগফল বের করো । এবং Loop ও Array কোনটির সুবিধা কী লিখ ?
Ans : Using Loop ,

এই ভাবে বা loop এর মাধ্যমে input নিলে শুধু last এর value টা a তে যাবে । অর্থাৎ প্রথমে যখন input নিলাম তখন a = 5 হলো । এবং তা sum এ যোগ হলো । আবার loop ঘুরার পরে 10 input নিলাম । তখন a এর আগের value টা বা 5 delete হয়ে গেল এবং a= 10 হয়ে গেল । এভাবে 8 এর পরে 12 input নিলাম তখন a তে 12 store হয়ে যাচ্ছে । আর আগের চারটা valaue মেমোরিতে বা variable এ থাকছে না । কারন variable এ সর্বচ্চ একটা value রাখা যায় ।
Using Array ,
কিন্তু একই কাজ যদি Array এর মাধ্যমে করি তাহলে সবগুলো value ই Array তে থাকবে । variable এর মতো আগের গুলো delete হয়ে যাবে না । যেমনঃ
# Array :
*** Array হচ্ছে এমন এক ধরনের variable যা অনেক গুলো value ধারন করতে পারে ।
একই type এর বা একই ধরনের অনেক গুলো ডাটা বা value সারিবদ্ধ ভাবে সাজিয়ে রাখার জন্য আমারা Array ব্যবহার করি ।
Syntax :
Data Type _ Array Name [Array Size] = { Value }
int arr [ 5 ] = { 2 , 4 , 6 , 8 , 10 }
 |
pic - 1 |
 |
pic - 2 |
 |
pic - 3 |
 |
pic - 4 |
 |
pic - 5 |
*** Array index zero ( 0 ) থেকে শুরু হয় ।
n যদি Array সাইজ হয় তবে index হবে (n-1) পর্যন্ত ।
*** Array এর প্রতিটা cell এক একটা independent variable এর মতো কাজ করে । যেমন ঃ
x [ 3 ] = { x[0] , x[1] , x[2] } ; এই Array তে ৩ টা variable আছে বা এই Array তে ৩ টা সংখ্যা রাখা যাবে ।
# Array Declare :
int a [ 3 ] ;
a[0] = 10 ; or int [ 3 ] = {10 , 20 , 30 } ;
a[1] = 20 ;
a[2] = 30 ;
output
0 1 2
*** আবার Array এর সাইজ না দিলেও হবে । compiler নিজে নিজে সাইজ নিয়ে নিবে । আর
তাছাড়া আমরা সাইজ না দিলে যত মন তত element রাখতে পারবো । যেমন ঃ
x [ ] = {1 , 2 , 3 , 4 }
x [ ] = {1 , 1 , 3 , 4 , 5 , 6 , 7 , 8 }
# Print / Scanf An Array :
*** printf :
a [ 3 ] = { 44 , 45 , 54 }
printf (" %d " , a [0] ) ; output : 44 45 54 .
printf (" %d " , a [1] ) ;
printf (" %d " , a [2] ) ;
a [0] a [1] a [2]
*** Scanf :
int a [ 4 ] ;
scanf (" %d " ,& a [0] ) ; // 12
scanf (" %d " , &a [2] ) ; // 3
a [0] a [1] a [2]
একটি Array তে তো অনেক গুলো value বা element থাকে । আর প্রতিটি value – printf /scanf করার জন্য বার বার তো printf / scanf লিখা যাবে না । কারন বার বার printf / scanf লিখাটা অনেক কষ্টসাধ্য । আর আমরা তো জানি যে একই কাজ বার বার করার জন্য loop ব্যবহার করা হয় । তাই আমরা যদি বার বার একই কথা না লিখে একটা loop ব্যবহার করি তাহলে কাজটা অনেক সহজ হয়ে যাবে । যেমন ঃ
for ( i = 0 ; i < 3 ; i++ ) for ( i = 0 ; i < 3 ; i++ )
{ {
printf (" %d " , a [i] ) ; scanf (" %d " , &a [i] ) ;
} }
loop এ যখন এর মান ০ তখন a[0] cell এ ইনপুট নিবে বা a[0] cell এর মান print করবে । loop এ যখন এর মান 1 তখন a[1] cell এ ইনপুট নিবে বা a[1] cell এর মান print করবে । এই ভাবে loop এ I এর মান change হবে আর একেক index / cell এর value print হবে ।
*** পার্থক্য ঃ
Variable
|
Array
|
Int a
= 5 ;
|
Int a [3 ] = {10, 20 , 30} ;
|
Printf (“ %d “ , a) ;
|
Int a [ 3 ] = {10 , 20 , 30 } ;
for ( I = 0 ; I <=5 ; i++ )
printf ( “%d” , a[i] ) ;
|
Scanf (“%d”, &a) ;
|
Int a [ 3 ] ;
for ( I = 0 ; I <=5 ; i++ )
scanf ( “%d” , &a[i] ) ;
|
Int a ;
for ( I = 0 ; I <=5 ; i++ )
scanf ( “%d” , &a ) ;
sum = sum + a ;
|
for ( I = 0 ; I <=5 ; i++ )
scanf ( “%d” , &a[i] ) ;
for ( I = 0 ; I <=5 ; i++ )
sum = sum + a [i] ;
|
অর্থাৎ Array নিয়ে যা কাজই করি না কেনো একটা loop লাগবে । আর loop এর initialization Zero (0 ) থেকে শুরু হবে । কারন Array এর index তো Zero ( o ) থেকে শুরু ।
*** Array ব্যবহার করার একটা খারাপ দিক হলো এর কারনে memory তে জায়গা নষ্ট হয় ।
যেমনঃ
int arr [ 5 ] = { 2 , 4 , 6 } ; মানে ২ টা জায়গা নষ্ট হয়েছে ।
a[0] = 2 ;
a[1] = 4 ;
a[2] = 6 ;
a[3] = 0 ;
a[4] = 0 ;
এখানে Array declare করার সাথে সাথে memory তে 5 টি জায়গা দখল করে নিয়েছে । কিন্তু
আমরা 5 টি জায়গা তে 5 টি সংখ্যা না রেখে 3 টি রেখেছি । যার কারনে 2 টি জায়গা নষ্ট
হয়েছে ।
Created By _____ 🅰🅻🅸 🅷🅰🅸🅳🅰🆁