اطلاعیه

Collapse
No announcement yet.

تشخیص عدد اول با بسکام

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تشخیص عدد اول با بسکام

    سلام دوستان میخام تو بسکام برنامه بنویسم ک عدد ورودی رو تشخیص بده اول یا نه!
    گرفتن عدد از کیپد و نمایشش بلدم فقط نمیدونم چطور بگم مثلا عدد ورودی اول یا نه!کدهاشو بلد نیستم
    کمک کنید :read: :sad:
    من با دانش و آکاهی ام تمام جهالت ها رو به زانو در خواهم اورد.

    #2
    پاسخ : تشخیص عدد اول با بسکام

    نوشته اصلی توسط milad brave
    سلام دوستان میخام تو بسکام برنامه بنویسم ک عدد ورودی رو تشخیص بده اول یا نه!
    گرفتن عدد از کیپد و نمایشش بلدم فقط نمیدونم چطور بگم مثلا عدد ورودی اول یا نه!کدهاشو بلد نیستم
    کمک کنید :read: :sad:
    سلام
    کدهاش رو بیخیال اول مطالعه کن تا فورمول تشخیص اعداد اول رو بدست بیاری بعد کد نویسی کنی
    فورمول رو اینجا بزار تا اگه دوستان بتونن کمک کنند
    برد جوجه کشی:
    مطالعه پست 1 (حتما مطالعه کنید)


    مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

    دانلود

    توجه:
    این برد نیمه صنعتی و خانگی هست...
    برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

    آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

    دیدگاه


      #3
      پاسخ : تشخیص عدد اول با بسکام

      اعداد اول روال منطقی ندارن تا فرمول داشته باشن شما اول باید اونها رو پیدا کنی بعد تو متغیر ذخیره کنی بعد عدد ورودی رو با اونها مقایسه کنی تا ببینی یکی از اونها هست یا نه
      من با سی بلدم دو روش به نظرم میرسه یکی سویچ یکی هم ذخیره در ارایه و مقایسه در حلقه.
      کرشمه ای کن و بازار ساحری بشکن @-}--@-}--@-}--به غمزه رونق و ناموس سامری بشکن
      یاصاحب الزمان(عج)

      دیدگاه


        #4
        پاسخ : تشخیص عدد اول با بسکام

        نوشته اصلی توسط moha3
        اعداد اول روال منطقی ندارن تا فرمول داشته باشن شما اول باید اونها رو پیدا کنی بعد تو متغیر ذخیره کنی بعد عدد ورودی رو با اونها مقایسه کنی تا ببینی یکی از اونها هست یا نه
        من با سی بلدم دو روش به نظرم میرسه یکی سویچ یکی هم ذخیره در ارایه و مقایسه در حلقه.
        بله فورمول منطقی نداره بیشترشون مشکل دارن برای همین گفتم ببینم روششون چیه
        برد جوجه کشی:
        مطالعه پست 1 (حتما مطالعه کنید)


        مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

        دانلود

        توجه:
        این برد نیمه صنعتی و خانگی هست...
        برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

        آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

        دیدگاه


          #5
          پاسخ : تشخیص عدد اول با بسکام

          روش خاصی نداره ک فقط عددی ک وارد میشه تشخیص بده اول یا نه
          اول باید فقط به خودش و یک بخش پذیر باشه حالا اینو چطور به کد تبدیل کنم
          من با دانش و آکاهی ام تمام جهالت ها رو به زانو در خواهم اورد.

          دیدگاه


            #6
            پاسخ : تشخیص عدد اول با بسکام

            نوشته اصلی توسط milad brave
            روش خاصی نداره ک فقط عددی ک وارد میشه تشخیص بده اول یا نه
            اول باید فقط به خودش و یک بخش پذیر باشه حالا اینو چطور به کد تبدیل کنم
            سلام

            من اینکارو کردم با بسکام

            این یه عکس



            اینم فایل پرتیوس و بسکام

            اینم کد:
            [code=vb]$regfile = "m16def.dat"
            $crystal = 4000000
            Config Lcdpin = Pin , Rs = Porta.5 , E = Porta.4 , Db4 = Porta.3 , Db5 = Porta.2 , _
            Db6 = Porta.1 , Db7 = Porta.0
            Config Lcd = 16 * 2
            Cursor Off
            Config Single = Scientific , Digits = 4
            '###############################
            Dim A As Long , B As Long , C As Byte , I As Word , D As Long
            Dim M As Byte , L As Byte , U As Long , Kbd As Byte , T As Bit
            Dim N As Byte
            '###############################
            Config Kbd = Portd , Debounce = 20
            Declare Sub Keipad
            Locate 1 , 3
            Lcd "Please wait"
            Wait 1
            Cls
            L = 1
            '###############################
            Do
            Keipad
            If U > 999999999 Then
            U = 0
            Locate 1 , 1
            Lcd " "
            End If
            If Kbd = 10 And U > 0 Then
            D = U - 1
            If U <= 3 Then L = 1
            For I = 2 To D
            B = U Mod I
            C = 0
            L = 1
            If B = 0 Then
            C = 1
            If U <= 3 Then C = 0
            Exit For
            End If
            If U <= 3 Then C = 0
            Next
            Kbd = 0
            Cls
            Waitms 200
            End If


            Locate 1 , 1
            Lcd "A=" ; U ; " ?"
            If C = 1 Then
            Locate 2 , 1
            Lcd "adad aval nist "
            Elseif C = 0 Then
            Incr N
            If N <= 10 Then
            Locate 2 , 1
            Lcd "adad aval hast "
            Else
            Locate 2 , 1
            Lcd " "
            End If
            If N >= 20 Then N = 0
            End If
            Loop
            '###############################
            Sub Keipad
            M = Getkbd()
            Kbd = Lookup(m , Dta)
            If Kbd >= 16 Then T = 0
            If Kbd <= 9 And T = 0 Then
            If L = 1 Then
            U = 0
            L = 0
            Locate 1 , 1
            Lcd " "
            End If
            U = U * 10
            U = U + Kbd
            T = 1
            Kbd = 0
            End If
            If Kbd = 11 Then
            U = 0
            Kbd = 0
            Cls
            Waitms 200
            End If
            End Sub
            '###############################
            Dta:
            Data 7 , 8 , 9 , 16 , 4 , 5 , 6 , 16 , 1 , 2 , 3 , 16 , 11 , 0 , 10 , 16[/code]

            هر کجاشو متوجه نشدی بگو تا توضیح بدم
            طرحشم به این صورت هست که متغیر u همون اعداد دریافتی از کیبورد هست
            تو برنامه یه حلقه for هست که هر وقت عدد وارد شد و کلید مساوی(=) زده شد این حلقه عدد u رو چک می کنه و بهت میگه
            کلید on هم عدد وارد شده رو دوباره صفر می کنه
            و اعداد 1 تا 9 هم واضحن
            بقیه کلید ها کاری انجام نمی دن :rolleyes:

            موفق باشی


            اضافه شده در تاریخ :
            اینم چند تا از اعداد اول



            23 19 17 13 11 7 5 3 2
            67 61 59 53 47 43 41 37 31 29
            109 107 103 101 97 89 83 79 73 71
            167 163 157 151 149 139 137 131 127 113
            227 223 211 199 197 193 191 181 179 173
            227 271 269 263 257 251 241 239 233 229
            347 337 331 317 313 311 307 293 283 281
            401 397 389 383 379 373 367 359 353 349
            461 457 449 443 439 433 431 421 419 409
            523 521 509 503 449 491 487 479 467 463
            599 593 587 577 571 569 563 557 547 541
            653 647 643 641 531 619 617 613 607 601
            727 719 709 701 691 683 677 673 661 659
            797 787 773 769 761 757 751 743 739 733
            859 857 853 839 829 827 823 811 821 809
            937 929 919 911 907 887 883 881 877 863
            1009 997 991 983 977 971 967 953 947 941
            1063 1061 1051 1049 1039 1033 1031 1021 1019 1013
            1129 1123 1117 1109 1103 1097 1093 1091 1087 1069
            1217 1213 1201 1193 1187 1181 1171 1163 1153 1151
            1289 1283 1279 1277 1259 1249 1237 1231 1229 1223
            1367 1361 1327 1321 1219 1307 1303 1301 1297 1291
            1447 1439 1433 1429 1427 1423 1409 1399 1381 1373
            1499 1493 1489 1487 1483 1481 1471 1459 1453 1451
            1579 1571 1567 1559 1553 1549 1543 1531 1523 1511
            1637 1527 1621 1619 1613 1609 1607 1601 1597 1583
            1723 1721 1709 1699 1697 1693 1669 1667 1663 1657
            1801 1789 1787 1783 1777 1759 1753 1747 1741 1733
            1879 1877 1873 1871 1867 1861 1847 1831 1823 1811
            1979 1973 1951 1949 1933 1931 1913 1907 1901 1189
            1999 1997 1993 1987


            برد جوجه کشی:
            مطالعه پست 1 (حتما مطالعه کنید)


            مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

            دانلود

            توجه:
            این برد نیمه صنعتی و خانگی هست...
            برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

            آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

            دیدگاه


              #7
              پاسخ : تشخیص عدد اول با بسکام

              سلام
              درسته که میشه از جدول استفاده کرد
              و برای اعداد کوچیک شاید روش مناسبی باشه
              اما اگه میخوای در حالت کلی برنامه بنویسی روالش اینه:
              فرض کن عدد ورودی n باشه
              یک حلقه for مینویسی با متغیر i که از 2 تا n/2 تغییر میکنه و یکی یکی اضافه میشه
              در هر مرحله اگه باقیمانده تقسیم عدد n بر i برابر با صفر شد
              از حلقه خارج میشی
              و اعلام میکنی که عدد اول نیست
              اما اگه حلقه تا آخرش رفت و n/2 هم چک شد
              و دیدی که باقیمانده هیچکدوم صفر نشد
              اعلام میکنی که عدد اوله...
              :read:
              1: اللهم صل علی محمد و آل محمد و عجل فرجهم و ...
              2: دانش بهتره یا ثروت؟ بدون شعور هیچکدوم!
              3: دلا معاش چنان کن که گر بلغزد پای *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

              دیدگاه


                #8
                پاسخ : تشخیص عدد اول با بسکام

                نوشته اصلی توسط محمدصادق رستمی
                سلام
                درسته که میشه از جدول استفاده کرد
                و برای اعداد کوچیک شاید روش مناسبی باشه
                اما اگه میخوای در حالت کلی برنامه بنویسی روالش اینه:
                فرض کن عدد ورودی n باشه
                یک حلقه for مینویسی با متغیر i که از 2 تا n/2 تغییر میکنه و یکی یکی اضافه میشه
                در هر مرحله اگه باقیمانده تقسیم عدد n بر i برابر با صفر شد
                از حلقه خارج میشی
                و اعلام میکنی که عدد اول نیست
                اما اگه حلقه تا آخرش رفت و n/2 هم چک شد
                و دیدی که باقیمانده هیچکدوم صفر نشد
                اعلام میکنی که عدد اوله...
                :read:
                درست ترش این هست که هر عدد باقیماندش در تقسیم به یکی از اعداد2یا3یا5یا7برابر صفر باشه تا عدد اول نباشه نیاز به تست تا ان دوم نیست.
                کرشمه ای کن و بازار ساحری بشکن @-}--@-}--@-}--به غمزه رونق و ناموس سامری بشکن
                یاصاحب الزمان(عج)

                دیدگاه


                  #9
                  پاسخ : تشخیص عدد اول با بسکام

                  نوشته اصلی توسط moha3
                  درست ترش این هست که هر عدد باقیماندش در تقسیم به یکی از اعداد2یا3یا5یا7برابر صفر باشه تا عدد اول نباشه نیاز به تست تا ان دوم نیست.
                  :eek:
                  شما عدد 169 رو در نظر بگیر:
                  13*13 = 169
                  این عدد اول نیست
                  اما باقیمانده ش بر 2 و 3 و 5 و 7 نیز صفر نیست!
                  ...
                  روشی که در دو پست قبل گفته شد، روش استاندارشه
                  1: اللهم صل علی محمد و آل محمد و عجل فرجهم و ...
                  2: دانش بهتره یا ثروت؟ بدون شعور هیچکدوم!
                  3: دلا معاش چنان کن که گر بلغزد پای *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

                  دیدگاه


                    #10
                    پاسخ : تشخیص عدد اول با بسکام

                    نوشته اصلی توسط محمدصادق رستمی
                    سلام
                    درسته که میشه از جدول استفاده کرد
                    و برای اعداد کوچیک شاید روش مناسبی باشه
                    اما اگه میخوای در حالت کلی برنامه بنویسی روالش اینه:
                    فرض کن عدد ورودی n باشه
                    یک حلقه for مینویسی با متغیر i که از 2 تا n/2 تغییر میکنه و یکی یکی اضافه میشه
                    در هر مرحله اگه باقیمانده تقسیم عدد n بر i برابر با صفر شد
                    از حلقه خارج میشی
                    و اعلام میکنی که عدد اول نیست
                    اما اگه حلقه تا آخرش رفت و n/2 هم چک شد
                    و دیدی که باقیمانده هیچکدوم صفر نشد
                    اعلام میکنی که عدد اوله...
                    :read:
                    سلام
                    این روش خیلی خوب و استانداردیه ولی نه برای میکروکنترلر 8 بیتی ... چون تا بخواد یه محاسبه 16 و 32 بیتی رو انجام بده پدرش در میاد ...
                    حالا فکر کنید که این کار ها رو بخواد توی یک حلقه لوپ انجام بده ...

                    دوستان
                    بهترین روش برای دور زدن پردازش اضافی روش جدول هست که باید از روی جدول بخونید و ببینید توی جدول اعداد اول هست یا خیر ...
                    پس یه جدول لوکپ درست کنید و این اعداد اول رو توی اون ذخیره کنید ...
                    موقعی عدد وارد شد باید از روی جدول لوکپ عمل مقایسه کردن را انجام داد ... همین ...

                    موفق باشید
                    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                    معرفی نرم افزار Codewizard PWM
                    با من بیشتر آشنا شوید

                    دیدگاه


                      #11
                      پاسخ : تشخیص عدد اول با بسکام

                      نوشته اصلی توسط محمدصادق رستمی
                      :eek:
                      شما عدد 169 رو در نظر بگیر:
                      13*13 = 169
                      این عدد اول نیست
                      اما باقیمانده ش بر 2 و 3 و 5 و 7 نیز صفر نیست!
                      ...
                      روشی که در دو پست قبل گفته شد، روش استاندارشه
                      بله درسته حق با شماست فکر اینجاشو نکردم. :nerd:
                      کرشمه ای کن و بازار ساحری بشکن @-}--@-}--@-}--به غمزه رونق و ناموس سامری بشکن
                      یاصاحب الزمان(عج)

                      دیدگاه

                      لطفا صبر کنید...
                      X