آرایه چندبعدی ++C — راهنمای جامع
در این مقاله با مفهوم آرایه چندبعدی ++C و به طور خاص با روش اعلان آرایههای چندبعدی، دسترسی به آنها و استفاده مؤثر از این آرایهها در برنامههای مختلف آشنا خواهیم شد. برای مطالعه بخش قبلی این سری مقالات آموزش زبان ++C روی لینک زیر کلیک کنید:
در زبان برنامهنویسی ++C میتوان یک آرایه از آرایهها ایجاد کرد که به نام آرایه چندبعدی شناخته میشود. به مثال زیر توجه کنید:
int x[3][4];
در این آرایه، x یک آرایه دوبعدی است. این آرایه میتواند 12 عنصر در خود جای دهد. این آرایه را میتوان به عنوان جدولی با 3 ردیف در نظر گرفت که هر ردیف 4 ستون مانند تصویر زیر دارد.
آرایه سهبعدی نیز به روشی مشابه کار میکند. به مثال زیر توجه کنید:
float x[2][4][3];
این آرایه x میتوانند حداکثر 24 عنصر را نگهداری کند. این مثال را میتوان بدین صورت نگریست که هر کدام از 2 عنصر میتوانند حداکثر 4 عنصر را نگهداری کنند که 8 عنصر ایجاد میکند و هر کدام از این هشت عنصر میتواند 3 عنصر را نگهداری کند. از این رو مجموع تعداد عناصری که این آرایه میتواند نگهداری کند 24 عدد است.
مقداردهی آرایه چندبعدی
یک ارائه چندبعدی را میتوان به چند روش مقداردهی کرد.
مقداردهی دو آرایه چندبعدی
int test[2][3] = {2, 4, -5, 9, 0, 9};
بهترین روش برای مقداردهی این آرایه مانند روش فوق است.
int test[2][3] = { {2, 4, 5}, {9, 0 0}};
مقداردهی سه آرایه چندبعدی
int test[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};
روش بهتر برای مقداردهی این آرایه با همان عنصر فوق است.
int test[2][3][4] = { { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} }, { {13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9} } };
مثال ۱: آرایه دوبعدی
برنامه ++C برای نمایش همه عناصر یک آرایه دوبعدی مقداردهی شده:
1#include <iostream>
2using namespace std;
3int main()
4{
5 int test[3][2] =
6 {
7 {2, -5},
8 {4, 0},
9 {9, 1}
10 };
11 // Accessing two dimensional array using
12 // nested for loops
13 for(int i = 0; i < 3; ++i)
14 {
15 for(int j = 0; j < 2; ++j)
16 {
17 cout<< "test[" << i << "][" << j << "] = " << test[i][j] << endl;
18 }
19 }
20 return 0;
21}
خروجی
test[0][0] = 2 test[0][1] = -5 test[1][0] = 4 test[1][1] = 0 test[2][0] = 9 test[2][1] = 1
مثال 2: آرایه دوبعدی
برنامه ++C برای ذخیرهسازی دمای دو محل مختلف در طی یک هفته و نمایش آن
1#include <iostream>
2using namespace std;
3const int CITY = 2;
4const int WEEK = 7;
5int main()
6{
7 int temperature[CITY][WEEK];
8 cout << "Enter all temperature for a week of first city and then second city. \n";
9 // Inserting the values into the temperature array
10 for (int i = 0; i < CITY; ++i)
11 {
12 for(int j = 0; j < WEEK; ++j)
13 {
14 cout << "City " << i + 1 << ", Day " << j + 1 << " : ";
15 cin >> temperature[i][j];
16 }
17 }
18 cout << "\n\nDisplaying Values:\n";
19 // Accessing the values from the temperature array
20 for (int i = 0; i < CITY; ++i)
21 {
22 for(int j = 0; j < WEEK; ++j)
23 {
24 cout << "City " << i + 1 << ", Day " << j + 1 << " = " << temperature[i][j] << endl;
25 }
26 }
27 return 0;
28}
خروجی
Enter all temperature for a week of first city and then second city. City 1, Day 1: 32 City 1, Day 2: 33 City 1, Day 3: 32 City 1, Day 4: 34 City 1, Day 5: 35 City 1, Day 6: 36 City 1, Day 7: 38 City 2, Day 1: 23 City 2, Day 2: 24 City 2, Day 3: 26 City 2, Day 4: 22 City 2, Day 5: 29 City 2, Day 6: 27 City 2, Day 7: 23 Displaying Values: City 1, Day 1 = 32 City 1, Day 2 = 33 City 1, Day 3 = 32 City 1, Day 4 = 34 City 1, Day 5 = 35 City 1, Day 6 = 36 City 1, Day 7 = 38 City 2, Day 1 = 23 City 2, Day 2 = 24 City 2, Day 3 = 26 City 2, Day 4 = 22 City 2, Day 5 = 29 City 2, Day 6 = 27 City 2, Day 7 = 23
مثال 3: آرایه سهبعدی
برنامه ++C برای ذخیرهسازی مقدار وارد شده از سوی کاربر در آرایه سهبعدی و نمایش آن:
1#include <iostream>
2using namespace std;
3int main()
4{
5 // This array can store upto 12 elements (2x3x2)
6 int test[2][3][2];
7 cout << "Enter 12 values: \n";
8
9 // Inserting the values into the test array
10 // using 3 nested for loops.
11 for(int i = 0; i < 2; ++i)
12 {
13 for (int j = 0; j < 3; ++j)
14 {
15 for(int k = 0; k < 2; ++k )
16 {
17 cin >> test[i][j][k];
18 }
19 }
20 }
21 cout<<"\nDisplaying Value stored:"<<endl;
22 // Displaying the values with proper index.
23 for(int i = 0; i < 2; ++i)
24 {
25 for (int j = 0; j < 3; ++j)
26 {
27 for(int k = 0; k < 2; ++k)
28 {
29 cout << "test[" << i << "][" << j << "][" << k << "] = " << test[i][j][k] << endl;
30 }
31 }
32 }
33 return 0;
34}
خروجی
Enter 12 values: 1 2 3 4 5 6 7 8 9 10 11 12 Displaying Value stored: test[0][0][0] = 1 test[0][0][1] = 2 test[0][1][0] = 3 test[0][1][1] = 4 test[0][2][0] = 5 test[0][2][1] = 6 test[1][0][0] = 7 test[1][0][1] = 8 test[1][1][0] = 9 test[1][1][1] = 10 test[1][2][0] = 11 test[1][2][1] = 12
در زمان افزایش ابعاد، پیچیدگی نیز به صورت وحشتناکی افزایش مییابد، اما مفهوم آن کاملاً مشابه است.
برای مطالعه قسمت بعدی این مجموعه مطلب آموزشی میتوانید روی لینک زیر کلیک کنید:
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- آموزش پیشرفته C++ (شی گرایی در سی پلاس پلاس)
- مجموعه آموزشهای برنامهنویسی
- آموزش ++C — راهنمای شروع یادگیری
- حلقه for در زبان برنامهنویسی ++C — به زبان ساده
==