PDA

نسخه کامل مشاهده نسخه کامل : 2 تا سوال دارم



4dweb
01-02-2009, 15:17
1 : چاپ اعداد اول كوچكتر از 100 و سوال بعدي 2: چاپ جمع اعداد اول كوچكتر از 100 يا 1000 لطفا با توضيح خط به خط كدها باشه تا بتونم براي معلمم توضيح بدم كه چجوري اين برنامه رو نوشتم ممنون :13:

Payman_62
02-02-2009, 02:46
سلام.
چند بار به شما تذکر دادم قوانین سایت رو مطالعه کنید؟ سومین باره.
قوانین سایت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
قوانین انجمن برنامه نویسی ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
در خواست پروژه ممنوعه.
عنوان تاپیک باید مرتبط با سوال باشه.
اصلا نمیدونم چاپ اعداد 1 تا 100 رو میشه پروژه نامید. آخه یه تکونی هم به خودتون بدید. همه چی رو حاضر و آماده میخواید.

Payman_62
02-02-2009, 13:50
سلام.
دوست عزیز این کتاب رو بخون.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در مورد سوالت:
ببین شما به 2 تا حلقه تو در تو نیاز داری. حلقه اول که مشخصه متغیز i از 1 تا 100 میشماره. حلقه دوم که داخل اینه متغیر j از 1 تا i میشماره. داخل حلقه دوم چک میکنی که آیا i به j بخش پذیره یا نه. در نهایت اگه فقط به 2 عدد بخش پذیر بود اوله.

چند تا نکته هم داره که performance برنامتو چند برابر میکنه. یعنی میتونی الگوریتم رو بهینه کنی. مثلا غیر از 2 هیچ عدد زوجی اول نیست. پس 2 رو خودت چاپ کن و گام حلقه اول رو 2 کن. یعنی فقط اعداد فرد رو بررسی میکنی. یا میدونی که هر عددی نهایتا به نصف خودش بخش پذیره. پس میتونی حلقه دوم رو از 1 تا i\2 ست کنی. نکته دیگه: 1 رو که میدونی همه بهش بخش پذیرن. اعداد فرد هم که به 2 بخش پذیر نیستن. پس حلقه دوم رو از 3 شروع کن. بعد داخل حلقه دوم به محض این که یک عدد بخش پذیر بود از حلقه خارج شو. دیگه نیازی نیست تا ته حلقه بری. چون اون عدد اول نیست. ولی اگه تا ته حلقه رسیدی معلومه عدد اول بوده.
این توضیح در مورد الگوریتم برنامه. حالا خودت بنویسش.