آرایه ها در زبان C – آرایه دو بعدی
در آرایه ها در زبان C – آموزش زبان C توضیحاتی درباره ی مقداردهی اولیه دادم این جلسه از آموزش آرایه ها در زبان C رو هم به مباحث دیگه ی مربوط به آرایه ها اختصاص میدیم.
آرایه دو بعدی
آرایه دو بعدي از دو بعـد سطر و ستون تشکیل شده . اندیس اولی براي سطر ها و اندیس دومی براي ستونها است(درواقع خروجیش میشه ماتریس!) :
این بار هم اندیس برای ستون داریم و هم برای سطر.به مثال زیر توجه کنید:
1 |
int a[2][2]={1,2,3,4}; |
که خروجیش در خونه های حافظه میشه مثل شکل زیر:
یا :
1 |
int a[2][3] ={1 , 2 , 3 , 4 , 5 , 6}; |
باید به این نکته توجه کنین که توی متغیر ها میشد 2تا متغیر که مثلا اعداد 2و 3 رو داخلشون داشتن با هم جمع کنیم ، اما الان ماتریس داریم و برای جمع و ضرب اونها باید طبق قانون ماتریس ها عمل کنیم !
مثلا در جمع کردن 2 آرایه 2بعدی باید تعداد سطر ها و ستون های هر 2 آرایه برابر باشه تا بشه با هم جمعشون کرد.
یا مثلا اگر بخوایم توی مثال قبل به خونه های هر آرایه تک تک مقدار بدیم باید سطر و ستون اون رو مشخص کنیم.
مثلا :
سطر اول:
1 2 3 |
a[0][0] = 1 a[0][1] = 2 a[0][2] = 3 |
سطردوم:
1 2 3 |
a[1][0] = 4 a[1][1] = 5 a[1][2] = 6 |
مثال: برنامه ای بنویسید که با تعریف یک آرایه به طول 10 ، مقدار هر خونه حافظه رو برابر با اندیس خودش قرار داده و بد با محاسبه مجموع مربعات (توان2)عناصر آرایه ، اون ها را در خروجی چاپ کنه رو بنویسید .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <stdio.h> #include <conio.h> main() { float list[5],max ; int i , j ; for(i=0 ; i<5 ; i++) { printf("\n enter moadel %d :",i+1); scanf("%f",&list[i]); } max=list[0] ; j=1 ; for(i=1 ;i<5 ; i++) { if(list[i]>max) { max=list[i] ; j=i+1 ; } } printf("\nmax=%f/position=%d",max,j); } |
خروجی:
توی کد چند تا حلقه For برای خوندن و پرینت کردن وجود داره و در آخر کد هم یک if وجود داره که برای شناسایی بزرگترین مقدار آرایه استفاده شده .خیلی ساده و مفید 😀
میشد این آموزش رو بیشتر هم ادامه بدم و مثلا آرایه های چند بعدی یا مرتب سازی رو توضیح بدم و یک سری توضیحات دیگه اما برای دانشجویان برق یا در میکرو های AVR بیشتر از این کاربردی نیستن ، پس تا همینجا کفایت میکنه 😉
بخش آرایه دو بعدی هم به پایان رسید.
آرزوی شادی و موفقیت 😉
آموزش ها خوب بود بهتر بود pointer , library,function ها رو هم توضیح میدادین که کامل بشه .ممنون
سلام ممنون از توجهتون، هنوز تموم نشده 2 3 جلسه دیگه آموزش هست .تابع ها مطلب بعدیه ولی متاسفانه به دلایلی زمان انتشارش مشخص نیست