رفتن به مطلب
  • 0

انجام عملیات ریاضی با دریافت اطلاعات از کاربر


qashqaie

سوال

سلام دوستان

 

یک پروژه کوچیک شخصی برای کارم دارم اما یک قسمتی رو گیر کردم،قسمت عملیات ریاضی...

 

نمونه کاری که میخوام انجام بدم به صورت تصویر پیوست کردم،میتونید ببینید و راهنمایی کنید.

 

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

 

ممنون میشم دوستان راهنمایی کنند با چه روشی بایستی اطلاعات رو از کاربر بگیرم و بر حسب اطلاعات دریافتی فرمول مورد نظرم رو چطوری اعمال کنم تا جواب به کاربر داده بشه؟

post-1211-0-93541700-1447765354_thumb.jpg

لینک ارسال
به اشتراک گذاری در سایت های دیگر

16 پاسخ به این سوال تاکنون داده شده است

ارسال های توصیه شده

خوب باید کنترلش کنید دیگه که خالی نباشه با کدی مثلا زیر

if edit1.text = "" && edit2.text = "" then
toastMessageshow("khataaa",false)
else
toastMessageshow("dorost",false)
end if

میتونید هم یه Try بذارید تا مشکلی نباشه دیگه

	Try
		'codhatoooon'
	Catch
		'agar errori bood in kara anjam beshe'
	End Try
لینک ارسال
به اشتراک گذاری در سایت های دیگر

طیق چیزهایی که دستگیرم شده تا الان کدهای زیر رو نوشتم،اما یک اروری توقسمت IF بهم میده با این عنوان

Syntax error : Statement should Start in new a line

 

این هم کدهایی که نوشتم:

#Region  Project Attributes 
	#ApplicationLabel: B4A Example
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.

End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	
	Private M_vahed As EditText
	Private M_otagh As EditText
	Private M_paziraee As EditText
	Private Hamkaf_khak As RadioButton
	Private Hamkaf_zirzamin As RadioButton
	Private Akhar As RadioButton
	Private Miyani As RadioButton
	Private T_pare_o As EditText
	Private T_pare_p As EditText
	Private Z_package As EditText
	Private Button1 As Button
	Dim jpo As Int
	Dim jpp As Int
	Dim zp As Int
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("fr1")
	
  If Hamkaf_khak.Checked = True Then
  jpo = M_otagh / 1
  jpp = M_paziraee / 1
  zp = (M_vahed / 1) * 125
Else Hamkaf_zirzamin.Checked = True Then
   jpo = M_otagh / .8
  jpp = M_paziraee / .8
  zp = (M_vahed / .8) * 125
Else Akhar.Checked = True Then
   jpo = M_otagh / .8
  jpp = M_paziraee / .8
  zp = (M_vahed / .8) * 125  
Else Miyani.Checked = True Then
   jpo = M_otagh / 1.2
  jpp = M_paziraee / 1.2
  zp = (M_vahed / 1.2) * 125
  End If
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub



Sub RadioButton1_CheckedChange(Checked As Boolean)
	
End Sub
Sub Button1_Click
	T_pare_o.Text = jpo
	T_pare_p.Text = jpp
	Z_package.Text = zp
End Sub

ممنون میشم ایراد کد رو بگید و در صورت امکان بیشتر راهنمایی کنید :gol:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

دوست عزیز اشکال شما در دستور Else  هستش.

باید می نوشتید Else If  که فقط نوشتید Else  و کامپایلر تذکر میده.

یک If بعد هر Else  قرار بدید درست میشه.

و 8. رو به صورت 0.8 بنویسید.

موفق باشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون دوست عزیز

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

post-1211-0-20692600-1447828638_thumb.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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


#Region Project Attributes

#ApplicationLabel: B4A Example

#VersionCode: 1

#VersionName:

'SupportedOrientations possible values: unspecified, landscape or portrait.

#SupportedOrientations: unspecified

#CanInstallToExternalStorage: False

#End Region

#Region Activity Attributes

#FullScreen: False

#IncludeTitle: false

#End Region

Sub Process_Globals

'These global variables will be declared once when the application starts.

'These variables can be accessed from all modules.

End Sub

Sub Globals

'These global variables will be redeclared each time the activity is created.

'These variables can only be accessed from this module.

Private M_vahed As EditText

Private M_otagh As EditText

Private M_paziraee As EditText

Private Hamkaf_khak As RadioButton

Private Hamkaf_zirzamin As RadioButton

Private Akhar As RadioButton

Private Miyani As RadioButton

Private T_pare_o As EditText

Private T_pare_p As EditText

Private Z_package As EditText

Private Button1 As Button

Dim jpo As Double

Dim jpp As Double

Dim zp As Double

Dim jmo As Double

Dim jmp As Double

Dim jmv As Double

End Sub

Sub Activity_Create(FirstTime As Boolean)

'Do not forget to load the layout file created with the visual designer. For example:

Activity.LoadLayout("fr1")

jmo = M_otagh.Text

jmp = M_paziraee.Text

jmv = M_vahed.Text

If Hamkaf_khak.Checked = True Then

jpo = jmo / 1

jpp = jmp / 1

zp = (jmv / 1) * 125

Else If Hamkaf_zirzamin.Checked = True Then

jpo = jmo / 0.8

jpp = jmp / 0.8

zp = (jmv / 0.8) * 125

Else If Akhar.Checked = True Then

jpo = jmo / 0.8

jpp = jmp / 0.8

zp = (jmv / 0.8) * 125

Else if Miyani.Checked = True Then

jpo = jmo / 1.2

jpp = jmp/ 1.2

zp = (jmv / 1.2) * 125

End If

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub RadioButton1_CheckedChange(Checked As Boolean)

End Sub

Sub Button1_Click

T_pare_o.Text = jpo

T_pare_p.Text = jpp

Z_package.Text = zp

End Sub

post-1211-0-57112100-1447829385_thumb.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

یه دیباگ بگیرید دوستم

حسی بهم میگه از ساب کلیک دکمتون خطا میگیره

چون مقدار اولیه ای ممکنه نباشه توی این متغیر ها و ادیت تکست ها خالی میمونن

یه Debug Legacy بگیرید ببینید به کدوم خط گیر میده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

موقع گرفتن دیباگ:

 

program paused on line:47

jmo = M_otagh.text

 

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

 

البته این رو هم بگم که نرم افزار موقع اجرا قاعدتا عددی توی ادیت تکست ها نیست...! (گفتم شاید کمکی باشه تو کمکهاتون... :fekr: )

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب :)

پس شما باید توی رویداد کلیک دکمه ای مثلا دکمه ی حساب یا همچین چیزی، مقار بگیری و چک کنی که اگه ادیت تکست هاتون خالی بود، پیام بده که مقادیر رو وارد نکردید :)

اگر درست متوجهش نشدید یا توی اون پیام که در صورت خالی بودن ادیت تکست ها میده، مشکلی داشتید، بپرسید :)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب :)

پس شما باید توی رویداد کلیک دکمه ای مثلا دکمه ی حساب یا همچین چیزی، مقار بگیری و چک کنی که اگه ادیت تکست هاتون خالی بود، پیام بده که مقادیر رو وارد نکردید :)

اگر درست متوجهش نشدید یا توی اون پیام که در صورت خالی بودن ادیت تکست ها میده، مشکلی داشتید، بپرسید :)

اگر درست فهمیده باشم شما میفرمایید توی رویداد زیر بایستی یک دستور شرطی قرار بدم تا چک کنه ببینه ادیت تکست های 1 تا 3 خالی هست یا نه...!

Sub Button1_Click
	T_pare_o.Text = jpo
	T_pare_p.Text = jpp
	Z_package.Text = zp
End Sub

خب حالا چک کردن رو نمیدونم چطوری هست؟

یعنی باید if تعریف کنم؟ بعد بگم مثلا اگر jpo = "" بیا بگو متراژ اتاق ها را وارد کنید؟

 

اگر امکان داره یک sample برام بزارید تا متوجه بشم،ولی کامل نگید...(هر وقت مجبور میشم خودم با کدها کلنجار برم بهتر یاد میگیرم :fekr: )

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کد زیر رو از طریق جستجو در انجمن پیدا کردم و در کدها قرار دادم

Sub Button1_Click
 If M_vahed.Text.Length <> 0 Then
 ToastMessageShow("مساحت واحد وارد شده است",False)
Else
 ToastMessageShow("لطفا مساحت زیربنایی کل واحد را وارد کنید",False)
End If
 If M_otagh.Text.Length <> 0 Then
 ToastMessageShow("مساحت اتاق وارد شده است",False)
Else
 ToastMessageShow("لطفا مساحت اتاق ها را وارد کنید",False)
End If
If M_paziraee.Text.Length <> 0 Then
 ToastMessageShow("مساحت پذیرایی وارد شده است",False)
Else
 ToastMessageShow("لطفا مساحت پذیرایی را وارد کنید",False)
End If

	T_pare_o.Text = jpo
	T_pare_p.Text = jpp
	Z_package.Text = zp
End Sub

میاد از طریق if موقع کلیک کردن جهت محاسبه خالی بودن ادیت تکست هارو چک میکنه...! موقع کامپایل نرم افزار و چک کردم دکمه Button هم درست چک میکنه...!

 

اما همچنان ارور قبلی پابرجاست ومعادلات هم درست محاسبه نمیشه(جواب صفر در میاد)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ببینید

گیر شنا این سه خطه

	jmo = M_otagh.Text
	jmp = M_paziraee.Text
	jmv = M_vahed.Text

میخواین به متغیر ها مقدار بدید اما موقع اجرا مقداری توی ادیت تکست ها نیست، پس متغیر ها مقدار نمیگیرن

یه مثال میزنم

میخواین دوتا عدد رو جمع کنید

تو رویداد دکمه مساوی به شکل زیر کار میکنید

dim num1 as int
dim num2 as int
num1 = ed1.text
num2 = ed2.text
msgbox(num1 + num2,"haasel")

شما همون اول کار مقدار میریزید توی متغیر ها

باید وقتی روی یه دکمه ای کلیک شد، مقدار ادیت تکست رو بدید به متغیر ها

لینک ارسال
به اشتراک گذاری در سایت های دیگر

جناب اسکندری ممنون از راهنمایی تون

 

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

jmo = M_otagh.Text
	jmp = M_paziraee.Text
	jmv = M_vahed.Text
If Hamkaf_khak.Checked = True Then
  jpo = jmo / 1
  jpp = jmp / 1
  zp = (jmv / 1) * 125
Else If Hamkaf_zirzamin.Checked = True Then
   jpo = jmo / 0.8
  jpp = jmp / 0.8
  zp = (jmv / 0.8) * 125
Else If Akhar.Checked = True Then
   jpo = jmo / 0.8
  jpp = jmp / 0.8
  zp = (jmv / 0.8) * 125  
Else if Miyani.Checked = True Then
   jpo = jmo / 1.2
  jpp = jmp / 1.2
  zp = (jmv / 1.2) * 125
  End If
لینک ارسال
به اشتراک گذاری در سایت های دیگر

حالا اگر edittext های اول تا سوم خالی نباشه درست عمل میکنه و نتایج رو درست تو edittext های پایین میاره اما اگر یکی از مقادیر اول تا سوم خالی باشه و کاربر روی دکمه Button کلیک کنه جهت محاسبه ارور میده...(ارور دقیقا همون ارور بالاست و تو دیباگ گرفتن هم دقیقا روی همون شناسه jmo = M_otagh.text گیر میکنه و ارور میده)

 

این هم کد قسمت Button

Sub Button1_Click	

If M_vahed.Text="" Then
Msgbox("Enter name","ERROR")
End If
    If M_otagh.Text="" Then
    Msgbox("Enter family","ERROR")
    End If
        If M_paziraee.Text="" Then
        Msgbox("Enter age","ERROR")
        End If

   jmo = M_otagh.Text
	jmp = M_paziraee.Text
	jmv = M_vahed.Text
If Hamkaf_khak.Checked = True Then
  jpo = jmo / 1
  jpp = jmp / 1
  zp = (jmv / 1) * 125
Else If Hamkaf_zirzamin.Checked = True Then
   jpo = jmo / 0.8
  jpp = jmp / 0.8
  zp = (jmv / 0.8) * 125
Else If Akhar.Checked = True Then
   jpo = jmo / 0.8
  jpp = jmp / 0.8
  zp = (jmv / 0.8) * 125  
Else if Miyani.Checked = True Then
   jpo = jmo / 1.2
  jpp = jmp / 1.2
  zp = (jmv / 1.2) * 125
  End If

	 T_pare_o.Text = jpo
	T_pare_p.Text = jpp
	Z_package.Text = zp
End Sub

سورس رو هم پیوست کردم که کامل بتونید بررسی کنید و ایراد رو بهم بگید...

 

Package_Radiator.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

درود.

خب گزینه های 1،2 و3 مشخص هست ، باید عدد رو بگیرید و ضرب در خودش بکنید.

اما بقیه رو نفهمیدم اصلا معلوم نیست.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

درود.

خب گزینه های 1،2 و3 مشخص هست ، باید عدد رو بگیرید و ضرب در خودش بکنید.

اما بقیه رو نفهمیدم اصلا معلوم نیست.

جناب نیکروان چطور بگیرم میشه بیشتر راهنمایی کنید.

گزینه چهارم بستگی انتخاب کاربر داره،،چهار مورد هست که کاربر هر کدوم رو که انتخاب کنه،یک فرمول باید اجرا بشه.اعداد فرمولها هم از اعداد ۱ تا ۳ هست.

تو سه تا گزینه آخری هم باید جواب فرمولها بعد محاسبه درج بشه....

لینک ارسال
به اشتراک گذاری در سایت های دیگر

فرمول بدست آوردن موارد دیگه رو که ما نمی دونیم! باید فرمول ریاضی اون چند مورد رو پیاده سازی کنید که تاپیک های زیر می تونه کمکتون کنه! اولی سورس یک ماشین حساب حرفه ای هست که اکثر اعمال ریاضی رو داره و دومی آموزش نوشتن فانکشن ها و اعمال ریاضی هست!

http://answercenter.ir/topic/6919-%D8%B3%D9%88%D8%B1%D8%B3-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D8%AD%D8%B3%D8%A7%D8%A8-%D9%81%D9%88%D9%82-%D9%81%D9%88%D9%82-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%B3%D9%88%D9%BE%D8%B1%D8%A7%DB%8C%D8%B2/

http://answercenter.ir/topic/5844-%DA%AF%D8%A7%D9%85-%D9%87%D9%81%D8%AA%D9%85-%DA%A9%D8%AF%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%85%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85/

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...