برنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟
برنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟
آره هست....
حالا تمريناتتو جدا جدا ميزاري! تو فردا قراره مهندس بشي.نبايد بتوني يه همچين برنامه اي رو بنويسي؟
سلام
من یک راه نمایی کوچیک میکنم
باید برنامه بیاد عدد رو به 2 3 5 7 11 تفسیم کنه
اگر باقی مانده 0 نشد و حارج قسمت کوچیک تر از عدد مورد نظر بود عدد اول است
سلام به همگی
خوب اول برنامه رو توضیح میدم بعد کد رو میذارم:
عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 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 کد بالا رو مینویسیم
اگه توضیحی برای کد خواستی من در خدمتم.
------------------------------------------------------
اللهم عجل لولیک الفرج
اين برنامه معلوم نميكنه كه عدد اول هست يا نه.مثلا عدد 27 رو در نظر بگيرين خودتون متوجه ميشين كه اول نيستسلام به همگی
خوب اول برنامه رو توضیح میدم بعد کد رو میذارم:
عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 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
براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم.
و اما اينم برنامه شما :
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
آقا این کد اشتباهه!! عدد 2 یک عدد اول هست ولی برنامه میگه که اول نیست.حالا این اشتباه رو میشه به راحتی درست کرد ولی در مورد اعداد 33,55,77,99,… چیکار میشه کرد؟ این اعداد همگی بخشپذیر هستند و اول نیستند، در صورتی که برنامه میگه اعداد اول هستند.
حالا من یه راهنمایی می کنم.برای اینکه بتونی کد این برنامه رو بنویسی باید:
1.عدد ورودی رو بر 2 تقسیم کنی = a (تقسیم صحیح)
2.باقیمانده تقسیم عدد وارد شده را بر تمام اعداد صحیح بین بازه [2,a] بدست بیاری.
3.اگر تمام باقیمانده ها مخالف صفر بود،عدد وارد شده اول است.
4.در غیر این صورت عدد وارد شده اول نیست.
حالا این 4 خط رو به کد وی بی تبدیل کن تا نمره بگیری.
shamsoft عزيز منظور شما با A_M_IT2005 بود؟
چون سورسي كه من گذاشتم درست جواب ميده . ميگي نه امتحان كن.
اين نكته شما رو هم توي پست بالام گذاشته بودم و فقط توي سورسم ننوشتم:حالا من یه راهنمایی می کنم.برای اینکه بتونی کد این برنامه رو بنویسی باید:
1.عدد ورودی رو بر 2 تقسیم کنی = a (تقسیم صحیح)
2.باقیمانده تقسیم عدد وارد شده را بر تمام اعداد صحیح بین بازه [2,a] بدست بیاری.
3.اگر تمام باقیمانده ها مخالف صفر بود،عدد وارد شده اول است.
4.در غیر این صورت عدد وارد شده اول نیست.
براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم.
کد A_m_it2005 که اشتباست. ولی ماله رضا درسته.
یه تعریف دیگه از عدد اول که سرعت برنامه رو خیلی میبره بالا. عدد اول عددی هست که به اعداد اول کوچکتر از خودش بخش پذیر نباشه. در این روش عدد 2 رو به عنوان اولین عدد اول میزاریم تو یه آرایه. بعد اعداد بعدی رو به اعداد آرایه تقسیم میکنیم. اگر باقی مانده غیر صفر بود میذاریمشون تو خونه آخر آرایه.
سلام
برای عجله ای که در نوشتن برنامه کردم و کاملا اشتباه بود از همه معذرت میخوام
برنامه به همون شکلی که 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 20:10.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)