PDA

View Full Version : سوال: اعدادی که بر 3 بخش پذیرند؟؟؟؟



SHD.NET
یک شنبه 19 شهریور 1391, 00:45 صبح
سلام .
ما یه عدد توی تکست باکس وارد می کنیم که می خواهیم ببینیم این عدد بر 3 بخش پذیره یا نه.

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

حالا من یه دکمه دارم که چک کنه ببینه بر 3 بخش پذیره یا نه.

پس باید روی دکمه کدی رو بنویسم که ابتدا ارقام تکست باکس رو با هم جمع بزنه . بعد چک کنه که اگر ارقام جمع شده تقسیم بر 3 یک عدد اعشاری در اومد یعنی بخش پذیر نیست و اگر غیر از این بود یعنی بخش پذیره .

ولی من نمیدونم که باید به چه صورت این رو به صورت کد بنیویسم.

ممنون میشم اگ راهنماییم کنین.

فک می کنم تمام جزییات رو ذکر کردم و توضیح کاملی رو دادم ولی اگ کسی منظورمو متوجه نشد بگه تا دقیق تر توضیح بدم
__________________________________________________ ______________________________________________
کسایی که اکثر مواقع آنلاین هستند و تسلط کامل به این زبان دارن آیدی منو ادد کنن تا بتونم بیشتر در زمینه های مختلف ازشون راهنمایی بگیرم . seyed.dehnavi@yahoo.com
برای چت کلیک کنید (ymsgr:sendim?seyed.dehnavi)

علی متقی پور
یک شنبه 19 شهریور 1391, 01:10 صبح
سلام دوست عزیز
برای اینکار باید عددی وارد شده در تکست باکس رو به اجزاش تقسیم کنید ( با متد substring )
ولی قبل از اینکار باید بشمارید چند کاراکتره ( به متد count ) تا بعد اونو به همون تعداد تقسیم کنید
و بعد هر کاراکتر رو به یعد عدد تبدیل و بعد جمعش کنید
البته توجه کنید که نیاز هست که کنترل دقیق روی ورودی داشته باشید تا کارکاترهای غیر عددی وارد نشن وگرنه برنامه غاطی میکنه

پاورقی : شاید خود سی شارپ متدی برای همه اینکارها داشته باشه ولی من بهر حال بی اطلاعم

SHD.NET
یک شنبه 19 شهریور 1391, 01:21 صبح
برای اینکار باید عددی وارد شده در تکست باکس رو به اجزاش تقسیم کنید ( با متد substring )
میشه یه مثال بزنید . چون من تا حالا با این متد کار نکردم


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


در آخر باید تقسیم بر 3 بشه که ببینم عدد طبیعیه یا اعشاری .
این کارو چجوری انجام بدم؟

arash020
یک شنبه 19 شهریور 1391, 01:24 صبح
سلام

ببین اینو می خواستی؟

Dim i As Integer
i = Val(Text1.Text) / 3
'MsgBox i * 3 '(Val(Text1.Text) - i)
If Val(Text1.Text) - (i * 3) = 0 Or Text1.Text = 1 Then
MsgBox "است"
ElseIf (Val(Text1.Text) - (Val(Text1.Text) / 3)) <> 0 Then
MsgBox ".نیست"
End If

علی متقی پور
یک شنبه 19 شهریور 1391, 01:50 صبح
میشه یه مثال بزنید . چون من تا حالا با این متد کار نکردم


بله . این کار و کردم از قبل که فقط عدد بپذیره


در آخر باید تقسیم بر 3 بشه که ببینم عدد طبیعیه یا اعشاری .
این کارو چجوری انجام بدم؟

راستش من وی بی را خیلی یادم نمونده و این متد ها رو سی شارپ داره. تقریبا مطمئنم تو وی بی هم همین اسامی را دارن.

h_a_m_i_d
یک شنبه 19 شهریور 1391, 23:35 عصر
سلام دوستان عزیز برای فهمیدن بخش پذیری اعداد راهای ساده تری هم هست
اینم کد

if val(textbox1.text) mod 3=0 then
msgbox ("بخش پذیر است")
else
msgbox ("بخش پذیر نیست")
end if
موفق باشید

h_a_m_i_d
یک شنبه 19 شهریور 1391, 23:42 عصر
ببخشید گفتم شاید کد رو متوجه نشی این تایپیک رو زدم
ساده ترین روش برای بررسی بخش پذیری اعداد به یک عدد خاص اینه که بررسی کنیم ببینیم باقیمانده تقسیم ان عدد به 3 برابر با 0 باشه
یعنی عدد 33 رو اگه به 3 تقسیم کنیم میشه 11 و باقیمانده هم میشه 0 پس یعنی بخش پذیره
حالا برای بدست اوردن باقیمانده دو تقسیم از mod استفاده میشه
این توضیحاتی که باید بدونی
در خط اول از تابع val برای تبدیل رشته به عدد استفاده کردیم تا اگر کاربر حتی متنی هم وارد کرد تنها قسمت عددی انتخاب شود
و بررسی کردیم که اگر باقیمانده جعبه متن اول برابر با 0 بود یعنی بخش پذیر است و در غیر اینصورت بخش پذیر نیست
ببخشید اینقدر زیاد توضیح دادم چون سطح کار کرد تون با vb رو نمیدونستم
امیدوارم تونسته باشم کمکتون کنم
موفق باشید

FastCode
دوشنبه 20 شهریور 1391, 16:08 عصر
از این قشنگتر نتونستم
bool Mod3(string Number){
int Sum = 0
for(int n = 0;n != Number.Length;n++)
{
char Current = Number[n];
if ((Current < 0x0030) || (Current > 0x0039)) throw new ArgumentOutOfRangeException("Number");
Sum += Current - 0x0030;
if (Sum > 10)
Sum -= 9;
}
return (Current == 0) || (Current == 3) || (Current == 6) || (Current == 9);
}

موقعی که میخواستم paste کنم توی Editer ه Forum یادم اومد VB ه.