آرایه ها در برنامه نویسی c
آرايه در C عبارتست از مجموعه اي از داده هاي همنوع كه تحت يك نام مشترك و در خانه هاي متوالي حافظه ذخيره مي گردند. براي دسترسي به عناصر آرايه، بايد از نام آرايه بعلاوه انديس استفاده كرد. در قسمتهاي بعدي، نحوه تعريف و استفاده از آرايه ها را تشريح خواهيم كرد.
آرايه هاي يك بعدي
پيش از آنكه بتوان از يك آرايه يك بعدي استفاده كرد، بايد آن را اعلان كرد. اعلان آرايه ها بصورت زير انجام مي گردد:
بعنوان مثال:
int A[10];
خط بالا يك آرايه 10 تايي از اعداد صحيح بنام A ايجاد مي نمايد. هر كدام از عناصر اين آرايه مي توانند بعنوان يك متغير مستقل مورد استفاده قرار گيرد. براي دسترسي به عناصر اين آرايه بايد از انديس استفاده نمود. در زبان C انديسها در داخل كروشه [] قرار مي گيرند. نكته بسيار مهمي كه بايد بدان توجه كرد آنستكه در C انديس يك عدد صحيح است كه از 0 آغاز مي گردد. به مثال زير توجه نماييد:
int A[10] ;
A[2] = 8;
و يا چنانچه بخواهيم مقدار خانه سوم را بر 2 تقسيم و در متغير x بريزيم، داريم:
x = A[3] / 2;
اكنون به يك مثال دقت كنيد.
برنامه 1) برنامه اي بنويسيد كه شماره دانشجويي و معدل تعدادي دانشجو را دريافت، و سپس چنانچه معدل دانشجو از ميانگين كلاس :
- بيش از يك نمره بيشتر باشد، چاپ كند : عالي
- حداكثر يك نمره بيشتر يا كمتر باشد، چاپ كند : خوب
- بيش از يك نمره كمتر باشد، چاپ كند : ضعيف
#include
void main() {
float average[100] ;
long int id[100] ;
int i, n ;
float totalAverage;
printf("enter number of students : ");
scanf("%d", &n);
for (i = 0; i < n ; i ++) {
printf("enter id and average : ");
scanf("%ld %f", &id[i], &average[i]);
totalAverage += average[i];
}
totalAverage /= n;
for (i = 0; i < n ; i ++) {
if (average[i] > = totalAverage + 1)
printf("%ld : excellent !\n", id[i]);
else if (average[i] > = totalAverage – 1)
printf("%ld : good !\n", id[i]);
else printf("%ld : weak !\n", id[i]);
}
}
چند نكته مهم راجع به آرايه در C وجود دارد كه حتما بايد به آنها دقت كنيد:
1- اندازه آرايه ها در C ثابت بوده و حتما بايد توسط يك مقدار ثابت صحيح تعيين گردد. بعنوان مثال اعلان زير خطاي نحوي محسوب مي گردد:
int n ;
n=100 ;
int A[n];
اما مي توان با استفاده از متغير هاي ثابت (ثابتهاي داراي نام)، اندازه آرايه را تعيين كرد، كه در قسمتهاي بعدي به آن اشاره خواهد شد.
2- انديس آرايه ها در C عدد صحيح بوده و هميشه از 0 شروع مي شود. لذا به تفاوت "عنصر چهار آرايه" يعني A[4] و "چهارمين عنصر آرايه" يعني A[3] دقت كنيد. اين مسئله معمولا باعث بروز خطاهاي منطقي مي گردد.
3- در C مرز آرايه ها بررسي نمي گردد. بدين معنا كه چنانچه انديسي خارج از محدوده مجاز يك آرايه استفاده شود، باعث ايجاد خطا توسط كامپايلر نمي گردد، اما مسلما برنامه را دچار يك خطاي منطقي خواهد كرد. بعنوان مثال:
int A[10] ;
A[12] = 20 ; //this is not a syntax error but a logical error
لذا بررسي مرزهاي آرايه بعهده خود برنامه نويس است و بايد از درستي برنامه خود و خارج نشدن از محدوده مجاز مطمئن گردد.
4- مقداردهي اوليه به آرايه هاي يك بعدي بصورت زير انجام مي پذيرد:
int A[3] = {5, 2, 8};
كه در اينجا A[0] برابر 5 ، A[1] برابر 2 و A[2] برابر 8 خواهد شد.
علاوه براين مي توان فقط به تعدادي از عناصر آرايه مقدار داد، دراينصورت مقدار عناصر باقيمانده آرايه اتوماتيك 0 خواهد شد.
int B[10] = {5, 8} ;
در اينجا عناصر B[2] به بعد مقدار 0 خواهند گرفت. بنابراين مي توان براي 0 كردن كليه عناصر يك آرايه به شكل زير عمل كرد :
int C[10] = {0};
چنانچه به آرايه مقدار دهي اوليه كرده باشيم، مي توان تعداد عناصر آرايه را نيز ذكر نكرد، دراينصورت اندازه آرايه بطور اتوماتيك برابر تعداد مقادير مشخص شده خواهد شد.
int C[] = {10, 15, 20};
در مثال فوق آرايه C با 3 عضو درنظر گرفته مي شود.
هیچ نظری موجود نیست:
ارسال یک نظر