آرایه های دو بعدی (مبانی برنامه نویسی)
سلام خدمت همه ی دوستان و علاقمندان zero to hero
تو این مقاله سعی داریم با مفهوم آرایه های دو بعدی که تو دو پست قبل تر معرفی شد، بیشتر آشنا بشیم. همون طور که می دونید این آرایه ها در واقع همون جدول ها یا table ها هستند. که برای دسترسی به هر کدوم از خونه هاشون از دو اندیس شماره سطر و شماره ستون استفاده می کنیم. در ادامه با یک مثال برنامه نویسی اون رو بهتر درک خواهیم کرد.
مساله: برنامه ای بنویسید که جدول ضرب اعداد یک رقمی را در یک آرایه دو بعدی ذخیره و سپس چاپ کند. خب برای حل این مساله باید یک آرایه ی دوبعدی ۹ در ۹ داشته باشیم، اما تو آرایه های دو بعدی هم مثل آرایه های یک بعدی اندیس خونه ها از ۰ شروع میشه. یعنی برای این مثال شماره سطر و ستون از ۰ تا ۸ خواهد بود. اما ما چون با اعداد ۱ تا ۹ کار داریم می تونیم آرایه مون رو ۱۰ در ۱۰ انتخاب کنیم و به خونه های با اندیس ۰ اون کاری نداشته باشیم.(البته این کار از لحاظ مصرف حافظه به صرفه نیست، اما در حد برنامه های این سری مشکلی نداره!) بنابراین یه آرایه دو بعدی ۱۰ در ۱۰ رو تعریف می کنیم که این کار رو با دستور زیر می تونیم انجام بدیم:
int a[10][10];
بعد از اون دو متغیر شمارنده برای دو حلقه تعریف می کنیم و مقادیر جدول ضرب رو با این حلقه ها داخل آرایه قرار میدیم:
int i; int j; for(i = 1;i<=9;i = i + 1){ for(j = 1;j<=9;j = j +1){ a[i][j] = i * j; } }
و در آخر با استفاده دو حلقه، مقادیر داخل آرایه رو چاپ می کنیم:
for(i = 1;i<=9;i = i + 1){ for(j = 1;j<=9;j = j +1){ cout << a[i][j] << " "; } cout << endl; }
در انتها کد کاملمون به این شکل خواهد بود:
#include <iostream> using namespace std; int main(){ int a[10][10]; int i; int j; for(i = 1;i<=9;i = i + 1){ for(j = 1;j<=9;j = j +1){ a[i][j] = i * j; } } for(i = 1;i<=9;i = i + 1){ for(j = 1;j<=9;j = j +1){ cout << a[i][j] << " "; } cout << endl; } return 0; }
و پس از اجرا و گرفتن خروجی می بینیم که داره کاملا درست عمل می کنه:
منتظر مقاله های بعدی مبانی برنامه نویسی و الگوریتم ها باشید.
قهرمان دنیای خودت باش!
لینک پست بعدی مبانی برنامه نویسی
مطالب زیر را حتما مطالعه کنید
حسگرها و فناوریهای پوشیدنی و کاربردهای آنها در پزشکی
آشنایی با نمودار رابطهای (ER)
درخت دودویی
ساختمان داده درخت
مدار منطقی – گیت های منطقی
مدار منطقی-جبر بول
2 Comments
Join the discussion and tell us your opinion.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
اقایکی الگوریتم نویسی ارایه دوبعدی روبگه
با سلام به شما دوست عزیز
لازم به ذکره که الگوریتم نویسی برای مسائل تعریف میشه. آرایه ی دو بعدی به تنهایی یک ابزار برای حل مساله ست و نه یک مساله.. اگر الگوریتم نویسی برای مساله ی خاصی که با آرایه دو بعدی حل میشه مد نظرتونه، می تونید مساله رو مطرح کنید تا در صورت نیاز مقاله ای در خصوص اون مساله ارائه بشه.