چاپ اعداد اول کوچکتر از n

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • میثم66

    • 2014/10/29
    • 56

    چاپ اعداد اول کوچکتر از n

    برنامه ای بنویسید که عدد n را دریافت و اعداد اول کوچکتر از آن را نشان دهد.
    مثال.اگر ما در اکسل 10 را وارد نماییم خروجی به ما 2و3و5و7 را نشان دهد.
    [CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
    [/CENTER]
  • میثم66

    • 2014/10/29
    • 56

    #2
    مجموع و تعداد ارقام

    خروجی در msgbox باشد
    [CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
    [/CENTER]

    کامنت

    • Amir Ghasemiyan

      • 2013/09/20
      • 4598
      • 100.00

      #3
      سلام دوست عزيز
      بفرماييد خدمت شما
      اين كدها بسيار سادست و نمونه هاي بسياري تو سايت از اينها موجوده. سعي كنين خودتون حل كنيد.

      کد:
      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

      کامنت

      • میثم66

        • 2014/10/29
        • 56

        #4
        نوشته اصلی توسط amir ghasemiyan
        سلام دوست عزيز
        بفرماييد خدمت شما
        اين كدها بسيار سادست و نمونه هاي بسياري تو سايت از اينها موجوده. سعي كنين خودتون حل كنيد.

        کد:
        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 نوشتید اگر ما بخواهیم عدد دلخواه وارد کنیم همچنین خروجی در اکسل نشان دهد در یک ستون چی؟
        اینی که نوشتید توضیح فارسیش چی میشه؟
        [CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
        [/CENTER]

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4598
          • 100.00

          #5
          نوشته اصلی توسط میثم66
          با تشکر اینو فقط برای عدد 10 نوشتید اگر ما بخواهیم عدد دلخواه وارد کنیم همچنین خروجی در اکسل نشان دهد در یک ستون چی؟
          اینی که نوشتید توضیح فارسیش چی میشه؟

          براي وارد كردن عدد دلخواه دو روش داريم. يكي اينكه مقدار رو داخل يكي از سلول ها بنويسيم، دوم اينكه يك فرم داشته باشيم.
          روش اول بسيار سادست. كافيه خط دوم رو به اين صورت اصلاح كنيد
          کد:
          a=Range("A1").Value
          در خصوص خروجي هم دقيقا به همين صورت هست. خط دهم رو بايد اينطوري اصلاح كنيد
          کد:
          Range("A1").Value=Left(aval,Len(aval)-1)
          در كل هم توضيحش اين ميشه كه اگر ديدي عددي فقط به خودش و يك بخش پذير هست به متغير aval اضافه كن

          کامنت

          • میثم66

            • 2014/10/29
            • 56

            #6
            این همه رو تو سلول اول مینویسه .باید همه رو تو ستون دوم زیر هم چاپ کنه؟
            یه مقدار بیشتر توضیح میدی.از اول برنامه
            [CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
            [/CENTER]

            کامنت

            • Amir Ghasemiyan

              • 2013/09/20
              • 4598
              • 100.00

              #7
              نوشته اصلی توسط میثم66
              این همه رو تو سلول اول مینویسه .باید همه رو تو ستون دوم زیر هم چاپ کنه؟
              یه مقدار بیشتر توضیح میدی.از اول برنامه

              خب شما گفته بودين ميخواين توي msgbox نمايش بده منم كد رو بر اساس اون نوشتم
              ببينين در كل مهمترين قسمت كدنويسي اينه كه شما بتونين تشخيص بدين عدد اول هست يا نه. حالا كه فهميدين عدد اوله ميتونين هركار كه لازمه باهاش بكنين.
              يكم كدهاي ديگه اي كه براتون نوشتم رو بررسي كنين متوجه ميشين چطوري زير هم تو ستون دلخواهتون بنويسيد.

              و اما توضيح خط به خط برنامه:
              خط 1: براي شروع هر كد لازمه. كلمه sub و يك نام براي اون
              خط 2: يك عدد رو مشخص ميكنيم. حالا ميخواد دستي وارد بشه يا تو سلول باشه يا از فرم باشه.
              خط 3 تا 7: حلقه اي شروع ميكنيم كه اعداد رو از 2 تا عدد مورد نظر بررسي كنه. اگه عدد بر اعداد كوچكتر از خودش بخشپذير باشه شمارنده رو يك شماره زياد ميكنيم
              خط 8: خب حالا كه همه اعداد كوچكتر از عددمورد نظر رو از نظر بخش پذيري چك كرديم ميريم به سراغ شمارنده. اگه شمارنده 1 باشه يعني بجز خودش و يك بر هيچ عدد ديگه اي بخش پذير نيست. پس عدد اوله. حالا كه فهميديم اوله ميريزيمش تو متغيري به نام aval
              خط 10: كليه اعداد اول بعد از اينكه در متغير aval ذخيره شدن توسط فرمان msgbox نمايش داده ميشن

              کامنت

              • میثم66

                • 2014/10/29
                • 56

                #8
                نوشته اصلی توسط amir ghasemiyan

                خب شما گفته بودين ميخواين توي msgbox نمايش بده منم كد رو بر اساس اون نوشتم
                ببينين در كل مهمترين قسمت كدنويسي اينه كه شما بتونين تشخيص بدين عدد اول هست يا نه. حالا كه فهميدين عدد اوله ميتونين هركار كه لازمه باهاش بكنين.
                يكم كدهاي ديگه اي كه براتون نوشتم رو بررسي كنين متوجه ميشين چطوري زير هم تو ستون دلخواهتون بنويسيد.

                و اما توضيح خط به خط برنامه:
                خط 1: براي شروع هر كد لازمه. كلمه sub و يك نام براي اون
                خط 2: يك عدد رو مشخص ميكنيم. حالا ميخواد دستي وارد بشه يا تو سلول باشه يا از فرم باشه.
                خط 3 تا 7: حلقه اي شروع ميكنيم كه اعداد رو از 2 تا عدد مورد نظر بررسي كنه. اگه عدد بر اعداد كوچكتر از خودش بخشپذير باشه شمارنده رو يك شماره زياد ميكنيم
                خط 8: خب حالا كه همه اعداد كوچكتر از عددمورد نظر رو از نظر بخش پذيري چك كرديم ميريم به سراغ شمارنده. اگه شمارنده 1 باشه يعني بجز خودش و يك بر هيچ عدد ديگه اي بخش پذير نيست. پس عدد اوله. حالا كه فهميديم اوله ميريزيمش تو متغيري به نام aval
                خط 10: كليه اعداد اول بعد از اينكه در متغير aval ذخيره شدن توسط فرمان msgbox نمايش داده ميشن
                کد مربوط به تشخیص عدد اول اینه اینجوری که شما نوشتید با این فرق داره.من اینجوری یاد گرفتم.
                کد PHP:
                Sub prime()
                Cells(11)
                div 0
                For 1 To n

                If 0=n mod i Then
                div 
                div 1
                End 
                If
                Next i
                If div 2 Then
                Cells
                (12) = "prime"
                Else
                Cells(12) = "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]

                کامنت

                • Amir Ghasemiyan

                  • 2013/09/20
                  • 4598
                  • 100.00

                  #9
                  نوشته اصلی توسط میثم66
                  کد مربوط به تشخیص عدد اول اینه اینجوری که شما نوشتید با این فرق داره.من اینجوری یاد گرفتم.
                  کد PHP:
                  Sub prime()
                  Cells(11)
                  div 0
                  For 1 To n

                  If 0=n mod i Then
                  div 
                  div 1
                  End 
                  If
                  Next i
                  If div 2 Then
                  Cells
                  (12) = "prime"
                  Else
                  Cells(12) = "not prime"
                  End If
                  End Sub 
                  راه هاي رسيدن به خدا زياده دوست عزيز.
                  اين رو هميشه يادتون باشه. در كدنويسي براي رسيدن به يك هدف چندين و چند راه وجود داره. يك برنامه نويس خوب كسي هست كه علاوه بر انتخاب يك برنامه درست كه به هدف برسه، يك برنامه ساده و سريع رو انتخاب ميكنه.

                  کامنت

                  • میثم66

                    • 2014/10/29
                    • 56

                    #10
                    نوشته اصلی توسط amir ghasemiyan
                    راه هاي رسيدن به خدا زياده دوست عزيز.
                    اين رو هميشه يادتون باشه. در كدنويسي براي رسيدن به يك هدف چندين و چند راه وجود داره. يك برنامه نويس خوب كسي هست كه علاوه بر انتخاب يك برنامه درست كه به هدف برسه، يك برنامه ساده و سريع رو انتخاب ميكنه.
                    خب الان به این شکل که من بالا قرار دادم چجوری میشه نوشت؟
                    [CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
                    [/CENTER]

                    کامنت

                    • Amir Ghasemiyan

                      • 2013/09/20
                      • 4598
                      • 100.00

                      #11
                      نوشته اصلی توسط میثم66
                      خب الان به این شکل که من بالا قرار دادم چجوری میشه نوشت؟

                      سوال خوبي كردين. خب من راهنماييتون ميكنم. اينو به عنوان تمرين خودتون انجام بدين.
                      اگه يادتون باشه گفتم مهمترين قسمت كار ما پيدا كردن عدد اول هست. خب تو روش من عدد اول رو كه فهميدين كجا پيدا ميكنيم. تو روش شما عدد اول رو تو شرط زير تشخيص ميديم:
                      کد:
                      If div = 2 Then
                      خط بعد از اين دستور عملياتي هست كه روي عدد اول پيدا شده بايد اعمال بشه. تو روش من اين عمليات انجام ميشه:
                      کد:
                      aval = aval & i & "-"
                      تو روشي كه شما دادين هم كه مشخصه ديگه. اين عمليات:
                      کد:
                      Cells(1, 2) = "prime"
                      حالا شما اين دو روش رو با هم تركيب كنيد و خروجي كه تو سوال ازتون خواسته شده بود رو استخراج كنيد

                      کامنت

                      • میثم66

                        • 2014/10/29
                        • 56

                        #12
                        نوشته اصلی توسط amir ghasemiyan

                        سوال خوبي كردين. خب من راهنماييتون ميكنم. اينو به عنوان تمرين خودتون انجام بدين.
                        اگه يادتون باشه گفتم مهمترين قسمت كار ما پيدا كردن عدد اول هست. خب تو روش من عدد اول رو كه فهميدين كجا پيدا ميكنيم. تو روش شما عدد اول رو تو شرط زير تشخيص ميديم:
                        کد:
                        If div = 2 Then
                        خط بعد از اين دستور عملياتي هست كه روي عدد اول پيدا شده بايد اعمال بشه. تو روش من اين عمليات انجام ميشه:
                        کد:
                        aval = aval & i & "-"
                        تو روشي كه شما دادين هم كه مشخصه ديگه. اين عمليات:
                        کد:
                        Cells(1, 2) = "prime"
                        حالا شما اين دو روش رو با هم تركيب كنيد و خروجي كه تو سوال ازتون خواسته شده بود رو استخراج كنيد
                        من اصلا سر در نیاوردم .من که به اندازه شما بلد نیستم که.
                        کد PHP:
                         If j Then counter counter 1
                            Next j
                            
                        If counter 1 Then aval aval "-"
                        Next i
                         Cells
                        (22) = Left(avalLen(aval) - 1
                        من اصلا اینو متوجه نشدم.
                        [CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
                        [/CENTER]

                        کامنت

                        • Amir Ghasemiyan

                          • 2013/09/20
                          • 4598
                          • 100.00

                          #13
                          نوشته اصلی توسط میثم66
                          من اصلا سر در نیاوردم .من که به اندازه شما بلد نیستم که.
                          کد PHP:
                           If j Then counter counter 1
                              Next j
                              
                          If counter 1 Then aval aval "-"
                          Next i
                           Cells
                          (22) = Left(avalLen(aval) - 1
                          من اصلا اینو متوجه نشدم.

                          اين بار رو من كدشو بهتون ميگم. ولي سعي كنيد كدها رو خودتون تحليل كنيد. بيشتر تمركزتون رو بذارين تو فهميدن روند انجام نه اينكه هر فرمان چكار ميكنه.
                          کد:
                          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
                          درضمن: اين نكته رو فراموش نكنين كه كدي كه من نوشتم تمام اعداد اول كوچكتر از مقدار داده شده رو بهمون ميده ولي كدي كه شما دادين فقط چك ميكنه ببينه عدد اول هست يا نه
                          درواقع كد شما معادل حلقه داخلي كد من هست

                          کامنت

                          • میثم66

                            • 2014/10/29
                            • 56

                            #14
                            نوشته اصلی توسط amir ghasemiyan

                            اين بار رو من كدشو بهتون ميگم. ولي سعي كنيد كدها رو خودتون تحليل كنيد. بيشتر تمركزتون رو بذارين تو فهميدن روند انجام نه اينكه هر فرمان چكار ميكنه.
                            کد:
                            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
                            [CENTER][COLOR=#0000ff][SIZE=3][B]دانش هر فرد دارایی او نیست بلکه بدهکاری او به جامعه است[/B][/SIZE][/COLOR]
                            [/CENTER]

                            کامنت

                            • Amir Ghasemiyan

                              • 2013/09/20
                              • 4598
                              • 100.00

                              #15
                              نوشته اصلی توسط میثم66
                              اینی که شما نوشتی اصلا چیزی نشون نمیده تو msgbox
                              متاسفانه شما به نوشته هاي من توجه نميكنيد
                              عرض كردم اين كدي كه شما نوشتين فقط تعيين ميكند عدد اول است يا نه. نه اينكه تمامي اعداد اول كوچكتر از عدد وارد شده رو نشون بده
                              وقتي عددي اول نباشه خب قاعدتا تو msgbox هم چيزي نشون داده نميشه ديگه

                              کامنت

                              چند لحظه..