به نام آن که تن رانور جان داد خرد را سوی دانایی عنان داد
بریم که فصل جدید رو شروع کنیم
:
در فصل جدید آموزش هایمان به مبحث آرایه ها میرسیم . مبحث جذاب ارایه ها
ارایه ها انواعی از دادهها هستند که میتوانند دادههایی را بصورت دستهجمعی و منحصربه فرد ذخیره کنند.
ارایه ها را صورت زیر تعریف میکنیم :
type array_name[size] ;
در قسمت type نوع دادهای خود را می نویسیم (int , float , …)
در قسمت array_name نام ارایه را می نویسیم که نام ارایه هم از قانون ANSI پیروی میکند
در قسمت size هم ما تعداد ارایه هایی را که نیاز داریم تعریف میکنیم.
برای مثال اگر بخواهیم در یک کلاس ۲۰ نفری ، نمره ۲۰ نفر را وارد کنیم کار غیر عاقلانه ای در اینجا میتوانیم انجام دهیم این است که ۲۰ متغیر تعریف کنیم ! اما کار بهتر و منطقیتر این است که ما یک ارایه تعریف کنیم و تنها با index (شماره هر خانه) به متغیر مورد نظر دسترسی پیدا کنیم
مثال ۱ – برنامهای بنویسید که نمره ۱۰ نفر را ذخیره کند .
این مثال را به شکلهای متفاوت میتوان حل کرد که چندین نوع انرا بررسی میکنیم .
۱.۱ – نوع اول : در این نوع ما فقط میتوانیم نمرات را خودمان به شکل دیکتاتوری بنویسیم .
#include<stdio.h>int main(void)
{
float scores[10];
scores[0] = 13;
scores[1] = 14;
scores[2] = 18.25;
scores[3] = 2.5;
scores[4] = 13.75;
scores[5] = 17.75;
scores[6] = 11.5;
scores[7] = 20;
scores[8] = 7.75;
scores[9] = 0;
printf("This is Score of first man or woman :D> %.2fn",scores[4]);
}
۱.۲ – نوع دوم : با استفاده از توابع ورودی و خروجی با کاربر تعامل برقرار می کنیم.
#include<stdio.h>int main(void)
{
float scores[10];
printf("Enter the 1.number : ");
scanf("%f",&scores[0]);
printf("Enter the 2.number : ");
scanf("%f",&scores[1]);
printf("Enter the 3.number : ");
scanf("%f",&scores[2]);
printf("Enter the 4.number : ");
scanf("%f",&scores[3]);
printf("Enter the 5.number : ");
scanf("%f",&scores[4]);
printf("Enter the 6.number : ");
scanf("%f",&scores[5]);
printf("Enter the 7.number : ");
scanf("%f",&scores[6]);
printf("Enter the 8.number : ");
scanf("%f",&scores[7]);
printf("Enter the 9.number : ");
scanf("%f",&scores[8]);
printf("Enter the 10.number : ");
scanf("%f",&scores[9]);
printf("This is list of your numbers :n%fn%fn%fn%fn%fn%fn%fn%fn%fn%fn",scores[0],scores[1],scores[2],scores[3],scores[4],scores[5],scores[6],scores[7],scores[8],scores[9]);
}
در این روش ما بسیار کد های تکراری و خستهکننده نوشتیم !
۱.۳ – نوع سوم : با استفاده از حلقه ی for براحتی با کاربر تعامل برقرار میکنیم و تعداد کد هایمان خیلی خیلی کم میشود :
#include<stdio.h>int main(void)
{
float scores[10];
for(int i = 0;i < 10 ; i++)
{
printf("No.%d Enter your numbers> ",i);
scanf("%f",&scores[i]);
}
}
با یک حلقه for براحتی میتوانیم به تمامی اعضای ارایه دسترسی پیدا کنیم .
با یک تیر چند نشان زدیم : حجم کد ها کم شد ، برنامه انعطاف پذیر شد ، با کاربر تعامل برقرار کرد و …
نکته : ایندکس ارایه ها هم از ۰ شروع میشود تا n-1 تعداد متغیر . در مثال قبل که ده نمره را دریافت کردیم خانه اول ارایه ها ۰ و خانه آخر ۹ است .
مثال۲ (پیچیدهتر) : برنامهای بنویسید که کاربر بتواند ۵ عددصحیح را وارد کند و آن اعداد را به ضورت معکوس وارد کند.
#include<stdio.h>int main(void)
{
int number[5] ;
printf("Enter 5 numbers > n");
for(int i = 0; i <= 4 ; i++ )
{
scanf("%d", &number[i]);
}
printf("This inverse of your numbers > n");
for(int j = 4 ; j >= 0 ; j--)
{
printf("%d ",number[j]);
}
printf("n");
}
انواع شیوههای تعریف ارایه :
۱ – در این شیوه تنها سایز ارایه را مشخص میکنیم که چقدر ورودی دریافت کند :
int number[5] ;
۲ – در این شیوه خانههای حافظه ای را هم مقدار دهی اولیه میکنیم :
int number[5] = {1,2,3,4,5} ;
۳ – در این شیوه سایز خانههای حافظه ای مشخص نیست :
int number[] ;
۴ – در این شیوه میتوانیم سایزی مشخص نکنیم و به تعداد نیازمان مقدار اولیه در ارایه قرار دهیم:
int number = {1,2,3,4,54,5,6,6,34,34,34,213,324,453,546,546};
مبحث ارایه ها خیلی مبحث کاربردی و پیچیدهای هست و باید با احتیاط (!)
یاد گرفت
بخش بعدی آموزشها : ارایه های دو بعدی و چند بعدی
این جلسه را به عنوان مقدمات در نظر بگیرید بعد از آنکه ارایه های دو بعدی و چند بعدی هم گفته شد یک جلسه به طور مفصل مثال حل میکنیم .
شاد و سربلند باشید
اوبونتو...
ما را در سایت اوبونتو دنبال می کنید
برچسب : نویسنده : استخدام کار ubuntu بازدید : 132 تاريخ : پنجشنبه 17 تير 1395 ساعت: 21:48