فصل ششم آرایه ها در ++C

<!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->

 

فصل ششم

++C در« آرایه ها »

6 مقدمه ‐1

یک متغیر بخشی از حافظه است که یک نام دارد و می توان مقداری را در آن

ذخیره کرد. با استفاده از متغیرها می توان به پردازش داده ها پرداخت. در برنامه های

کوچک ممکن است بتوانیم کل پردازش را با استفاده از متغیرها عملی کنیم ولی در

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

صورت می گیرد به « پردازش دست های » عاقلانه ای نیست زیرا در بسیاری از این برنامه ها

این معنی که مجموعه ای از داد ههای مرتبط با هم در حافظه قرار داده می شود و پس از

پردازش، کل این مجموعه از حافظه خارج می شود و مجموعۀ بعدی در حافظه

بارگذاری می شود. اگر قرار باشد برای این کار از متغیرهای معمولی استفاده شود بیشتر

وقت برنامه نویس صرف پر و خالی کردن انبوهی از متغیرها می شود. به همین دلیل در

تدارک دیده شده اند. آرایه را می توان متغیری « آرایه ها 1 » بیشتر زبا نهای برنامه نویسی

تصور کرد که یک نام دارد ولی چندین مقدار را به طور هم زمان نگهداری می نماید.

1 – Arrays

فصل ششم / آرایه ها 175

چنانچه بعد خواهیم دید، ویرایش محتویات آرایه ها بسیار آسان است و پردازش داد هها

با استفاده از آرایه ها سریع تر و راحت تر صورت می گیرد.

یک آرایه، یک زنجیره از متغیرهایی است که همه از یک نوع هستند. به این

می گویند. هر عضو آرایه با یک شماره مشخص می شود که به « اعضای آرایه » متغیرها

می گویند (نام زیرنویس از نمایش ریاضی آرایه ها « زیرنویس » یا « ایندکس 2 » این شماره

اقتباس شده). ایندکس محل قرار گرفتن هر عضو آرایه را نشان می دهد. مثلا اگر نام

نام عنصری است که در موقعیت صفر آرایه قرار گرفته و a[ باشد، آنگاه [ 0 a آرایه ای

ام آرایه در محل n نام عنصری است که در موقیت 1 آرایه قرار دارد. پس عنصر a[1]

قرار دارد. می بینید که شماره گذاری عناصر آرایه از صفر شروع می شود و a[n-1]

ادامه می یابد. علت این که شماره گذاری n- عنصری این شماره تا 1 n برای یک آرایۀ

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

به عنصری اشاره دارد که سه خانه از a[ عنصر از عنصر اول را نشان می دهد. مثلا [ 3

فاصله دارد. این فاصله یابی بعدها به کار می آید. a[ عنصر اول یعنی [ 0

عناصر یک آرایه در خانه های پشت سر هم در حافظه ذخیره می شوند. به این

ترتیب آرایه را می توان بخشی از حافظه تصور کرد که این بخش خود به قسم تهای

مساوی تقسیم شده و هر قسمت به یک عنصر تعلق دارد. شکل

a[ که پنج عنصر دارد را نشان می دهد. عنصر [ 0 a مقابل آرایۀ

a[ حاوی 19.0 و عنصر [ 4 a[ حاوی مقدار 17.5 و عنصر [ 1

حاوی مقدار 18.0 است. این مقدارها می توانند نمرات یک

دانشجو در یک نیم سال تحصیلی را نشان دهند.

6 پردازش آرایه ها ‐2

آرایه ها را می توان مثل متغیرهای معمولی تعریف و استفاده کرد. با این تفاوت که

آرایه یک متغیر مرکب است و برای دستیابی به هر یک از خان ههای آن باید از ایندکس

استفاده نمود.

0 17.50

1 19.00

2 16.75

3 15.00

4 18.00

1 – Index

176 برنامه سازی پیشرفته

6 دستیابی مستقیم به عناصر آرایه ‐ * مثال 1

برنامۀ سادۀ زیر یک آرایۀ سه عنصری را تعریف می کند و سپس مقادیری را در

آن قرار داده و سرانجام این مقادیر را چاپ می کند:

int main()

{ int a[3];

a[2] = 55;

a[0] = 11;

a[1] = 33;

cout << "a[0] = " << a[0] << endl;

cout << "a[1] = " << a[1] << andl;

cout << "a[2] = " << a[2] << endl;

}

a[0] = 11

a[1] = 33

a[2] = 55

تعریف می کند. سه خط بعدی، مقادیری int خط دوم، یک آرایۀ سه عنصری از نوع

را به این سه عنصر تخصیص می دهد و سه خط آخر هم مقدار هر عنصر آرایه را چاپ

می کند.

6 چاپ ترتیبی عناصر یک آرایه ‐ * مثال 2

برنامۀ زیر پنج عدد را می خواند و سپس آ نها را به ترتیب معکوس چاپ می کند:

int main()

{ const int SIZE=5; // defines the size N for 5 elements

double a[SIZE]; // declares the array's elements as type double

cout << "Enter " << SIZE << " numbers:\t";

for (int i=0; i<SIZE; i++)

cin >> a[i];

cout << "In reverse order: ";

for (int i=SIZE-1; i>=0; i--)

cout << "\t" << a[i];

}

Enter 5 numbers: 11.11 33.33 55.55 77.77 99.99

In reverse order: 99.99 77.77 55.55 33.33 11.11

 

 

فصل ششم / آرایه ها 177

تعریف می کند و مقدار 5 را int از نوع SIZE دومین خط برنامه، ثابتی به نام

float و با پنج عنصر از نوع a درون آن قرار می دهد. خط سوم یک آرایه به نام

پنج عنصر را به داخل آرایه می خواند و for تعریف می نماید. سپس اولین حلقۀ

آن پنج عنصر را به ترتیب معکوس چاپ می کند. for دومین حلقۀ

مثال فوق نشان داد که یک آرایه چطور اعلان می شود. نحو کلی برای اعلان آرایه

به شکل زیر است:

type array_name[array_size];

نام آرایه است و array_name . نوع عناصر آرایه را مشخص می کند type عبارت

تعداد عناصر آرایه را نشان می دهد. این مقدار باید یک عدد ثابت array_size

صحیح باشد و حتما باید داخل کروشه [] قرار بگیرد.

با سه عنصر اعلان شده که این a 6 آرایه ای به نام ‐ در خط دوم از مثال 1

با تعداد a 6 آرایه ای به نام ‐ هستند. در خط سوم از مثال 2 int عناصر از نوع

double مشخص می نماید اعلان شده که عناصر آن از نوع SIZE عناصری که ثابت

هستند. معمولا بهتر است تعداد عناصر آرایه را با استفاده از ثابت ها مشخص کنیم تا

آرایه را پیمایش نماییم. for بعد بتوانیم با استفاده از همان ثابت در حلقۀ

6 مقداردهی آرایه ها ‐3

می توانیم یک آرایه را با استفاده از فهرست مقداردهی، اعلان و C++ در

مقدارگذاری کنیم:

float a[] = {22.2,44.4.66.6};

به این ترتیب مقادیر داخل فهرست به همان ترتیبی که چیده شده اند

درون عناصر آرایه قرار می گیرند. اندازه آرایه نیز برابر با تعداد عناصر

موجود در فهرست خواهد بود. پس همین خط مختصر، آرایه ای از

و با تعداد سه عنصر اعلان کرده و هر سه a و با نام float نوع

عنصر را با مقدارهای درون فهرست، مقداردهی می کند.

6 مقداردهی آرایه با استفاده از فهرست مقداردهی ‐ * مثال 3

a

0 22.2

1 44.4

2 66.6

 

178 برنامه سازی پیشرفته

را مقداردهی کرده و سپس مقدار هر عنصر را چاپ می کند: a برنامۀ زیر، آرایۀ

int main()

{ float a[] = { 22.2, 44.4, 66.6 };

int size = sizeof(a)/sizeof(float);

for (int i=0; i<size; i++)

cout << "\ta[" << i << "] = " << a[i] << endl;

}

a[0] = 22.2

a[1] = 44.4

a[2] = 66.6

/ 0 نظر / 226 بازدید