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


Problem

1/16

مجموع اعداد دنباله ای - مثال 1

Theory Click to read/hide

بیایید سعی کنیم برنامه ای برای حل مشکل زیر بنویسیم:
مجموع همه اعداد صحیح بین 100 و 500 را بیابید. 

هنگام حل این مشکل، یافتن مبلغ دشوار می شود. اگر به سادگی نتیجه جمع را به متغیر s مثلاً as بنویسیم


s=100+101+102+103+...+500

زمان زیادی برای ضبط نیاز خواهد داشت، زیرا رایانه نحوه استفاده از بیضی را در عبارت حسابی نمی‌فهمد و ما باید تمام اعداد از 100 تا 500 را در این مجموع بنویسیم. و ارزش چنین برنامه ای ناچیز خواهد بود. مخصوصاً اگر بخواهیم اعداد خود را تغییر دهیم و دامنه متفاوتی داشته باشیم.

چه کاری باید انجام دهیم؟

اگر به مدخل بالا دقت کنیم، مدام از جمع "+".
استفاده می کنیم می توانید سعی کنید اعداد را به تدریج به متغیر s اضافه کنید. به عنوان مثال، با استفاده از این نماد
s := s + i;
کاری که ما اینجا انجام دادیم:
1) در سمت راست عبارت s+i, را قرار می دهیم، یعنی مقدار متغیر s را که اکنون در حافظه داریم، می گیریم و مقدار را اضافه می کنیم. از متغیر i< به آن /strong>
2) در سمت چپ نام متغیر s را تعیین می کنیم، یعنی کل نتیجه محاسبه در سمت راست در این متغیر ذخیره می شود، بنابراین مقدار متغیر را تغییر می دهیم. s. 

از کجا می توانیم اعداد را از محدوده خود دریافت کنیم؟

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

Problem

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