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

مشکل در محاسبات


mverkiani

سوال

سلام خدمت اساتید و اعضای محترم انجمن بیسیک

 

معذرت می خوام یه مشکلی تو نوشتن برنامه جدیدم داشتم  که ارورSyntax Error  میده

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	Dim p As Float
	Dim q As Float
	Dim m As Float
	Dim f As Float
	Dim r As Float
	Private btn1 As Button
	Private ed1 As EditText
	Private ed2 As EditText
	Private ed3 As EditText
	Private ed4 As EditText
	Private ed5 As EditText
	Private img1 As ImageView
	Private pnl As Panel
	Private lbl1 As Label
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("get")
	img1.SetLayout(10%x,5%y,90%x,30%y)
	pnl.SetLayout(0,0,100%x,100%y)
	ed1.SetLayout(5%x,50%y,40%x,5%y)
	ed2.SetLayout(5%x,63%y,40%x,5%y)
	ed3.SetLayout(5%x,70%y,40%x,5%y)
	ed4.SetLayout(5%x,77%y,40%x,5%y)
	lbl1.SetLayout(50%x,50%y,45%x,45%y)
	btn1.SetLayout(5%x,80%y,47%x,15%y)
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub



Sub btn1_Click
	
End Sub


Sub ed4_TextChanged (Old As String, New As String)
	r=ed4.Text
End Sub
Sub ed3_TextChanged (Old As String, New As String)
	f=ed3.Text
End Sub
Sub ed2_TextChanged (Old As String, New As String)
	q=ed2.Text
End Sub
Sub ed1_TextChanged (Old As String, New As String)
	p=ed1.Text
End Sub

Sub ed5_TextChanged (Old As String, New As String)
	m=ed1.Text
End Sub




Sub know
	If p<>Null AND q<>Null Then
		Dim kanoon As Float
		kanoon=(q*p)/(q+p)
		lbl1.Text="  کانون آینه:  "&kanoon&"  شعاع آینه: "&kanoon*2&"  بزرگنمایی آینه  " &q/p
	Else If p<>Null AND f<>Null Then
		
	End If
End Sub

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

دارم برنامه ای رو برای فیزیک طراحی می کنم که تو این 5 تکست ویو اعدادی رو میگیره(تنها 2 عدد کافیه)که شامل کانون و فاصله جسم از آینه و ... است و ممکنه اعشاری باشه

و سپس بعد از محاسباتی اعداد دیگر رو تحویل میده.

حالا نمی دونم کجاش رو اشتباه کردم اگه میشه راهنمایی کنید

 

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

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

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

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

اینم کد ها،   ولی سورس رو نمی زارم چون چیز های دیگه هم دارم که به دلیل فروشی بودن نرم افزار معذورم از گذاشتنشون

 

امیدوارم کد هارو متوجه بشین  :crazy:  :S  :eynak:


#Region  Activity Attributes 
	#FullScreen: True
	#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.
	Dim no As Int
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.
	Dim p,q,m,f,r As Float
	Private btn1 As Button
	Private ed1 As EditText
	Private ed2 As EditText
	Private ed3 As EditText
	Private ed4 As EditText
	Private ed5 As EditText
	Private img1 As ImageView
	Private pnl As Panel
	Private lbl1 As Label
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("get")
	pnl.SetLayout(0,0,100%x,100%y)
	img1.SetLayout(10%x,5%y,80%x,30%y)
	ed1.SetLayout(5%x,50%y,40%x,5%y)
	ed2.SetLayout(5%x,57%y,40%x,5%y)
	ed3.SetLayout(5%x,64%y,40%x,5%y)
	ed4.SetLayout(5%x,71%y,40%x,5%y)
	ed5.SetLayout(5%x,78%y,40%x,5%y)
	lbl1.SetLayout(50%x,50%y,45%x,45%y)
	btn1.SetLayout(5%x,85%y,47%x,13%y)
	
End Sub
Sub Activity_Resume

End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub


Sub btn1_Click
	If IsNumber(ed1.Text) AND ed1.Text>0 Then
		p=ed1.Text
	Else
		ToastMessageShow("فاصله جسم از آینه تنها مقادیر مثبت و عددی می تواند باشد",False)
	End If
	If IsNumber(ed2.Text) Then
		q=ed2.Text
	End If
	If IsNumber(ed3.Text) Then
		f=ed3.Text
	End If
	If IsNumber(ed4.Text) Then
		f=ed4.Text
	End If
	If IsNumber(ed5.Text) AND ed5.Text>0 Then
		m=ed5.Text
	End If
	If no=1 Then
		Dim re2 As Int
		re2 = tashkhis
		Select re2
			Case 12
				f=(q*p)/(q+p)
				r=f+f
				m=Abs(q/p)
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				If q>f Then
					If p=f Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onF.jpg")
					Else If p>f AND p<r Then 
						img1.Bitmap=LoadBitmap(File.DirAssets,"F-C.jpg")
					Else If p=r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onC.jpg")
					Else If p>r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"outC.jpg")
					End If
				Else If q=f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"Out.jpg")
				Else If q<f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"0-F.jpg")
				Else
					img1.Color=Colors.White
				End If
				
			Case 13
				r=f+f
				If p=f Then
					lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
					lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:      بی نهایت"& CRLF
					lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
					lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
					lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:      نامشخص"
				Else 
					q=p*f/(p-f)
					m=Abs(q/p)
					lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
					lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
					lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
					lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
					lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				End If
				If q>f Then
					If p=f Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onF.jpg")
					Else If p>f AND p<r Then 
						img1.Bitmap=LoadBitmap(File.DirAssets,"F-C.jpg")
					Else If p=r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onC.jpg")
					Else If p>r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"outC.jpg")
					End If
				Else If q=f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"Out.jpg")
				Else If q<f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"0-F.jpg")
				Else
					img1.Color=Colors.White
				End If
				
			Case 14
				f=r/2
				q=(p*f)/(p-f)
				m=Abs(q/p)
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				If q>f Then
					If p=f Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onF.jpg")
					Else If p>f AND p<r Then 
						img1.Bitmap=LoadBitmap(File.DirAssets,"F-C.jpg")
					Else If p=r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onC.jpg")
					Else If p>r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"outC.jpg")
					End If
				Else If q=f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"Out.jpg")
				Else If q<f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"0-F.jpg")
				Else
					img1.Color=Colors.White
				End If
				
			Case 15
				q=m*p
				f=(q*p)/(q+p)
				r=f+f
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				If q>f Then
					If p=f Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onF.jpg")
					Else If p>f AND p<r Then 
						img1.Bitmap=LoadBitmap(File.DirAssets,"F-C.jpg")
					Else If p=r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onC.jpg")
					Else If p>r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"outC.jpg")
					End If
				Else If q=f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"Out.jpg")
				Else If q<f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"0-F.jpg")
				Else
					img1.Color=Colors.White
				End If
			
			Case 23
				p=q*f/(q-f)
				r=f*2
				m=Abs(q/p)
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				If q>f Then
					If p=f Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onF.jpg")
					Else If p>f AND p<r Then 
						img1.Bitmap=LoadBitmap(File.DirAssets,"F-C.jpg")
					Else If p=r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onC.jpg")
					Else If p>r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"outC.jpg")
					End If
				Else If q=f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"Out.jpg")
				Else If q<f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"0-F.jpg")
				Else
					img1.Color=Colors.White
				End If
				
			Case 24
				f=r/2
				p=q*f/(q-f)
				m=Abs(q/p)
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				If q>f Then
					If p=f Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onF.jpg")
					Else If p>f AND p<r Then 
						img1.Bitmap=LoadBitmap(File.DirAssets,"F-C.jpg")
					Else If p=r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onC.jpg")
					Else If p>r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"outC.jpg")
					End If
				Else If q=f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"Out.jpg")
				Else If q<f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"0-F.jpg")
				Else
					img1.Color=Colors.White
				End If
				
			Case 25
				p=q/m
				f=p*q/(p+q)
				r=f*2
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				If q>f Then
					If p=f Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onF.jpg")
					Else If p>f AND p<r Then 
						img1.Bitmap=LoadBitmap(File.DirAssets,"F-C.jpg")
					Else If p=r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"onC.jpg")
					Else If p>r Then
						img1.Bitmap=LoadBitmap(File.DirAssets,"outC.jpg")
					End If
				Else If q=f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"Out.jpg")
				Else If q<f Then
					img1.Bitmap=LoadBitmap(File.DirAssets,"0-F.jpg")
				Else
					img1.Color=Colors.White
				End If
			
			Case 34
				
				lbl1.Text=" فاصله جسم تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&" بزرگنمایی آینه:   اطلاعات کافی نیست"
			
			
			Case 35
				r=f*2
				lbl1.Text=" فاصله جسم تا آینه:   اطلاعات کافی نیست" &CRLF
				lbl1.Text=lbl1.Text&" فاصله تصویر تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                 "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                  "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:              "&m
			
			
			Case 45
				f=r/2
				lbl1.Text="  فاصله جسم تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:             "&m
			
			
			Case 99
				ToastMessageShow("More information",False)
		End Select
	Else If no = 2 Then
		Dim re1 As Int
		re1 = tashkhis
		Select re1
			Case 12
				
				m=Abs(q/p)
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				
				
			Case 13
				q=p*f/(p-f)
				r=f+f
				m=Abs(q/p)
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				
				
			Case 14
				f=r/2
				q=(p*f)/(p-f)
				m=Abs(q/p)
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				
				
			Case 15
				q=m*p
				f=(q*p)/(q+p)
				r=f+f
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
			
			
			Case 23
				p=q*f/(q-f)
				r=f*2
				m=Abs(q/p)
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				
				
			Case 24
				f=r/2
				p=q*f/(q-f)
				m=Abs(q/p)
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				
				
			Case 25
				p=q/m
				f=p*q/(p+q)
				r=f*2
				lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:            "&m
				
			
			Case 34
				
				lbl1.Text=" فاصله جسم تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&" بزرگنمایی آینه:   اطلاعات کافی نیست"
			
			
			Case 35
				r=f*2
				lbl1.Text=" فاصله جسم تا آینه:   اطلاعات کافی نیست" &CRLF
				lbl1.Text=lbl1.Text&" فاصله تصویر تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                 "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                  "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:              "&m
			
			
			Case 45
				f=r/2
				lbl1.Text="  فاصله جسم تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:   اطلاعات کافی نیست"& CRLF
				lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
				lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
				lbl1.Text=lbl1.Text&"  بزرگنمایی آینه:             "&m
			
			
			Case 99
				ToastMessageShow("More information",False)
		End Select
	End If
	
	ed1.Text=""
	ed2.Text=""
	ed3.Text=""
	ed4.Text=""
	ed5.Text=""
	ed1.RequestFocus
End Sub


Sub tashkhis As Int
	If ed1.Text.Length<>0 Then
		Dim x As Int
		If ed2.Text.Length<>0  Then
			x=12
		Else If	ed3.Text.Length<>0  Then
			x=13
		Else If ed4.Text.Length<>0  Then
			x=14
		Else If ed5.Text.Length<>0  Then
			x= 15
		Else
			x= 99
		End If
			
	Else If ed2.Text.Length<>0 Then
		If	ed3.Text.Length<>0 Then
			x= 23
		Else If ed4.Text.Length<>0 Then
			x= 24
		Else If ed5.Text.Length<>0 Then
			x= 25
		Else
			x= 99
		End If
		
	Else If ed3.Text.Length<>0 Then
		If ed4.Text.Length<>0 Then
			x= 34
		Else If ed5.Text.Length<>0 Then
			x= 35
		Else
			x= 99
		End If
		
	Else If ed4.Text.Length<>0 Then
		If ed5.Text.Length<>0 Then
			x= 45
		Else 
			x= 99
		End If
	End If
	Return x
	
End Sub

' // با تشکر از تمامی کسانی که کمک کردن 
لینک ارسال
به اشتراک گذاری در سایت های دیگر

سوال دیگه داشتم اینکه اگه که همین کد های بالا رو دیده باشید می دونید که الان 5 تا Edit text دارم

می خوام عملیات تنها در صورتی انجام بشه که حد اقل 2 تا از این تکست ادیت ها پر باشه در غیر این صورت پیغامی چه به صورت msgbox و یا toast به کاربر بده که اطلاعات کافی نیست.

این هم کد های من(خیلی خنگ بازی دی آوردم و طولانی نوشتم ولی راهی به ذهنم نرسید :D)

Sub tashkhis As Int
	
	If ed1.Text<>Null Then
		If ed2.Text<>Null Then
			Return 12
		Else If	ed3.Text<>Null Then
			Return 13
		Else If ed4.Text<>Null Then
			Return 14
		Else If ed5.Text<>Null Then
			Return 15
		End If
		
		
	Else If ed2.Text<>Null Then
		If ed1.Text<>Null Then
			Return 21
		Else If	ed3.Text<>Null Then
			Return 23
		Else If ed4.Text<>Null Then
			Return 24
		Else If ed5.Text<>Null Then
			Return 25
		End If
		
		
	Else If ed3.Text<>Null Then
		If ed1.Text<>Null Then
			Return 31
		Else If	ed2.Text<>Null Then
			Return 32
		Else If ed4.Text<>Null Then
			Return 34
		Else If ed5.Text<>Null Then
			Return 35
		End If
		
	
	Else If ed4.Text<>Null Then
		If ed1.Text<>Null Then
			Return 41
		Else If	ed2.Text<>Null Then
			Return 42
		Else If ed3.Text<>Null Then
			Return 43
		Else If ed5.Text<>Null Then
			Return 45
		End If
		
	
	
	Else If ed5.Text<>Null Then
		If ed1.Text<>Null Then
			Return 51
		Else If	ed2.Text<>Null Then
			Return 52
		Else If ed3.Text<>Null Then
			Return 53
		Else If ed4.Text<>Null Then
			Return 54
		End If
	Else 
		Msgbox(
		ToastMessageShow("اصلاعات کم وارد شده است",False)
	End If
End Sub

ولی کار نمی کنه و حتی با وارد کمردن 1 مقدار هم عملیات انجام میشه و جواب رو هم نشون میده البته اشتباه (خیلی عجیبه آخه اگه مقادری نباشه اون دستورات ریاضی کار نمیکنه ولی...)

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

Sub btn1_Click

	If IsNumber(ed1.Text) Then
		p=ed1.Text
	End If
'/////////////////
	If IsNumber(ed2.Text) Then
		q=ed2.Text
	End If
'/////////////////
	If IsNumber(ed3.Text) Then
		f=ed3.Text
	End If
'/////////////////
	If IsNumber(ed4.Text) Then
		r=ed4.Text
	End If
'////////////////
	If IsNumber(ed5.Text) Then
		m=ed5.Text
	End If
'////////////////
	
	Dim re As Int
	re=tashkhis
	Select re
		Case 12
			f=(q*p)/(q+p)
			r=f+f
			m=(q/p)
			lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
			lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
			lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
			lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
			lbl1.Text=lbl1.Text&"  بزرگنمایی آینه             "&m
			ed1.Text=Null
			ed2.Text=Null
			ed3.Text=Null
			ed4.Text=Null
			ed5.Text=Null
		Case 13
			q=(p*f)/(p-f)
			r=f+f
			m=q/p
			lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
			lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
			lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
			lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
			lbl1.Text=lbl1.Text&"  بزرگنمایی آینه             "&m
			ed1.Text=Null
			ed2.Text=Null
			ed3.Text=Null
			ed4.Text=Null
			ed5.Text=Null
		Case 14
			f=r/2
			q=(p*f)/(p-f)
			m=(q/p)
			lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
			lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
			lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
			lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
			lbl1.Text=lbl1.Text&"  بزرگنمایی آینه             "&m
			ed1.Text=Null
			ed2.Text=Null
			ed3.Text=Null
			ed4.Text=Null
			ed5.Text=Null
		Case 15
			q=m*p
			f=(q*p)/(q+p)
			r=f+f
			lbl1.Text="  فاصله جسم تا آینه:         "&p& CRLF
			lbl1.Text=lbl1.Text&"  فاصله تصویر تا آینه:       "&q& CRLF
			lbl1.Text=lbl1.Text&"  کانون آینه:                "&f& CRLF
			lbl1.Text=lbl1.Text&"  شعاع آینه:                 "&r& CRLF
			lbl1.Text=lbl1.Text&"  بزرگنمایی آینه             "&m
			ed1.Text=Null
			ed2.Text=Null
			ed3.Text=Null
			ed4.Text=Null
			ed5.Text=Null
		Case Else
			Msgbox("hanooz nasakhtam","NotFound")
	End Select

و تازه بعد از انجام هم عملیات رو در بعضی موارد اشتباه انجام میده و جواب درست نمیده

 

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

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

سلام

یکم شلوغ پلوغ شده گیج شدم :crazy:

خب شما سعی کن زیاد Null  استفاده نکنی.

مثلا شرط خالی نبودن اینو بزار :

 	If  edt1.Text.Length <> 0 Then
	
	End If

و واسه ادیت تکست هم اگه قصد داری متنشو حذف کنی یا همون خالیش کنی اینجور عمل کن :

ed1.Text=""

بازم مشکلی داشتی سورستو پیوست کن واست راست و ریسش میکنم :eynak:

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

سلام

کد رویداد های تکست چینج رو اینطور بنویس :

Sub ed4_TextChanged (Old As String, New As String)
   if IsNumber(ed4.Text) Then
	r=ed4.Text
	End If
End Sub
Sub ed3_TextChanged (Old As String, New As String)
   if IsNumber(ed3.Text) Then
	f=ed3.Text
	End If
End Sub
Sub ed2_TextChanged (Old As String, New As String)
   if IsNumber(ed2.Text) Then
	q=ed2.Text
	End If
	
End Sub
Sub ed1_TextChanged (Old As String, New As String)
 if IsNumber(ed1.Text) Then
	p=ed1.Text
	End If
End Sub

Sub ed5_TextChanged (Old As String, New As String)
   if IsNumber(ed1.Text) Then
	m=ed1.Text
	End If
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

سلام

کد رویداد های تکست چینج رو اینطور بنویس :

Sub ed4_TextChanged (Old As String, New As String)
   if IsNumber(ed4.Text) Then
	r=ed4.Text
	End If
End Sub
Sub ed3_TextChanged (Old As String, New As String)
   if IsNumber(ed3.Text) Then
	f=ed3.Text
	End If
End Sub
Sub ed2_TextChanged (Old As String, New As String)
   if IsNumber(ed2.Text) Then
	q=ed2.Text
	End If
	
End Sub
Sub ed1_TextChanged (Old As String, New As String)
 if IsNumber(ed1.Text) Then
	p=ed1.Text
	End If
End Sub

Sub ed5_TextChanged (Old As String, New As String)
   if IsNumber(ed1.Text) Then
	m=ed1.Text
	End If
End Sub

 ممنون ولی از این راه حل نشد 

 یه کار دیگه کردم اینکه 

#Region  Activity Attributes 
	#FullScreen: True
	#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.
	Dim pg,no As Int
	
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.
	Dim p As Float
	Dim q As Float
	Dim m As Float
	Dim f As Float
	Dim r As Float
	Private btn1 As Button
	Private ed1 As EditText
	Private ed2 As EditText
	Private ed3 As EditText
	Private ed4 As EditText
	Private ed5 As EditText
	Private img1 As ImageView
	Private pnl As Panel
	Private lbl1 As Label
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("get")
	pnl.SetLayout(0,0,100%x,100%y)
	img1.SetLayout(10%x,5%y,90%x,30%y)
	ed1.SetLayout(5%x,50%y,40%x,5%y)
	ed2.SetLayout(5%x,57%y,40%x,5%y)
	ed3.SetLayout(5%x,64%y,40%x,5%y)
	ed4.SetLayout(5%x,71%y,40%x,5%y)
	ed5.SetLayout(5%x,78%y,40%x,5%y)
	lbl1.SetLayout(50%x,50%y,45%x,45%y)
	btn1.SetLayout(5%x,85%y,47%x,13%y)
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub

Sub ed4_TextChanged (Old As String, New As String)
   If IsNumber(ed4.Text) Then
	r=ed4.Text
	End If
End Sub
Sub ed3_TextChanged (Old As String, New As String)
   If IsNumber(ed3.Text) Then
	f=ed3.Text
	End If
End Sub
Sub ed2_TextChanged (Old As String, New As String)
   If IsNumber(ed2.Text) Then
	q=ed2.Text
	End If
	
End Sub
Sub ed1_TextChanged (Old As String, New As String)
 If IsNumber(ed1.Text) Then
	p=ed1.Text
	End If
End Sub

Sub ed5_TextChanged (Old As String, New As String)
   If IsNumber(ed1.Text) Then
	m=ed1.Text
	End If
End Sub

Sub btn1_Click
know
End Sub


Sub know
If p<>Null AND q<>Null Then
		Dim f1,r1,m1 As Float
		f1=(q*p)/(q+p)
		r1=f1+f1
		m1=Abs(q/p)
		lbl1.Text="  کانون آینه:  "&f1&"  شعاع آینه: " &r1& "  بزرگنمایی آینه  "&m1
'	Else If p<>Null AND f<>Null Then
		
	End If
End Sub

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

If p<>Null AND q<>Null Then

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

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

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

 ممنون ولی از این راه حل نشد 

 یه کار دیگه کردم اینکه 

#Region  Activity Attributes 
	#FullScreen: True
	#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.
	Dim pg,no As Int
	
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.
	Dim p As Float
	Dim q As Float
	Dim m As Float
	Dim f As Float
	Dim r As Float
	Private btn1 As Button
	Private ed1 As EditText
	Private ed2 As EditText
	Private ed3 As EditText
	Private ed4 As EditText
	Private ed5 As EditText
	Private img1 As ImageView
	Private pnl As Panel
	Private lbl1 As Label
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("get")
	pnl.SetLayout(0,0,100%x,100%y)
	img1.SetLayout(10%x,5%y,90%x,30%y)
	ed1.SetLayout(5%x,50%y,40%x,5%y)
	ed2.SetLayout(5%x,57%y,40%x,5%y)
	ed3.SetLayout(5%x,64%y,40%x,5%y)
	ed4.SetLayout(5%x,71%y,40%x,5%y)
	ed5.SetLayout(5%x,78%y,40%x,5%y)
	lbl1.SetLayout(50%x,50%y,45%x,45%y)
	btn1.SetLayout(5%x,85%y,47%x,13%y)
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub

Sub ed4_TextChanged (Old As String, New As String)
   If IsNumber(ed4.Text) Then
	r=ed4.Text
	End If
End Sub
Sub ed3_TextChanged (Old As String, New As String)
   If IsNumber(ed3.Text) Then
	f=ed3.Text
	End If
End Sub
Sub ed2_TextChanged (Old As String, New As String)
   If IsNumber(ed2.Text) Then
	q=ed2.Text
	End If
	
End Sub
Sub ed1_TextChanged (Old As String, New As String)
 If IsNumber(ed1.Text) Then
	p=ed1.Text
	End If
End Sub

Sub ed5_TextChanged (Old As String, New As String)
   If IsNumber(ed1.Text) Then
	m=ed1.Text
	End If
End Sub

Sub btn1_Click
know
End Sub


Sub know
If p<>Null AND q<>Null Then
		Dim f1,r1,m1 As Float
		f1=(q*p)/(q+p)
		r1=f1+f1
		m1=Abs(q/p)
		lbl1.Text="  کانون آینه:  "&f1&"  شعاع آینه: " &r1& "  بزرگنمایی آینه  "&m1
'	Else If p<>Null AND f<>Null Then
		
	End If
End Sub

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

If p<>Null AND q<>Null Then

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

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

 

 

 آقا حل شد به جای P و q از ed1.text و ed2.text  استفتده کردم

ب تشکر

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

دوستان از گذاشتن چند کیلومتر کد ( :D ) در انجمن خودداری کنید!

اگه کد های خیلی طولانی شدن اونها رو بصورت سورس در بیارید و پیوست کنید.

با تشکر

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

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

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