注册 登录
编程论坛 VB6论坛

(三角形面积)求助这货到底还差什么东西···谢谢!!!

阿筐 发布于 2014-10-17 19:29, 611 次点击
额,抱歉,叨扰了。学校的作业题,然后做到这儿卡住了····求助···呜呜,谢谢!!!
作业:【实验题3-4】输入三角形三条边的长度x,y,z,计算并显示三角形的面积。面积公式为:  ,其中,  。
提示:在3个文本框中分别输入x,y,z的值,单击“计算面积”,在第4个文本框中输出计算结果;单击“清除”,将4个文本框的内容清空;单击“退出”,程序结束。文本框用Text属性。
说明:如果3条边不构成三角形,也就是说,l * (l - x) * (l - y) * (l - z)是负数,会出现“实时错误’5’”。
下面是我写的(别拍飞我···)
Private Sub Command1_Click()

x = Val(Text1.Text)
y = Val(Text2.Text)
z = Val(Text3.Text)



If l * (l - x) * (l - y) * (l - z) < 0 Then
MsgBox ("实时错误'5'")
Else
l = (x + y + z) / 2
Text4.Text = s = Sqr(l * (l - x) * (l - y) * (l - z))

End If




End Sub

Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""

End Sub

Private Sub Command3_Click()
End
End Sub
2 回复
#2
chen35232014-10-17 21:04
两个地方错误,见红字表示。祝你成功!
Private Sub Command1_Click()
x = Val(Text1.Text)
y = Val(Text2.Text)
z = Val(Text3.Text)
l = (x + y + z) / 2
If l * (l - x) * (l - y) * (l - z) < 0 Then
MsgBox ("实时错误'5'")
Else
s = Sqr(l * (l - x) * (l - y) * (l - z))
Text4.Text = s
End If
End Sub
#3
zzyong002014-10-18 21:02
Text4.Text = s = Sqr(l * (l - x) * (l - y) * (l - z))
像这种语句在vb中的意思是这样的:=在VB中有两种用法,一种是赋值,一种是比较是否相等,vb解析语句是从后往前进行的,
相当于Text4.Text = (s = Sqr(l * (l - x) * (l - y) * (l - z)))
意思是,首先判断s是否等于Sqr(l * (l - x) * (l - y) * (l - z)),它的结果不是TRUE就是False,这里明显是false,然后把false自动转换成string类型,赋值给text4.text
1