ورود

View Full Version : راهنمایی برای جمع و ضرب اعداد؟!



Heidari66
دوشنبه 07 تیر 1389, 16:19 عصر
سلام
اینجا رو ببینید:

Private Sub Sum_Click()

Dim x1 As Long
Dim x2 As Long
Dim x3 As Long
Dim x4 As Long

x1 = Val(1.Text)
x2 = Val(2.Text)
x3 = Val(3.Text)
x4 = Val(4.Text)

sumn.Caption = Val(x1 + x2 + x3 + x4 )
End Sub

حالا چکار کنم وقتی دکمه sum رو زدم x1 به اضافه 500 بشه ، x2 به اضافه 200 بشه ، x3 ضربدر 300 بشه و x4 منهای 400 بشه؟!

به این صورت نوشتم :
x1 = Val(1.Text) +350
x2 = Val(2.Text) *300
x3 = Val(3.Text) -500

وقتی برنامه رو باز میکنم ، داخل تکست باکس خالیه یعنی عددی وارد نکردم ولی حاصل جمع اینهارو مینویسه!!!

ممنون

ahmads
دوشنبه 07 تیر 1389, 16:37 عصر
درست منظورتون رو متوجه نشدم اما برای :


وقتی برنامه رو باز میکنم ، داخل تکست باکس خالیه یعنی عددی وارد نکردم ولی حاصل جمع اینهارو مینویسه!!!اکه بنویسه درسته، تکست ها رو خالی در نظر بگیرید حالا داریم :


x1 = 0+350
x2 = 0 *300
x3 = 0 -500بنابراین نتیجه رو باید -150 نشون بده،


حالا چکار کنم وقتی دکمه sum رو زدم x1 به اضافه 500 بشه ، x2 به اضافه 200 بشه ، x3 ضربدر 300 بشه و x4 منهای 400 بشه؟!
x1 = x1+500
x2 = x2+200
x3 = x3 *300
x4=x4-400با توجه به متغیرهای که تعریف کردید دیگه برای جمعشون لزومی نداره از تابع val استفاده کنید، بنابراین نتیجه کلی ( در صورتی که جمعشون مد نظرتون باشه ) برای نمایش در ویژگی caption کلید اینطوری میشه :


sum.caption = x1+x2+x3+x4

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


if x1 <>0 and x2<>0 and x3<> 0 and x4 <>0 then
sum.caption = x1+x2+x3+x4
end if

تو کد بالا اگه یکیشون مقدار صفر داشته باشه دیگه عملیات انجام نمیشه ، اگر هم بعضی هاش میتونن خالی باشن و بعضی هاش هم نه از عملگر منطقی or هم کمک بگیرید

Heidari66
دوشنبه 07 تیر 1389, 18:21 عصر
sum.caption = x1+x2+x3+x4و اگه میخواید که وقتی یکی از تکست ها خالی هست نتیجه ای ننویسه میتونید از توابع شرطی و عمل گرهای منطقی استفاده کنید به این شکل که


if x1 <>0 and x2<>0 and x3<> 0 and x4 <>0 then
sum.caption = x1+x2+x3+x4
end if
تو کد بالا اگه یکیشون مقدار صفر داشته باشه دیگه عملیات انجام نمیشه ، اگر هم بعضی هاش میتونن خالی باشن و بعضی هاش هم نه از عملگر منطقی or هم کمک بگیرید

منظورم همینجاست...
وقتی تکست باکس رو خالی میزارم و دکمه sum رو میزنم ولی باز اعداد 350 و 500 با هم جمع میشن
از if استفاده کردم ولی جواب نمیده ، یعنی وقتی عددی وارد میکنم و دکمه sum رو میزنم اتفاقی نمیفته

Dr.Bronx
دوشنبه 07 تیر 1389, 19:35 عصر
dim x1 as long,x2 as long,x3 as long,x4 as long

if len(text1) > 0 and len(text2) > 0 and len(text3) > 0 and len(text4) > 0 then
x1 = val(text1) + 100
x2 = val(text2) + 200
x3 = val(text3) + 300
x4 = val(text4) + 400
sumn.Caption = Val(x1 + x2 + x3 + x4 )
else
msgbox "Enter the numbers in textbox"
end if

Heidari66
سه شنبه 08 تیر 1389, 00:12 صبح
dim x1 as long,x2 as long,x3 as long,x4 as long

if len(text1) > 0 and len(text2) > 0 and len(text3) > 0 and len(text4) > 0 then
x1 = val(text1) + 100
x2 = val(text2) + 200
x3 = val(text3) + 300
x4 = val(text4) + 400
sumn.Caption = Val(x1 + x2 + x3 + x4 )
else
msgbox "Enter the numbers in textbox"
end if



ولی باید به تمام تکست باکس ها عدد بدیم ، و اگر یکی از تکست باکس هارو خالی بزاریم پیغام میده!!!

ahmads
سه شنبه 08 تیر 1389, 01:46 صبح
ولی باید به تمام تکست باکس ها عدد بدیم ، و اگر یکی از تکست باکس هارو خالی بزاریم پیغام میده!!!

if len(text1) > 0 and len(text2) > 0 and len(text3) > 0 and len(text4) > 0 thenایشون تعداد کاراکترهای وارد شده رو مد نظر قرار دادن و از عملگر منطقی And استفاده کردن،
بنابراین و بنابر منطق ریاضی هر وقت تمامی شرط های داده شده صحیح باشن ( یعنی همه تکست باکس ها حداقل یه عدد توشون باشه ) برنامه عمل میکنه .
حالا بسته به نیاز خودتون And رو تغییر بدید، فرضا اگه حداقل یکی از تکست باکس ها هم عدد داشته باشه برای انجام عملیات براتون کافی باشه میتونید And ها رو حذف کنید به جاش Or بنویسید، عملگرد های دیگه ای هم داریم که میتونید توی انجمن جستجو کنید .

اینو توی کد پست بالا جایگزین کنید ببینید مشکلتون رفع میشه :

if len(text1) > 0 or len(text2) > 0 or len(text3) > 0 or len(text4) > 0 then

Dr.Bronx
سه شنبه 08 تیر 1389, 11:42 صبح
خوب
حالا میشه یه کار دیگه هم کرد

dim x1 as long,x2 as long,x3 as long,x4 as long

if len(text1) > 0 and len(text2) > 0 and len(text3) > 0 and len(text4) > 0 then
if isnumeric(text1) and isnumeric(text2)and isnumeric(text3) and isnumeric(text4) then

x1 = val(text1) + 100
x2 = val(text2) + 200
x3 = val(text3) + 300
x4 = val(text4) + 400
sumn.Caption = Val(x1 + x2 + x3 + x4 )
else
msgbox "feghat adad vared konid"
end if
else
msgbox "tamame textbox ha ro por konid"
end if


اینجوری چک میشه که اول تکست باکس ها خالی نباشند و اگر شرط برقرار بود اون وقت چک میشه که حتما عدد باشد و بعد دستورات اجرا میشه .

موفق باشید ./

Heidari66
سه شنبه 08 تیر 1389, 13:09 عصر
دوستان ممنون از راهنمایی های مفیدتون
بالاخره با کمک شما و استفاده از مغز فندقی خودم به نتیجه موردنظرم رسیدم:لبخند:

اینجوری میشه:



Private Sub sum_Click()

Dim x1 As Long, x2 As Long, x3 As Long, x4 As Long

x1 = Val(Text1.Text)
x2 = Val(Text2.Text)
x3 = Val(Text3.Text)
x4 = Val(Text4.Text)

If x1 = 0 Then
x1 = Val(Text1.Text) + 0
Else
x1 = Val(Text1.Text) + 100
End If

If x2 = 0 Then
x2 = Val(Text2.Text) + 0
Else
x2 = Val(Text2.Text) + 200
End If

If x3 = 0 Then
x3 = Val(Text3.Text) + 0
Else
x3 = Val(Text3.Text) + 300
End If

If x4 = 0 Then
x4 = Val(Text4.Text) + 0
Else
x4 = Val(Text4.Text) + 400


End If

Label1.Caption = Val(x1 + x2 + x3 + x4)


End Sub

Dr.Bronx
سه شنبه 08 تیر 1389, 13:12 عصر
خوب اومدیم و x1 , x2, x3 , x4 هیچ کدوم مساوی با 0 نبود
اونوقت چی ؟

بعد Label1.Caption = Val(x1 + x2 + x3 + x4) اجرا میشه که خوب باز هم همون قضیه اولی پیش میاد .

توی کدی که من نوشتم فکر نمی کنم مشکلی داشته باشه . شرط ها همه بررسی میشه .

Heidari66
سه شنبه 08 تیر 1389, 18:15 عصر
خوب اومدیم و x1 , x2, x3 , x4 هیچ کدوم مساوی با 0 نبود
اونوقت چی ؟

بعد Label1.Caption = Val(x1 + x2 + x3 + x4) اجرا میشه که خوب باز هم همون قضیه اولی پیش میاد .

توی کدی که من نوشتم فکر نمی کنم مشکلی داشته باشه . شرط ها همه بررسی میشه .

خوب شما هر عدد صحیح داخل x1 یا x2 بزارید به اضافه اون عددی میشه که براش تعرف کردیم
کدی هم گذاشتم که اصلا نشه برای تکست باکس ها حروف وارد کرد
اون کدی که شما دادی ، باید به تمام تکست باکس ها عدد میدادیم تا حاصل جمع رو بده ، حتی اگر صفر هم میگذاشتیم باز هم جمع کل برابر اعداد اضافه شده میشد
من میخواستم وقتی یه تکست باکس عدد داده نشد اون جمع نشه...


من برنامه رو ضمیمه میکنم ببینید:
http://heidari66.persiangig.com/11.rar

Dr.Bronx
سه شنبه 08 تیر 1389, 20:24 عصر
حتی اگر صفر هم میگذاشتیم باز هم جمع کل برابر اعداد اضافه شده میشد

خوب 100 + 0 = ؟

هر عددی رو به اضافه 0 کنید همون عدد میشه دیگه !


من میخواستم وقتی یه تکست باکس عدد داده نشد اون جمع نشه...
شرط دومی که گزاشتم کارش همینه دیگه
IsNumeric چک میکنه که حتما عدد وارد شده باشه .

به هر حال . خوشحالم که مشکلتون حل شد .

موفق باشید ./