Header Ads

Header ADS

Arrray :

 

                           #_______________________  Array  _______________________#

 ***   Array  পড়ার আগে আমরা একটু  Variable সম্পর্কে জেনে নিই  । 
একটি Variable এ সাধারনত একটি সংখ্যা রাখা যায় । আমরা যখন একটি  variable declare  করি তখন মেমোরিতে নিচের চিত্রের ন্যায় জায়গা দখল হয় । 



মানে আগের  value ( 7 )  টা delete  হয়ে গেলো । আর নতুন  value  5   মেমোরিতে জমা হলো । 

***  কিন্তু একটি Array তে একাধিক সংখ্যা রাখা যায় । যেমন ঃ 

   Int  a [ 5 ] ; 
                            

2

4

6

8

10

   

 ( 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  টা  তে যাবে । অর্থাৎ প্রথমে যখন input নিলাম তখন a = 5 হলো । এবং তা sum এ যোগ হলো । আবার loop ঘুরার পরে 10 input নিলাম । তখন  এর আগের 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

 10                 

 20

 30




***   আবার 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]   

 44

45 

 54



*** Scanf  :
        int  a [ 4 ]  ; 
       scanf (" %d " ,& a [0] ) ;  //  12
       scanf (" %d " , &a [2] ) ;   //  3

         a [0]                       a [1]                          a [2]   

 12    

 0

 3


একটি 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 _____  🅰🅻🅸  🅷🅰🅸🅳🅰🆁




Powered by Blogger.