وظیفه
مجموع همه اعداد صحیح بین 100 و 500 را بیابید.
بیایید برنامه ای بنویسیم که این مشکل را بدون استفاده از فرمول حل کند. اگر فقط نتیجه جمع را به متغیر
s
بنویسیم، به عنوان مثال،
\(s=100+101+102+103+...+500\)،
ما زمان زیادی را صرف ضبط خود خواهیم کرد، زیرا کامپیوتر نحوه استفاده از بیضی را در یک عبارت حسابی نمی فهمد و ما باید تمام اعداد را از 100 تا 500 بنویسیم. و ارزش چنین برنامه ای خواهد بود. قابل اغماض مخصوصاً اگر بخواهیم اعداد خود را تغییر دهیم و دامنه متفاوتی داشته باشیم.
چه کنیم؟
اگر به ورودی بالا دقت کنیم، دائماً از اضافه "
+
" استفاده می کنیم.
می توانید اعداد را به تدریج به متغیر
s
اضافه کنید. به عنوان مثال، با استفاده از این نماد
s = s + i
.
کاری که ما انجام دادیم:
1) در سمت راست عبارت s + i
، را قرار می دهیم، یعنی مقدار متغیر s
را می گیریم و اضافه می کنیم. مقدار متغیر برای آن i
;
2) در سمت چپ نام متغیر s
را تنظیم می کنیم، یعنی کل نتیجه محاسبه در سمت راست در همان متغیر s
ذخیره می شود، بنابراین ما مقدار متغیر s
را تغییر خواهیم داد.
تنها تغییر مقدار متغیر i
در محدوده مورد نظر باقی می ماند. این را می توان با یک حلقه for
انجام داد.
اعداد 100 تا 500 که در محدوده ما هستند باید به نوبه خود وارد متغیر
i
شوند.
مثال
// مهم! ابتدا باید متغیر s را ریست کنید،
// به طوری که در مرحله اول عدد 100 به صفر اضافه می شود.
// و نه به آنچه در حافظه است!
s=0;
برای (i = 100; i <= 500; i++) // هدر حلقه ای که در آن متغیر i
s = s + i; // مقدار آن را از 100 به 500 با افزایش 1 تغییر می دهد،
// در بدنه حلقه به تدریج به متغیر s،
// مقدار متغیر متغیر i را اضافه کنید،
// و نتیجه در متغیر s ذخیره می شود
این راه حل بسیار شبیه به محاسبه مجموع اعمال است:
\(s = 0 + 100 = 100، \\ s = 100 + 101 = 201، \\ s = 201 + 102 = 303 \\ ... \)