PDA

View Full Version : سوال: مشکل در نوشتن برنامه رابطه فیثاغورث



mehdi.0345
چهارشنبه 01 بهمن 1393, 04:23 صبح
سلام من این کد زیر رو خودم نوشتم
برنامه ایه که رابطه فیثاغورث رو بدست میاره
اما کد برنامه یک اشکال داره
که ارور run time 5 رو میده میخواستم بدونم میشه راهنماییم کنید.
:افسرده::افسرده::افسرده::افس ده::افسرده:

Dim a As Integer

Dim b As Integer

Dim c As Integer

Dim y, z As Integer

a = Val(Text1.Text)

b = Val(Text2.Text)

c = Val(Text3.Text)

If a <> Null Then

Else

a = c ^ 2 - b ^ 2

a = Sqr(a)

Text1.Text = a

y = a * b / 2

z = a + b + c

End If

If b <> Null Then

Else

Dim x2 As Integer

x2 = c ^ 2 - a ^ 2

x2 = Sqr(x2)

Text2.Text = x2

y = a * x2 / 2

z = a + x2 + c

End If

If c <> Null Then

Else

Dim x As Integer

x = a ^ 2 + b ^ 2

x = Sqr(x)

Text3.Text = x

y = a * b / 2

z = a + b + x

End If

meys34
چهارشنبه 01 بهمن 1393, 11:25 صبح
کد تون رو یکم اصلاح کردم ...

مشکل مربوط بود به قسمت If a <> Null Then در واقع وقتی شما a رو Integer تعریف میکنید نمیتونه Null باشه...

اگر کاربر خالی گذاشته باشه خروجیش میشه صفر پس درستش اینه که بنویسید: If a = 0 Then

و در ضمن باید چک کنیم که کاربر حداقل 2 تا رو پر کرده باشه در غیر اینصورت از نظر ریاضی مشکل داره و جواب نمیده(منظورم خط 13 هست)

بقیه قسمت ها رو هم که دست نزدم کاملا درست بود...
Private Sub Command1_Click()

Dim a As Integer
Dim b As Integer
Dim c As Integer

Dim y As Integer, z As Integer

a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)

If a * b = 0 And a * c = 0 And b * c = 0 Then Exit Sub

If a = 0 Then
a = c ^ 2 - b ^ 2
a = Sqr(a)
Text1.Text = a
y = a * b / 2
z = a + b + c
End If

If b = 0 Then
Dim x2 As Integer
x2 = c ^ 2 - a ^ 2
x2 = Sqr(x2)
Text2.Text = x2
y = a * x2 / 2
z = a + x2 + c
End If

If c = 0 Then
Dim x As Integer
x = a ^ 2 + b ^ 2
x = Sqr(x)
Text3.Text = x
y = a * b / 2
z = a + b + x
End If
End Sub