Module: برای بیانیه حلقه. وظایف معمولی


Problem

1/16

مجموع اعداد دنباله ای 1 است

Theory Click to read/hide

وظیفه
مجموع همه اعداد صحیح بین 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 \\ ... \)

Problem

برنامه تحلیل شده در قسمت تئوری را برای اجرا اجرا کنید، نتیجه کار آن را ببینید.