تبلیغات
برنامه نویسی C++ - آموزش و سورس برنامه ی سی پلاس پلاس - مطالب آرایه ها
برترین پیشنهاد

برنامه نویسی C++ - آموزش و سورس برنامه ی سی پلاس پلاس

بزرگترین پایگاه آموزش سی پلاس پلاس و سورس تمام برنامه های آن

آرایه های دو بعدی به عنوان آرگومان تابع:

برای ارسال آرایه های دو بعدی به عنوان آرگومان یک تابع باید نام تابع به عنوان آرگومان ذکر شود و برای تعریف پارامتر معادل آن باید مانند آرایه یک بعدی عمل کرد.
در حالتی که در آرایه یک بعدی پارامتر به صورت آرایه بدون طول ذکر می شد، در آرایه دو بعدی طول سطر ذکر نمی شود ولی طول ستون حتما باید ذکر شود و در این حالت طول سطر به عنوان آرگومان دیگری به تابع ارسال میشود.

شکل کلی ارسال آرایه دو بعدی به یک تابع:

void f1(int a[5][10]);
void f2(int a[][10], int);
int main()
{
    int a[5][10];
    ...
    f1(a);
    f2(a,5);
    ...
    return 0;
}

void f1(int a[5][10])
{
    ...
}
void f2(int x[][10], int row)
{
    ...
}

//end


مقدار دهی اوّلیه به آرایه ی دو بعدی:

آرایه ی دو بعدی را میتوان هنگام تعریف، مقداردهی اولیه نمود. در این حالت می توانیم برای هر سطر از {} استفاده کنیم که در صورت عدم استفاده، کامپایلر اقدام به چیدمان سطری عناصر آرایه می کند.

مثال:

int x[2][3] = {{1,2,3,}, {4,5,6}};
int x[2][3] = {{1,2}, {3}};
int x[2][3] = {1,2,3};
int x[2][3] = {{1,2,3,}, 7};

//end

نکته: در صورتی که تعداد {} های استفاده شده داخل {} اصلی بیشتر از تعداد سطر ها باشد یا تعداد داده های داخل هر سطر ({}) بیشتر از تعداد ستون های آرایه و یا هنگام مقداردهی در حالتی که برای سطر ها {} قرار ندهیم، تعداد عناصر بیشتر از تعداد عناصر آرایه باشد، خطا داریم.

خالی گذاشتن بعد ها در تعریف آرایه دو بعدی:

فقط و فقط در آرایه ی دو بعدی زمانی که مقداردهی اولیه انجام میشود، میتوانیم بعد اول را خالی بگذاریم. اما در هر شرایطی باید بعد دوم مقداردهی شود. که در این صورت باید حتما عناصر آرایه مقداردهی اولیه شوند.

مثال:

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

//end


برای اینکه با آرایه های دارای بیش از دو بعد هم آشنا بشید، یه مثال از آرایه های سه بعدی میزنم:

- برنامه ای بنویسید که با استفاده از یک آرایه 3*2*2، 12 عدد از ورودی گرفته و آنها را با فرمت مناسبی چاپ کند.


ادامه مطلب(کد برنامه)

اینم یک مثال از آرایه دو بعدی:

- برنامه ای بنویسید که با استفاده از یک آرایه با 3 سطر و 2 ستون، 12 عدد از ورودی گرفته و آنها را با فرمت مناسبی نمایش دهد.


ادامه مطلب(کد برنامه)

یه مثال ساده از آرایه یک بعدی:

- برنامه ای بنویسید که با استفاده از آرایه های یک بعدی، 10 عدد از ورودی خوانده و با فرمت مناسب در خروجی چاپ کند.


ادامه مطلب(کد برنامه)

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

در زبان C++ این امکان وجود دارد که آرایه های چند بعدی تولید نماییم. به روش زیر:

;...[تعداد عناصر بعد سوم] [تعداد عناصر بعد دوم] [تعداد عناصر بعد اول]     نام آرایه     نوع آرایه


بیشترین کاربرد آرایه ها در برنامه نویسی به آرایه های دو بعدی مربوط است.

آرایه های دو بعدی:

آرایه های دو بعدی یا ماتریس به شکل زیر تعریف میشوند:

;...[تعداد عناصر بعد دوم] [تعداد عناصر بعد اول]     نام آرایه     نوع آرایه


چون تعریف آرایه ی دو بعدی همان تعریف یک ماتریس در زبان C++ است، لذا تعداد عناصر بعد اول بیانگر تعداد سطر های ماتریس و تعداد عناصر بعد دوم بیان کننده ی تعداد ستون های ماتریس است. یعنی اندیس اول آرایه مشخص کننده شماره سطر و اندیس دوم مشخص کننده ی شماره ی ستون است.

مثال:
int a[2][3];

//end

نکته: در زبان C++ ذخیره شدن آرایه در حافظه بصورت سطری است. یعنی ابتدا عناصر سطر اول و سپس عناصر سطر دوم و ... در حافظه ذخیره می شوند.


آرایه یک بعدی به عنوان آرگومان تابع:

در زبان c++ همانگونه که میتوانیم انواع متغیر ها را به عنوان آرگومان
به یک تابع ارسال کنیم، آرایه ها نیز میتوانند به عنوان آرگومان به توابع ارسال شوند. برای ارسال آرایه به تابع، باید نام آرایه به عنوان آرگومان ذکر شود. اگر آرایه به عنوان آرگومان تابع باشد، پارامتر معادل آن میتواند بصورت زیر تعریف شود:
1. آرایه با طول مشخص
2. آرایه با طول نامشخص که در این صورت بهتر است طول آرایه به آرگومان دیگری منتقل شود.
3. اشاره گر که میتوان اشاره گری به یک آرایه تعریف نمود.(در جلسات آینده با اشاره گر ها کاملا آشنا خواهید شد.)

شکل کلی ارسال آرایه به توابع:

void f1(int x[]);
void f2(int x[], int len);

void main()
{
    int x[10];
    f1(x);
    f2(x,10);
}
void f1(int x[10])
{
    ...
}
void f2(int x[], int len)
{
    ...
}

//end


مقدار دهی اولیه به آرایه تک بعدی:

در هنگام تعریف میتوان خانه های یک آرایه ی یک بعدی را مقداردهی اولیه نمود، در این حالت حداقل یک مقدار و حداکثر به تعداد عناصر آرایه میتوان مقدار دهی را انجام داد.
مقدار دهی به آرایه هنگام تعریف آن باید از خانه ی اول، پشت سر هم و به صورت پیوسته انجام شود.

مثال:

int x[3] = {10};
int x[3] = {10, 20};
int x[3] = {10, 20, 30};

//end

خالی گذاشتن بُعد آرایه هنگام تعریف:

در زبان c++ در آرایه های یک بعدی فقط به شرطی میتوان بعد آرایه را خالی گذاشت که هنگام تعریف آن مقدار دهی نماییم، در غیر این صورت خطا خواهیم داشت.

مثال درست:

int x[] = {10, 20, 30};

//end



آرایه های یک بعدی:
تاکنون داده های ورودی و بقیه داده های مورد نیاز را در متغیر ها و ثابت ها ذخیره میکردیم. اما اگر تعداد ورودی ها زیاد باشد، نیاز داریم تعداد زیادی متغیر را تشکیل دهیم که این کار باعث میشود روند عملیات برنامه نویسی بسیار پیچیده شود. بنابراین برای جلوگیری از این مشکلات میتوانیم از امکان تعریف آرایه ها در زبان ++C بهره مند شویم.
آرایه ها خانه های پشت سر هم در حافظه هستند که همگی از یک نوع و با یک نام و با شماره های خانه متفاوت(اندیس آرایه) هستند.

روش تعریف آرایه یک بعدی:

;[طول آرایه]نام آرایه     نوع آرایه

روش تعریف یک آرایه یک بعدی که به آن لیست (List) هم میگویند به صورت فوق است. در این روش دقت میکنیم که نوع آرایه می تواند از انواع داده ها(Data Types) قابل استفاده در زبان ++C باشد و نام انتخابی برای آرایه چون یک شناسه است، باید از قوائد تولید شناسه در زبان ++C تبعیت کند.

نکته: محل هر عضو از آرایه توسط شماره(اندیس) که در [] می گذاریم، مشخص میشود.

نکته: اندیس شروع آرایه در زبان ++C صفر میباشد یعنی شماره گذاری خانه های آرایه از 0 شروع میشود و خانه ی اول آرایه اندیس 0 دارد.

نکته: در زبان ++C اسم آرایه آدرس خانه ی اول آرایه است.