فیلم های فارسی آموزش شبکه ( MCITP,MCSE,VMware )
اشتراک رایگان اکانت های پریمیوم،اکانت سایت های دانلود فیلم


    

صفحه 1 از 3 123 آخرآخر
نمايش نتايج 1 به 10 از 21

نام تاپيک: برنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟

  1. #1
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2006
    پست ها
    73

    پيش فرض برنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟

    برنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟




  2. #2
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,492

    پيش فرض

    آره هست....

  3. #3
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Mar 2006
    پست ها
    292

    پيش فرض

    حالا تمريناتتو جدا جدا ميزاري! تو فردا قراره مهندس بشي.نبايد بتوني يه همچين برنامه اي رو بنويسي؟

  4. #4
    آخر فروم باز BioHazard's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    cmd| echo tehran
    پست ها
    1,125

    پيش فرض

    سلام
    من یک راه نمایی کوچیک میکنم
    باید برنامه بیاد عدد رو به 2 3 5 7 11 تفسیم کنه
    اگر باقی مانده 0 نشد و حارج قسمت کوچیک تر از عدد مورد نظر بود عدد اول است

  5. #5
    اگه نباشه جاش خالی می مونه A_M_IT2005's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    بین جهنم و بهشت
    پست ها
    330

    1 سورس برنامه

    سلام به همگی
    خوب اول برنامه رو توضیح میدم بعد کد رو میذارم:
    عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 7.
    حالا برای اینکه برنامشو بنویسیم به ویژوال بیسیک میگیم که عددی رو که از ما گرفتی چک کن.
    عدد رو تقسیم کن بر خود عدد ، بعد تقسیم کن بر یک ، بعد تقسیم کن بر دو
    اگر باقیمانده دو تقسیم اول صفر و باقیمانده تقسیم بر دو بزرگتر از صفر شد عدد اول است.
    اینم کد برنامه:
    a = Val(Text1.Text)
    If (a Mod a = 0) And (a Mod 1 = 0) And (a Mod 2 <> 0) Then
    Text1.Text = a & "First"
    Else
    Text1.Text = a & "No"
    End If
    --------------------------------
    یک textbox و یک command میذاریم و توی command کد بالا رو مینویسیم
    اگه توضیحی برای کد خواستی من در خدمتم.
    ------------------------------------------------------
    اللهم عجل لولیک الفرج

  6. #6
    حـــــرفـه ای R£ɀД's Avatar
    تاريخ عضويت
    Nov 2004
    پست ها
    1,736

    پيش فرض

    سلام به همگی
    خوب اول برنامه رو توضیح میدم بعد کد رو میذارم:
    عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 7.
    حالا برای اینکه برنامشو بنویسیم به ویژوال بیسیک میگیم که عددی رو که از ما گرفتی چک کن.
    عدد رو تقسیم کن بر خود عدد ، بعد تقسیم کن بر یک ، بعد تقسیم کن بر دو
    اگر باقیمانده دو تقسیم اول صفر و باقیمانده تقسیم بر دو بزرگتر از صفر شد عدد اول است.
    اینم کد برنامه:
    a = Val(Text1.Text)
    If (a Mod a = 0) And (a Mod 1 = 0) And (a Mod 2 <> 0) Then
    Text1.Text = a & "First"
    Else
    Text1.Text = a & "No"
    End If
    اين برنامه معلوم نميكنه كه عدد اول هست يا نه.مثلا عدد 27 رو در نظر بگيرين خودتون متوجه ميشين كه اول نيست
    براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم.
    و اما اينم برنامه شما :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  7. این کاربر از R£ɀД بخاطر این مطلب مفید تشکر کرده است


  8. #7
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Mar 2006
    پست ها
    292

    پيش فرض

    آقا این کد اشتباهه!! عدد 2 یک عدد اول هست ولی برنامه میگه که اول نیست.حالا این اشتباه رو میشه به راحتی درست کرد ولی در مورد اعداد 33,55,77,99,… چیکار میشه کرد؟ این اعداد همگی بخشپذیر هستند و اول نیستند، در صورتی که برنامه میگه اعداد اول هستند.

    حالا من یه راهنمایی می کنم.برای اینکه بتونی کد این برنامه رو بنویسی باید:
    1.عدد ورودی رو بر 2 تقسیم کنی = a (تقسیم صحیح)
    2.باقیمانده تقسیم عدد وارد شده را بر تمام اعداد صحیح بین بازه [2,a] بدست بیاری.
    3.اگر تمام باقیمانده ها مخالف صفر بود،عدد وارد شده اول است.
    4.در غیر این صورت عدد وارد شده اول نیست.
    حالا این 4 خط رو به کد وی بی تبدیل کن تا نمره بگیری.

  9. #8
    حـــــرفـه ای R£ɀД's Avatar
    تاريخ عضويت
    Nov 2004
    پست ها
    1,736

    پيش فرض

    shamsoft عزيز منظور شما با A_M_IT2005 بود؟
    چون سورسي كه من گذاشتم درست جواب ميده . ميگي نه امتحان كن.
    حالا من یه راهنمایی می کنم.برای اینکه بتونی کد این برنامه رو بنویسی باید:
    1.عدد ورودی رو بر 2 تقسیم کنی = a (تقسیم صحیح)
    2.باقیمانده تقسیم عدد وارد شده را بر تمام اعداد صحیح بین بازه [2,a] بدست بیاری.
    3.اگر تمام باقیمانده ها مخالف صفر بود،عدد وارد شده اول است.
    4.در غیر این صورت عدد وارد شده اول نیست.
    اين نكته شما رو هم توي پست بالام گذاشته بودم و فقط توي سورسم ننوشتم:
    براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم.

  10. #9
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,492

    پيش فرض

    کد A_m_it2005 که اشتباست. ولی ماله رضا درسته.
    یه تعریف دیگه از عدد اول که سرعت برنامه رو خیلی میبره بالا. عدد اول عددی هست که به اعداد اول کوچکتر از خودش بخش پذیر نباشه. در این روش عدد 2 رو به عنوان اولین عدد اول میزاریم تو یه آرایه. بعد اعداد بعدی رو به اعداد آرایه تقسیم میکنیم. اگر باقی مانده غیر صفر بود میذاریمشون تو خونه آخر آرایه.

  11. #10
    اگه نباشه جاش خالی می مونه A_M_IT2005's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    بین جهنم و بهشت
    پست ها
    330

    10

    سلام
    برای عجله ای که در نوشتن برنامه کردم و کاملا اشتباه بود از همه معذرت میخوام
    برنامه به همون شکلی که Reza_s نوشته درسته که فکر کنم با دلفی هست.
    من برنامه رو با ویژوال بیسیسک نوشتم که هیچ اشکالی نداره :
    -----------------------------------------
    Dim a As Double, c As Double
    a = Val(Text1.Text)
    c = 2
    Do While c * c <= a
    If a Mod c = 0 Then
    Print "aval nist" + vbCr + "be " + CStr(c) + " bakhshpazir ast."
    Exit Do
    End If
    c = c + 1
    Loop
    If c * c > a Then Print "aval hast"
    --------------------------------------------
    اللهم عجل لولیک الفرج
    Last edited by A_M_IT2005; 02-06-2006 at 19:10.

  12. این کاربر از A_M_IT2005 بخاطر این مطلب مفید تشکر کرده است


صفحه 1 از 3 123 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

به اشتراک بگذارید

به اشتراک بگذارید