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

ورود کاربران

آمار سایت

اعضا : 431
محتوا : 74
پیوندها : 6
بازدیدهای محتوا : 245425

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

 71 مهمان حاضر

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

firefox icon

Valid XHTML 1.0 Transitional Valid CSS!

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

13 امتیاز

سطح: متوسط

آرایه های یک بعدی در 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
    avatar
    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 .
  • ناشناس  - سوال مهم
    avatar
    سلام دوستان
    یه سوال مهم!
    میدونیم که نام ارایه اشاره گر به اولین عنصر ارایه است.چرا وقتی cout
  • مدیر سایت  - کار با اعداد بزرگ
    avatar
    برای کار کردن با اعداد خیلی بزرگ (ارقام زیاد) باید از رشته کمک بگیریم. به این ترتیب که مثلا یک عدد 40 رقمی را باید در یک رشته 40 کاراکتری ذخیره کنیم. و البته باید توابع مربوط به تمام عملیات جمع و ضرب و غیره را خودمان پیاده سازی کنیم. کار ساده ای است لیکن اندکی زمان بر است.
    اینکه شما گفتید دو تا int را در هم ادغام کنیم اشکال شرعی دارد!، چرا که مثلا کاربر می خواهد یک عدد 40 رقمی وارد کند چه جوری می توانید با این تکنیک دریافت کنید؟
  • مدیر سایت  - نام آرایه
    avatar
    نام آرایه اشاره گر به اولین عنصر آرایه هست، لیکن سوال شما ناقص است!
  • ناشناس
    avatar
    با سلام
    یک سوال
    چگونه درc++ می شود محتویات دو فایل را در فایل سومی ادغام کرد
  • donya  - سوال آرایه
    avatar
    سلام.
    میشه روش قرار دادن کلمات یه جمله رو تو آرایه بگید و بعد مرتب کردن کلمات بر حسب حروف الفبا.اگه شد دفعات تکرار هر کلمه رو هم بگید .
    واقعا ممنون میشم راهنمایم کنید.
  • ناشناس
    avatar
    سلام من بخوام يه آرايه رو حذف كنم از چه دستوري بايد استفاده كنم ؟؟؟؟؟؟؟؟ :?: :s
  • مدیر سایت
    avatar
    آرایه نیازی به حذف ندارد و البته قابل حذف هم نیست. هر زمان که آرایه از معرض دید خارج شد، حافظه آن تخلیه می شود.
  • یه دوست
    avatar
    سلام دوستان چه طوری می تونم توی C اعداد با ارقام خیلی زیاد رو تعریف کنم
    مثلا :200 رقم یا بیشتر
    لطفا راهنمایی کنید
    این هم ایمیل من Kame.akbare@hotmail.com
  • ناشناس
    avatar
    :confused: :confused: :confused: :unsure: :cheer: :) :confused: :confused: :confused: :confused: :confused: :confused: :confused: :confused: :confused: :confused: :confused: :confused: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :D :kiss: :lol: :dry: <img src=illy:' title=':silly:' class='postemoticon' /> :evil: B) :idea:
  • مهدی  - keywords in c++
    avatar


    لطفا اگه میتونید کلمات کلیدی همراه با کارشون در سی رو واسم ایمیل کنید
    کلماتی مثل
    for
    signde
    unsignde
    void
    typeddef
  • علی پارسا
    avatar
    فوق العاده بود ، من تازه مفهوم آرایه ها رو متوجه شدم :)
  • ناشناس  - re: khanehaye araye
    avatar
    salam mitunid tozih beDd che tor misheadade 40raghamiro zakhire kard va jam va tafrigh rush anjam dada ba tashakor
  • mohammad
    avatar
    bebakhshin , pas in sorsesh kojast ???

  • donya
    avatar
    سایتتون عالیه ممنون.
  • sadra  - Error
    avatar
    سلام
    مرسی از آموزش های خوبتون
    من تو محیط visual کدنویسی میکنم اما برنامه مدام از cout & cin ارور میگیره
    البته بعد از بکار بردن std::cout or cin دیگه ارور نمیگیره
    ممنون میشم راهنماییم کنی
    مرسی :lol:
  • حسین  - برنامه نویسی
    avatar
    سلام
    لطفا اگه میتونید کمکم کنید
    میخوام به یه آرایه ده عنصری ده عدد بدم بعد فراوانی هر کدومشونو ببینم یعنی از هرکدام چند بار تکرار شدن.
    هر کاری کرددم نشد در سی پلاس پلاس بنویسمش کمکم کنید ممنون میشم!!!
  • کوثر
    avatar
    مرسی از شما لطفا برنامه های از سی پلاس پلاس را به ایمیلم بفرسید
    با تشکر
  • majid  - درخواست کمک
    avatar
    با تشکر از سایت خوبتون.من نیاز به کمنک دارم لطفا کمکم میکنید.

    سورس برنامه ای به زبان ++c میخوام که یه ماتریس 3*3 از ورودی بگیره و قطر اصلیشو صفر کنه بعد نمایشش بده . ممنون
اظهار نظر
مشخصات شما:
گراواتار enabled
نظر:
[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:
امنیت
کد آنتی اسپم نمایش داده شده در عکس را وارد کنید.