PDA

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



sabeghi
31-05-2006, 06:27
برنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟

Payman_62
31-05-2006, 10:54
آره هست....

shamsoft
31-05-2006, 12:00
حالا تمريناتتو جدا جدا ميزاري! تو فردا قراره مهندس بشي.نبايد بتوني يه همچين برنامه اي رو بنويسي؟

BioHazard
31-05-2006, 14:39
سلام
من یک راه نمایی کوچیک میکنم
باید برنامه بیاد عدد رو به 2 3 5 7 11 تفسیم کنه
اگر باقی مانده 0 نشد و حارج قسمت کوچیک تر از عدد مورد نظر بود عدد اول است

A_M_IT2005
01-06-2006, 16:01
سلام به همگی
خوب اول برنامه رو توضیح میدم بعد کد رو میذارم:
عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 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 کد بالا رو مینویسیم
اگه توضیحی برای کد خواستی من در خدمتم.
------------------------------------------------------
اللهم عجل لولیک الفرج

R£ɀД
01-06-2006, 16:22
سلام به همگی
خوب اول برنامه رو توضیح میدم بعد کد رو میذارم:
عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 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 رو در نظر بگيرين خودتون متوجه ميشين كه اول نيست
براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم.
و اما اينم برنامه شما :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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

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

R£ɀД
01-06-2006, 16:36
shamsoft عزيز منظور شما با A_M_IT2005 بود؟
چون سورسي كه من گذاشتم درست جواب ميده . ميگي نه امتحان كن.

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

اين نكته شما رو هم توي پست بالام گذاشته بودم و فقط توي سورسم ننوشتم:

براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم.

Payman_62
01-06-2006, 18:02
کد A_m_it2005 که اشتباست. ولی ماله رضا درسته.
یه تعریف دیگه از عدد اول که سرعت برنامه رو خیلی میبره بالا. عدد اول عددی هست که به اعداد اول کوچکتر از خودش بخش پذیر نباشه. در این روش عدد 2 رو به عنوان اولین عدد اول میزاریم تو یه آرایه. بعد اعداد بعدی رو به اعداد آرایه تقسیم میکنیم. اگر باقی مانده غیر صفر بود میذاریمشون تو خونه آخر آرایه.

A_M_IT2005
02-06-2006, 15:48
سلام
برای عجله ای که در نوشتن برنامه کردم و کاملا اشتباه بود از همه معذرت میخوام :sad: :blush: :eh:
برنامه به همون شکلی که 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"
--------------------------------------------
اللهم عجل لولیک الفرج

hamed_karrari
25-11-2009, 11:14
دوستان از لینک زیر می توانند الگوریتم برنامه و فلوچارت مربوط به اعداد اول را دریافت کنند.:5:
لینک برنامه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

fariba000
04-03-2011, 09:58
سلام
خوب من در حال گذروندن دوره ویژوال بیسیک هستم.
کدهایی رو که تو این قسمت خیلی وقت پیشها ارائه شده رو مطالعه کردم. توی یه تعدادشون از کدهایی استفاده شده که اصلا تو ویژوال بیسیک متداول نیست. و آخرین پست فقط اجرا رو داده بدون کد!
خوب ممنون میشم یکی یه راهنمایی درست بکنه.
با تشکر فریبا

sadeghbarout
05-03-2011, 12:37
اینم کد برنامه اعداد اول :


Private Sub Command1_Click()
a = InputBox("")

For i = 2 To a - 1
If a Mod i = 0 Then k = k + 1
Next i

If k = 0 Then MsgBox "yes" Else MsgBox "no"
End Sub



فکر نمیکنم توضیح خاصی بخواد اگه این عدد بر اعداد 2 تا یکی کمتر از خود اون عدد بخش پذیر نبود اونوقت میگه yes

sadeghbarout
05-03-2011, 12:44
دوستان از لینک زیر می توانند الگوریتم برنامه و فلوچارت مربوط به اعداد اول را دریافت کنند.:5:
لینک برنامه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



آقای حامد خان این چه برنامه ایه ؟
شما به برنامه ات 9 و 15 و ... رو بده میگه اوله:18::18::18:

IfkUbch
09-03-2011, 01:39
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

IfkUbch
09-03-2011, 15:55
چرا نوشته هام اینتر ندارن ؟؟؟من اینتر گذاشتم اما نیوفتاده .حالا اشکال نداره اون یه ایراد کوچول هم داشت اینو ببینید :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

------------------------------------------------------

لطفا کدهاتون رو داخل تگ کد قرار بدید.
Payman_62

vb6
22-01-2012, 12:41
سلام
تو کدی که دادین ارقام بیشتر از 9 رقم رو قبول نمیکنه.
اگه میشه دوباره راهنمایی کنین.

Darya-eng
23-01-2012, 03:50
سلام
من کد C#رو میذارم که زیاد فرقی نمیکنه با کمی تغییر میتونید ازش استفاده کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

behzad74eb
03-10-2013, 10:56
سلام به همه دوستان من مراحل نوشتن برنامه عدد اول رو می خواستم لطفا راهنمایی کنید

rahnema1
03-10-2013, 11:21
سلام به همه دوستان من مراحل نوشتن برنامه عدد اول رو می خواستم لطفا راهنمایی کنید
بیا باهم مفهوم عدد اول را مرور کنیم:
عددی طبیعی ا ست که فقط بر یک و خودش بخش پذیر است خوب با توجه به این تعریف خودت برای اینکه متوجه بشی یک عدد اول است یا نه چه کار می کنی؟

Mohammad_HNF
12-10-2013, 14:35
سلام این رو هم امتحان کن

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Haydeh moradi
22-05-2016, 18:06
برنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟
Private Sub Command1_Click() Dim n, i, t As Integer
t = 0
n = text1.Text
For i = 1 To n
If n Mod i = 0 Then
t = t + 1
End If
Next i
If t = 2 Then
Print "aval ast"
Else
Print "aval niast"
End Sub
به یک دکمه و یک تکست باکس و لیبل برای خوانایی برنامه استفاده میکنیم استفاده از لیبل اختیاری است

akpa
22-05-2016, 22:28
Private Sub Command1_Click() Dim n, i, t As Integer
t = 0
n = text1.Text
For i = 1 To n
If n Mod i = 0 Then
t = t + 1
End If
Next i
If t = 2 Then
Print "aval ast"
Else
Print "aval niast"
End Sub
به یک دکمه و یک تکست باکس و لیبل برای خوانایی برنامه استفاده میکنیم استفاده از لیبل اختیاری است
برنامه تون خوبه فقط چندتا نکته برای اجرای سریعتر
لازم نیست از یک تا خود عدد رو تقسیم کنیم اگه عددی اول نباشه حتما یه مقسوم علیه داره که کوچکتر یا مساوی مجذور خودشه (چون شاید نخوایم از توابع ریاضی و مجذور استفاده کنیم از نصف عدد میتونیم استفاده کنیم) کد اصلاح شده به شکل زیر

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Saeid27y
25-06-2016, 18:45
سلام دوستان من برنامه زیر رو کسی بلده

برنامه ای که یک عدد را دریافت و مشخص کند اول است با نه با تابع بازگشتی؟ (به زبان جاوا)

saeedka80
30-10-2017, 19:36
سلام این برنامه رو واسه سی شارپ دارید؟ اگه هست به منم بگید

زهره طلوعی
15-11-2017, 16:19
کد سوال جمع بزرگان رو میشه بفرستین
البته اگه کسی داره:n35: