PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آرایه ها در برنامه نویسی c ( متغیرهای ثابت )



TAHA
04-05-2010, 11:23 PM
متغیرهای ثابت
همانطور که در قسمت قبل گفته شد، گرچه اندازه یک آرایه باید ثابت صحیح باشد؛ اما می توان از متغیرهای ثابت نیز استفاده کرد. یک متغیر ثابت، متغیری است که فقط می تواند در هنگام اعلان مقدار اولیه بگیرد و این مقدار دیگر قابل تغییر نیست. برای اعلان متغیرهای ثابت، از کلمه کلیدی const قبل از نوع متغیر استفاده می گردد. بعنوان مثال:


const int k = 10;
اکنون هرگونه تلاش برای تغییر مقدار k، باعث ایجاد یک خطای نحوی توسط کامپایلر خواهد شد. به این نوع متغیرها، ثابتهای نام دار نیز گفته می شود.
این متغیرها در تعریف مقادیر ثابتی که مقدار آنها در طول برنامه تغییر نمی کند، بکار می روند. بعنوان مثال :


const float pi = 3.14;
این کار نه تنها خوانایی برنامه را بالا می برد (بدلیل استفاده از کلمه pi که برای همه شناخته شده است)، بلکه باعث می شود تغییر پذیری برنامه نیز بالا برود. بدین معنا که در صورتیکه برنامه نویس تصمیم گرفت مقدار ثابت را عوض کند، نیازی به تغییر کل برنامه نیست و فقط کافی است مقدار اولیه متغیر را عوض نماید. بعنوان مثال اگر برنامه نویس بخواهد عدد pi را با ۴ رقم اعشار در محاسبات شرکت دهد، فقط باید در تعریف اولیه آن، مقدار را عوض کرده و از ۴ رقم اعشار استفاده نماید.
از این مسئله می توان در تعریف آرایه ها نیز استفاده کرد. بدین صورت که بجای آنکه اندازه آرایه را با یک ثابت صحیح مشخص نماییم، آن را با یک متغیر ثابت تعریف می کنیم. با اینکار، درصورتیکه نیازی به تغییر اندازه آرایه (یا آرایه ها) گردد، فقط کافی است مقدار اولیه متغیر ثابت خود را تغییر دهیم. برای نمونه به مثال زیر دقت کنید:
برنامه ۲) برنامه ای بنویسید که سال ورود تعدادی دانشجو را دریافت و سپس تعداد ورودی های سالهای ۷۵ تا ۸۴ را محاسبه و چاپ نماید.




void main() {
const int startYear = 75;
const int yearNo = 10;
int count[yearNo] = {0};
int i, n, year;
printf(“enter student no :”);
scanf(“%d”,&n);
for (i= 0;i<n; i++) {
printf(“enter entrance year :”);
scanf(“%d”,&year);
count [year – startYear] ++;
}
for (i= 0; i<yearNo ; i++) {
printf(“year = %d count = %d \n”,startYear + i , count[i]);
}