آرایه دو بعدی
برای تعریف آرایه دو بعدی به صورت زیر عمل میکنیم:
ستون][سطر]اسم آرایه نوع آرایه];
مثلا آرایه ی a از نوع عدد صحیح و دارای 10 سطر و 5 ستون می باشد. شماره سطرهای آن از 0 تا 9 و شماره ستونهای آن از 0 تا 4 می باشند.
int a[10][5];
برای استفاده از آرایه دو بعدی باید مفهوم حلقه های تو در تو را خوب درک کرده باشیم.
توجه کنید که نکاتی که در مورد پر کردن و نمایش دادن یک آرایه یک بعدی مطرح کردیم در این نوع از آرایه نیز همچنان پابرجا می مانند.
مثال 1- برنامه ی زیر یک آرایه دو بعدی را از کاراکترهایی که از ورودی میگیرد، پر خواهد کرد.
#include <conio.h> #include <iostream.h> int main() { int a[10][5]; for(int i=0;i<10;i++) { for(int j=0;j<5;j++) cin>>a[i][j]; } getch(); return 0; }
مثال 2- برنامه ی زیر همان آرایه بالا را در خروجی نمایش میدهد:
#include <conio.h> #include <iostream.h> int main() { int a[10][5]; for(int i=0;i<10;i++) { for(int j=0;j<5;j++) cout<<a[i][j]; } getch(); return 0; }
اگر بخواهیم خانه های آرایه را به صورت جدول نمایش دهیم برنامه ی بالا را به صورت زیر می نویسیم:
#include <conio.h> #include <iostream.h> int main() { int a[10][5]; for(int i=0;i<10;i++) { for(int j=0;j<5;j++) { cout<<a[i][j]<<"\t"; } cout<<endl; } getch(); return 0; }
مثال 3- برنامه ی مثال یک را به گونه ای تکمیل کنید که آرایه را پس از دریافت در یک آرایه ی دیگر کپی کند و آرایه ی دوم را نمایش دهد:
#include <conio.h> #include <iostream.h> int main() { int a[10][5],b[10][5]; for(int i=0;i<10;i++) //daryaft araye { for(int j=0;j<5;j++) { cin>>a[i][j]; } } for(int i=0;i<10;i++) //copy araye { for(int j=0;j<5;j++) { b[i][j]=a[i][j]; } } for(int i=0;i<10;i++) //chape araye { for(int j=0;j<5;j++) { cout<<b[i][j]<<"\t"; } cout<<endl; } getch(); return 0; }
مثال 4- برنامه ی مثال یک را به گونه ای تکمیل کنید که آرایه را پس از دریافت در یک آرایه ی دیگر به صورت وارونه کپی کند و آرایه ی دوم را نمایش دهد:
( انگار که جلوی آرایه یک آینه قرار داده باشیم، فقط هر سطر واروونه شده باشد)
#include <conio.h> #include <iostream.h> int main() { int a[10][5],b[10][5]; for(int i=0;i<10;i++) //daryaft araye { for(int j=0;j<5;j++) { cin>>a[i][j]; } } for(int i=0;i<10;i++) //copy varun shode araye { for(int j=0;j<5;j++) { b[i][j]=a[i][4-j]; } } for(int i=0;i<10;i++) //chape araye varun { for(int j=0;j<5;j++) { cout<<b[i][j]<<"\t"; } cout<<endl; } getch(); return 0; }
khaste nabashid mersi az in ettelaat.