مثال.اگر ما در اکسل 10 را وارد نماییم خروجی به ما 2و3و5و7 را نشان دهد.
چاپ اعداد اول کوچکتر از n
Collapse
X
-
چاپ اعداد اول کوچکتر از n
برنامه ای بنویسید که عدد n را دریافت و اعداد اول کوچکتر از آن را نشان دهد.
مثال.اگر ما در اکسل 10 را وارد نماییم خروجی به ما 2و3و5و7 را نشان دهد.[CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
[/CENTER] -
سلام دوست عزيز
بفرماييد خدمت شما
اين كدها بسيار سادست و نمونه هاي بسياري تو سايت از اينها موجوده. سعي كنين خودتون حل كنيد.
کد:Sub meisam() a = 10 For i = 2 To a counter = 0 For j = 2 To i If i / j = i \ j Then counter = counter + 1 Next j If counter = 1 Then aval = aval & i & "-" Next i MsgBox Left(aval, Len(aval) - 1) End Subکامنت
-
با تشکر اینو فقط برای عدد 10 نوشتید اگر ما بخواهیم عدد دلخواه وارد کنیم همچنین خروجی در اکسل نشان دهد در یک ستون چی؟سلام دوست عزيز
بفرماييد خدمت شما
اين كدها بسيار سادست و نمونه هاي بسياري تو سايت از اينها موجوده. سعي كنين خودتون حل كنيد.
کد:Sub meisam() a = 10 For i = 2 To a counter = 0 For j = 2 To i If i / j = i \ j Then counter = counter + 1 Next j If counter = 1 Then aval = aval & i & "-" Next i MsgBox Left(aval, Len(aval) - 1) End Sub
اینی که نوشتید توضیح فارسیش چی میشه؟[CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
[/CENTER]کامنت
-
براي وارد كردن عدد دلخواه دو روش داريم. يكي اينكه مقدار رو داخل يكي از سلول ها بنويسيم، دوم اينكه يك فرم داشته باشيم.
روش اول بسيار سادست. كافيه خط دوم رو به اين صورت اصلاح كنيد
در خصوص خروجي هم دقيقا به همين صورت هست. خط دهم رو بايد اينطوري اصلاح كنيدکد:a=Range("A1").Value
در كل هم توضيحش اين ميشه كه اگر ديدي عددي فقط به خودش و يك بخش پذير هست به متغير aval اضافه كنکد:Range("A1").Value=Left(aval,Len(aval)-1)کامنت
-
خب شما گفته بودين ميخواين توي msgbox نمايش بده منم كد رو بر اساس اون نوشتم
ببينين در كل مهمترين قسمت كدنويسي اينه كه شما بتونين تشخيص بدين عدد اول هست يا نه. حالا كه فهميدين عدد اوله ميتونين هركار كه لازمه باهاش بكنين.
يكم كدهاي ديگه اي كه براتون نوشتم رو بررسي كنين متوجه ميشين چطوري زير هم تو ستون دلخواهتون بنويسيد.
و اما توضيح خط به خط برنامه:
خط 1: براي شروع هر كد لازمه. كلمه sub و يك نام براي اون
خط 2: يك عدد رو مشخص ميكنيم. حالا ميخواد دستي وارد بشه يا تو سلول باشه يا از فرم باشه.
خط 3 تا 7: حلقه اي شروع ميكنيم كه اعداد رو از 2 تا عدد مورد نظر بررسي كنه. اگه عدد بر اعداد كوچكتر از خودش بخشپذير باشه شمارنده رو يك شماره زياد ميكنيم
خط 8: خب حالا كه همه اعداد كوچكتر از عددمورد نظر رو از نظر بخش پذيري چك كرديم ميريم به سراغ شمارنده. اگه شمارنده 1 باشه يعني بجز خودش و يك بر هيچ عدد ديگه اي بخش پذير نيست. پس عدد اوله. حالا كه فهميديم اوله ميريزيمش تو متغيري به نام aval
خط 10: كليه اعداد اول بعد از اينكه در متغير aval ذخيره شدن توسط فرمان msgbox نمايش داده ميشنکامنت
-
کد مربوط به تشخیص عدد اول اینه اینجوری که شما نوشتید با این فرق داره.من اینجوری یاد گرفتم.
خب شما گفته بودين ميخواين توي msgbox نمايش بده منم كد رو بر اساس اون نوشتم
ببينين در كل مهمترين قسمت كدنويسي اينه كه شما بتونين تشخيص بدين عدد اول هست يا نه. حالا كه فهميدين عدد اوله ميتونين هركار كه لازمه باهاش بكنين.
يكم كدهاي ديگه اي كه براتون نوشتم رو بررسي كنين متوجه ميشين چطوري زير هم تو ستون دلخواهتون بنويسيد.
و اما توضيح خط به خط برنامه:
خط 1: براي شروع هر كد لازمه. كلمه sub و يك نام براي اون
خط 2: يك عدد رو مشخص ميكنيم. حالا ميخواد دستي وارد بشه يا تو سلول باشه يا از فرم باشه.
خط 3 تا 7: حلقه اي شروع ميكنيم كه اعداد رو از 2 تا عدد مورد نظر بررسي كنه. اگه عدد بر اعداد كوچكتر از خودش بخشپذير باشه شمارنده رو يك شماره زياد ميكنيم
خط 8: خب حالا كه همه اعداد كوچكتر از عددمورد نظر رو از نظر بخش پذيري چك كرديم ميريم به سراغ شمارنده. اگه شمارنده 1 باشه يعني بجز خودش و يك بر هيچ عدد ديگه اي بخش پذير نيست. پس عدد اوله. حالا كه فهميديم اوله ميريزيمش تو متغيري به نام aval
خط 10: كليه اعداد اول بعد از اينكه در متغير aval ذخيره شدن توسط فرمان msgbox نمايش داده ميشن
کد PHP:Sub prime()
n = Cells(1, 1)
div = 0
For i = 1 To n
If 0=n mod i Then
div = div + 1
End If
Next i
If div = 2 Then
Cells(1, 2) = "prime"
Else
Cells(1, 2) = "not prime"
End If
End Sub
Last edited by میثم66; 2014/12/05, 20:17.[CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
[/CENTER]کامنت
-
راه هاي رسيدن به خدا زياده دوست عزيز.
اين رو هميشه يادتون باشه. در كدنويسي براي رسيدن به يك هدف چندين و چند راه وجود داره. يك برنامه نويس خوب كسي هست كه علاوه بر انتخاب يك برنامه درست كه به هدف برسه، يك برنامه ساده و سريع رو انتخاب ميكنه.
کامنت
-
خب الان به این شکل که من بالا قرار دادم چجوری میشه نوشت؟[CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
[/CENTER]کامنت
-
سوال خوبي كردين. خب من راهنماييتون ميكنم. اينو به عنوان تمرين خودتون انجام بدين.
اگه يادتون باشه گفتم مهمترين قسمت كار ما پيدا كردن عدد اول هست. خب تو روش من عدد اول رو كه فهميدين كجا پيدا ميكنيم. تو روش شما عدد اول رو تو شرط زير تشخيص ميديم:
خط بعد از اين دستور عملياتي هست كه روي عدد اول پيدا شده بايد اعمال بشه. تو روش من اين عمليات انجام ميشه:کد:If div = 2 Then
تو روشي كه شما دادين هم كه مشخصه ديگه. اين عمليات:کد:aval = aval & i & "-"
حالا شما اين دو روش رو با هم تركيب كنيد و خروجي كه تو سوال ازتون خواسته شده بود رو استخراج كنيدکد:Cells(1, 2) = "prime"
کامنت
-
من اصلا سر در نیاوردم .من که به اندازه شما بلد نیستم که.
سوال خوبي كردين. خب من راهنماييتون ميكنم. اينو به عنوان تمرين خودتون انجام بدين.
اگه يادتون باشه گفتم مهمترين قسمت كار ما پيدا كردن عدد اول هست. خب تو روش من عدد اول رو كه فهميدين كجا پيدا ميكنيم. تو روش شما عدد اول رو تو شرط زير تشخيص ميديم:
خط بعد از اين دستور عملياتي هست كه روي عدد اول پيدا شده بايد اعمال بشه. تو روش من اين عمليات انجام ميشه:کد:If div = 2 Then
تو روشي كه شما دادين هم كه مشخصه ديگه. اين عمليات:کد:aval = aval & i & "-"
حالا شما اين دو روش رو با هم تركيب كنيد و خروجي كه تو سوال ازتون خواسته شده بود رو استخراج كنيدکد:Cells(1, 2) = "prime"
من اصلا اینو متوجه نشدم.کد PHP:If i / j = i \ j Then counter = counter + 1
Next j
If counter = 1 Then aval = aval & i & "-"
Next i
Cells(2, 2) = Left(aval, Len(aval) - 1)
[CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
[/CENTER]کامنت
-
اين بار رو من كدشو بهتون ميگم. ولي سعي كنيد كدها رو خودتون تحليل كنيد. بيشتر تمركزتون رو بذارين تو فهميدن روند انجام نه اينكه هر فرمان چكار ميكنه.
درضمن: اين نكته رو فراموش نكنين كه كدي كه من نوشتم تمام اعداد اول كوچكتر از مقدار داده شده رو بهمون ميده ولي كدي كه شما دادين فقط چك ميكنه ببينه عدد اول هست يا نهکد:Sub prime() n = Cells(1, 1) div = 0 For i = 1 To n If 0=n mod i Then div = div + 1 End If Next i If div = 2 Then aval = n End If MsgBox aval End Sub
درواقع كد شما معادل حلقه داخلي كد من هستکامنت
-
اینی که شما نوشتی اصلا چیزی نشون نمیده تو msgbox
اين بار رو من كدشو بهتون ميگم. ولي سعي كنيد كدها رو خودتون تحليل كنيد. بيشتر تمركزتون رو بذارين تو فهميدن روند انجام نه اينكه هر فرمان چكار ميكنه.
درضمن: اين نكته رو فراموش نكنين كه كدي كه من نوشتم تمام اعداد اول كوچكتر از مقدار داده شده رو بهمون ميده ولي كدي كه شما دادين فقط چك ميكنه ببينه عدد اول هست يا نهکد:Sub prime() n = Cells(1, 1) div = 0 For i = 1 To n If 0=n mod i Then div = div + 1 End If Next i If div = 2 Then aval = n End If MsgBox aval End Sub
درواقع كد شما معادل حلقه داخلي كد من هست[CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
[/CENTER]کامنت
-
متاسفانه شما به نوشته هاي من توجه نميكنيد
عرض كردم اين كدي كه شما نوشتين فقط تعيين ميكند عدد اول است يا نه. نه اينكه تمامي اعداد اول كوچكتر از عدد وارد شده رو نشون بده
وقتي عددي اول نباشه خب قاعدتا تو msgbox هم چيزي نشون داده نميشه ديگهکامنت



کامنت