آرایه های چند بعدی

   آرايه ها در ++C می توانند بيش از يک انديس داشته باشند . بدين صورت يک آرايه چند انديسه يا چند بعدی خواهيم داشت . کاربردی ترين آرايه چند بعدی ، آرايه دو بعدی می باشد که توسط آن می توان جدولی حاوی مقادير مختلف را شبيه سازی کرد . به دستور زير توجه کنيد :

int a[3][4];

   دستور فوق يک آرايه دو بعدی 3 در 4 را به صورت زير ايجاد می کند :

   هر عنصر آرايه به صورت a[i][j]، که در آن i شماره سطر و j شماره ستون می باشد ، قابل دسترسی است .

   برای مقدار دهی اوليه به عناصر آرايه می توانيد مانند دستور زير عمل کنيد :

int b[2][2] = {{1,2},{3,4}};

   دستور فوق آرايه b را به صورت زير مقدار دهی می کند :

1

2

3

4

   در برنامه زير چند نمونه از مقدار دهی اوليه به آرايه دو بعدی 2 در 3 آورده شده است :

#include <iostream.h>
 
void printArray( int [][ 3 ] );
 
void main()
{
  int array1[ 2 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 } };
  int array2[ 2 ][ 3 ] = { 1, 2, 3, 4, 5 };
  int array3[ 2 ][ 3 ] = { { 1, 2 }, { 4 } };
 
  cout << "Values in array1 by row are:" << endl;
  printArray( array1 );
 
  cout << "Values in array2 by row are:" << endl;
  printArray( array2 );
 
  cout << "Values in array3 by row are:" << endl;
  printArray( array3 );
 
}
 
void printArray( int a[][ 3 ] )
{
  for ( int i = 0; i < 2; i++ ) 
  {
    for ( int j = 0; j < 3; j++ )
      cout << a[ i ][ j ] << ' ';
    cout << endl;
  }
 
}

   خروجی برنامه به صورت زير می باشد :

Values in array1 by row are:
1 2 3
4 5 6
Values in array2 by row are:
1 2 3
4 5 0
Values in array3 by row are:
1 2 0
4 0 0
 

   دربرنامه فوق تابع PrintArray وظيفه چاپ عناصر آرايه را بر روی صفحه نمايش دارا می باشد . توجه داشته باشيد که ارسال آرايه به تابع به صورتint a[][3] انجام گرفت . اگر بياد داشته باشيد در آرايه های يک بعدی نيازی به ذکر طول آرايه نبود اما آرايه های بيش از يک بعد تعداد عناصر بعدهای ديگر بايد ذکر شود ، اما نيازی به ذکر طول بعد اول نمی باشد .

   مثال : در برنامه زير آرايه 2 بعدی 10 در 10 را با مقادير جدول ضرب ، مقدار دهی می کنيم و سپس آن را بر روی صفحه نمايش چاپ می کنيم .

#include <iostream.h>
void main( )
{
 
  int a[10][10],i,j;
 
  for (i=0;i<10;i++)
    for (j=0;j<10;j++)
      a[i][j]=(i+1)*(j+1);
 
 
  for (i=0;i<10;i++){
    for (j=0;j<10;j++)
      cout <<a[i][j]<<"\t";
    cout<<endl;
  }
}
 

   خروجی برنامه فوق به صورت زير می باشد :

1   2   3   4   5   6   7   8   9   10
 
2   4   6   8   10  12  14  16  18  20
 
3   6   9   12  15  18  21  24  27  30
 
4   8   12  16  20  24  28  32  36  40
 
5   10  15  20  25  30  35  40  45  50
 
6   12  18  24  30  36  42  48  54  60
 
7   14  21  28  35  42  49  56  63  70
 
8   16  24  32  40  48  56  64  72  80
 
9   18  27  36  45  54  63  72  81  90
 
10  20  30  40  50  60  70  80  90  100


 

 

 

   معرفی کامپيوتروبرنامه نويسی

   ساختارهای کنترلی

   توابع

   آرايه ها

   اشاره گر ها و رشته ها

   کلاسها

   گرانبار کردن عملگر ها

 
 
 
   
 
 
 

حق کپی رایت محفوظ می باشد