وظیفه
مجموع همه اعداد صحیح بین 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، 501): # حلقه سرصفحه جایی که i
s += i # مقدار خود را از 100 به 500 در مراحل 1 تغییر می دهد،
# در بدنه حلقه به تدریج به متغیر s،
# مقدار متغیر تغییر i را اضافه کنید،
# و نتیجه را در متغیر s ذخیره کنید
این راه حل بسیار شبیه به محاسبه مجموع اعمال است:
\(s = 0 + 100 = 100، \\ s = 100 + 101 = 201، \\ s = 201 + 102 = 303 \\ ... \) span>