خوراک پی سی کدنویس

ورود کاربران

آمار سایت

اعضا : 135
محتوا : 67
پیوندها : 6
بازدیدهای محتوا : 58448

حاضرین در سایت

 41 مهمان حاضر

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

firefox icon

Valid XHTML 1.0 Transitional Valid CSS!

ساختار آرایه ها در C++

3 امتیاز

سطح: متوسط

آرایه های یک بعدی در C++

فرض کنید بخواهیم اطلاعات دانشجویان یک کلاس را دریافت کرده و پردازشهایی روی آنها انجام دهیم. اگر بخواهیم برای هر دانشجو تعدادی متغیر مثل name، id و score تعریف کنیم که اطلاعاتی شامل نام، شماره دانشجویی و نمره درسی آنها را در برداشته باشند، تعداد زیادی متغیر خواهیم داشت که کارهای مشابهی انجام می دهند. این کار باعث می شود که حجم کد زیاد شده و خوانایی برنامه از دست برود. در چنین مواردی از آرایه ها کمک می گیریم.
نحوه ی تعریف آرایه به صورت زیر است:

Data Type Array Name [array size];

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

double scores[5];

با این کار به میزان 5 عدد اعشاری از حافظه RAM تخصیص داده می شود که هر کدام 8 بایت فضا اشغال می کنند (چرا؟):

RAM ADDRESS: 0x008C2F00 – 0x008C2F27
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27
scores[0] scores[1] scores[2] scores[3] scores[4]

برای دستیابی به عناصر آرایه، از اندیس آنها استفاده می کنیم، مثلا scores[0] اولین عنصر و scores[3] چهارمین عنصر آرایه را نشان می دهد. برای اینکه عناصر آرایه را مقدار دهی اولیه کنیم به صورت زیر عمل می کنیم:

double scores[5] = {20, 12, 14.5, 16.25, 10.75};

اگر بخواهیم تمام عناصر را به 0 مقداردهی اولیه کنیم، می توانیم از فرمت مختصر زیر استفاده کنیم:

double scores[5] = {0}; //initialize all elements with zero

هنگامی که از مقداردهی اولیه استفاده می کنیم، می توانیم اندازه آرایه را تعیین نکنیم تا خود کامپایلر بر اساس تعداد مقادیر اولیه آن را تعیین کند:

double scores[] = {20, 12, 14.5, 16.25, 10.75};

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

برای تعریف آرایه های چندبعدی کافیست به تعداد ابعاد، از براکت استفاده کنیم. برای مثال اگر بخواهیم یک ماتریس 2 در 4 معرفی کنیم به صورت زیر عمل می کنیم: (به نحوه ی مقدار دهی اولیه دقت کنید)

int matrix[2][4] = {
 {12, 13, 14, 15},
 {10, 8, 123, 95}
 };

همین طور اگر بخواهیم یک آرایه سه بعدی تعریف کنیم:


double matrixArray[2][3][2] = 
 {
 {{1.1, 2.25}, {45.5, 16  }, {1, 0}},
 {{21, 53.40}, {98.3, 85.5}, {9, 0}}
 };

در ادامه برنامه ای می نویسیم که اطلاعات 5 دانشجو شامل نام، شماره دانشجویی و نمره آنها را گرفته و به صورت یک جدول نمایش دهد:

double scores[5];
 
 //initializing array
 int IDs[5] = {0};//initialize all elements with zero
 
 //Another initialization 
 std::string names[] = {"a", "b", "c", "d", "e"}; 
 
 //take data from user
 cout << "\n\tEnter 5 student names\n";
 cout << "----------------------------------\n";
 for (int i = 0; i < 5; i++)
 cin >> names[i];
 
 cout << "\n\tEnter their IDs\n";
 cout << "----------------------------------\n";
 for (int i = 0; i < 5; i++)
 cin >> IDs[i];
 
 cout << "\n\tEnter their scores\n";
 cout << "----------------------------------\n";
 for (int i = 0; i < 5; i++)
 cin >> scores[i];
 
 
 cout << "\n\n" << setw(10) << "NAME" << "\tID\tSCORE\n";
 cout << "----------\t------\t------\n";
 
 for (int i = 0; i < 5; i++){
 cout << setw(10) << names[i] << "\t" << IDs[i] << "\t" << scores[i] << endl;
 }

خروجی برنامه را ببینید:

Exam-06 Arrays in C++

در پستهای بعدی سورس کد پروژه برای دانلود قرار خواهد گرفت.

  • samar  - khanehaye araye
    salam,chetori mitoonam yek adade 40 raghamio to khonehaye araye negah daram ba tavajo be noe long int in emkan vojod dare ke ye adade 20 raghami dashte basham hala chejori mishe 2ta khone az hafezaro edgham kard ke beshe adade 40 raghami zakhire kard?
    ba tashakor
    lotfan jaba ra be mailam befrestid .
  • ناشناس  - سوال مهم
    سلام دوستان
    یه سوال مهم!
    میدونیم که نام ارایه اشاره گر به اولین عنصر ارایه است.چرا وقتی cout
  • مدیر سایت  - کار با اعداد بزرگ
    برای کار کردن با اعداد خیلی بزرگ (ارقام زیاد) باید از رشته کمک بگیریم. به این ترتیب که مثلا یک عدد 40 رقمی را باید در یک رشته 40 کاراکتری ذخیره کنیم. و البته باید توابع مربوط به تمام عملیات جمع و ضرب و غیره را خودمان پیاده سازی کنیم. کار ساده ای است لیکن اندکی زمان بر است.
    اینکه شما گفتید دو تا int را در هم ادغام کنیم اشکال شرعی دارد!، چرا که مثلا کاربر می خواهد یک عدد 40 رقمی وارد کند چه جوری می توانید با این تکنیک دریافت کنید؟
  • مدیر سایت  - نام آرایه
    نام آرایه اشاره گر به اولین عنصر آرایه هست، لیکن سوال شما ناقص است!
  • ناشناس
    با سلام
    یک سوال
    چگونه درc++ می شود محتویات دو فایل را در فایل سومی ادغام کرد
  • ناشناس
    سلام من بخوام يه آرايه رو حذف كنم از چه دستوري بايد استفاده كنم ؟؟؟؟؟؟؟؟ :?: :s
  • مدیر سایت
    آرایه نیازی به حذف ندارد و البته قابل حذف هم نیست. هر زمان که آرایه از معرض دید خارج شد، حافظه آن تخلیه می شود.
  • یه دوست
    سلام دوستان چه طوری می تونم توی C اعداد با ارقام خیلی زیاد رو تعریف کنم
    مثلا :200 رقم یا بیشتر
    لطفا راهنمایی کنید
    این هم ایمیل من Kame.akbare@hotmail.com
اظهار نظر
مشخصات شما:
نظر:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):s:!::?::idea::arrow:
امنیت
کد آنتی اسپم نمایش داده شده در عکس را وارد کنید.