واضح آرشیو وب فارسی:سایت ریسک: sabeghi31-05-2006, 06:27 AMبرنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟ Payman_6231-05-2006, 10:54 AMآره هست.... shamsoft31-05-2006, 12:00 PMحالا تمريناتتو جدا جدا ميزاري! تو فردا قراره مهندس بشي.نبايد بتوني يه همچين برنامه اي رو بنويسي؟ BioHazard31-05-2006, 02:39 PMسلام من یک راه نمایی کوچیک میکنم باید برنامه بیاد عدد رو به 2 3 5 7 11 تفسیم کنه اگر باقی مانده 0 نشد و حارج قسمت کوچیک تر از عدد مورد نظر بود عدد اول است A_M_IT200501-06-2006, 04:01 PMسلام به همگی خوب اول برنامه رو توضیح میدم بعد کد رو میذارم: عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 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, 04:22 PMسلام به همگی خوب اول برنامه رو توضیح میدم بعد کد رو میذارم: عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 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 رو در نظر بگيرين خودتون متوجه ميشين كه اول نيست براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم. و اما اينم برنامه شما : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! shamsoft01-06-2006, 04:31 PMآقا این کد اشتباهه!! عدد 2 یک عدد اول هست ولی برنامه میگه که اول نیست.حالا این اشتباه رو میشه به راحتی درست کرد ولی در مورد اعداد 33,55,77,99,… چیکار میشه کرد؟ این اعداد همگی بخشپذیر هستند و اول نیستند، در صورتی که برنامه میگه اعداد اول هستند. حالا من یه راهنمایی می کنم.برای اینکه بتونی کد این برنامه رو بنویسی باید: 1.عدد ورودی رو بر 2 تقسیم کنی = a (تقسیم صحیح) 2.باقیمانده تقسیم عدد وارد شده را بر تمام اعداد صحیح بین بازه [2,a] بدست بیاری. 3.اگر تمام باقیمانده ها مخالف صفر بود،عدد وارد شده اول است. 4.در غیر این صورت عدد وارد شده اول نیست. حالا این 4 خط رو به کد وی بی تبدیل کن تا نمره بگیری. :happy: R£ɀД01-06-2006, 04:36 PMshamsoft عزيز منظور شما با A_M_IT2005 بود؟ چون سورسي كه من گذاشتم درست جواب ميده . ميگي نه امتحان كن. حالا من یه راهنمایی می کنم.برای اینکه بتونی کد این برنامه رو بنویسی باید: 1.عدد ورودی رو بر 2 تقسیم کنی = a (تقسیم صحیح) 2.باقیمانده تقسیم عدد وارد شده را بر تمام اعداد صحیح بین بازه [2,a] بدست بیاری. 3.اگر تمام باقیمانده ها مخالف صفر بود،عدد وارد شده اول است. 4.در غیر این صورت عدد وارد شده اول نیست. اين نكته شما رو هم توي پست بالام گذاشته بودم و فقط توي سورسم ننوشتم: براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم. Payman_6201-06-2006, 06:02 PMکد A_m_it2005 که اشتباست. ولی ماله رضا درسته. یه تعریف دیگه از عدد اول که سرعت برنامه رو خیلی میبره بالا. عدد اول عددی هست که به اعداد اول کوچکتر از خودش بخش پذیر نباشه. در این روش عدد 2 رو به عنوان اولین عدد اول میزاریم تو یه آرایه. بعد اعداد بعدی رو به اعداد آرایه تقسیم میکنیم. اگر باقی مانده غیر صفر بود میذاریمشون تو خونه آخر آرایه. A_M_IT200502-06-2006, 03:48 PMسلام برای عجله ای که در نوشتن برنامه کردم و کاملا اشتباه بود از همه معذرت میخوام :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_karrari25-11-2009, 11:14 AMدوستان از لینک زیر می توانند الگوریتم برنامه و فلوچارت مربوط به اعداد اول را دریافت کنند.:5: لینک برنامه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! fariba 00004-03-2011, 09:58 AMسلام خوب من در حال گذروندن دوره ویژوال بیسیک هستم. کدهایی رو که تو این قسمت خیلی وقت پیشها ارائه شده رو مطالعه کردم. توی یه تعدادشون از کدهایی استفاده شده که اصلا تو ویژوال بیسیک متداول نیست. و آخرین پست فقط اجرا رو داده بدون کد! خوب ممنون میشم یکی یه راهنمایی درست بکنه. با تشکر فریبا sadeghbarout05-03-2011, 12:37 PMاینم کد برنامه اعداد اول : Private Sub Command 1_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 sadeghbarout05-03-2011, 12:44 PMدوستان از لینک زیر می توانند الگوریتم برنامه و فلوچارت مربوط به اعداد اول را دریافت کنند.:5: لینک برنامه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آقای حامد خان این چه برنامه ایه ؟ شما به برنامه ات 9 و 15 و ... رو بده میگه اوله:18::18::18: IfkUbch09-03-2011, 01:39 AM!!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! IfkUbch09-03-2011, 03:55 PMچرا نوشته هام اینتر ندارن ؟؟؟من اینتر گذاشتم اما نیوفتاده .حالا اشکال نداره اون یه ایراد کوچول هم داشت اینو ببینید : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! ------------------------------------------------------ لطفا کدهاتون رو داخل تگ کد قرار بدید. Payman_62 سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 8335]