第三章 第一节 用解析法解决问题
图4-1(1)测量物体高度示意图
(1)分析问题(以下内容由老师正确引导,学生小组协作完成)
我们不可能直接求出物体的高度。但我们可以利用所学的知识(三角函数)来完成该工作。
在直角三角形ANM中可以得到:
tanA0=MN/AN
即:AN=MN/ tan A0
在直角三角形BNM中可以得到:
tan B0=MN/BN
即:BN=MN/ tan B0
所以:
AB=BN-AN
=MN/tan B0-MN/tan A0
=MN(1/ tan B0-1/tan A0 )
(2)设计算法
① 设计输入输出界面,从三个文本框中输入基线长a ,仰角A0用Alpha代替、B0用Bata代替
② 计算tan A0的倒数(用COTA表示),即
COTA=1/tan(A0*3.14159/180);
③ 计算tan B0的倒数(用COTB表示),即
COTB=1/tan(B0*3.14159/180);
④ 计算a/(COTB-COTA);
⑤ 输出结果
(3)编写程序
设计窗体如图4-2
图4-1(2)测量高度问题程序的窗口
|
对象名 |
属性名 |
属性值 |
功能 |
|
标签 |
[ 名称 ] |
label1 Label2 Label3 Label4 |
标签的名称 |
|
Caption |
基线长 a= 仰角 α= 仰角 β= 被测物体高度= |
设置标签显示的内容 |
|
|
文本框 |
Enabled |
Text1 textbox Text2 textbox Text3 textbox Text4 textbox |
文本框的名称 |
|
text |
全部设置成空 |
设置text的值 |
|
|
按钮 |
[ 名称 ] |
command1 |
命令按钮的名称 |
|
Caption |
计算 |
设置命令按钮显示的内容 |
表4-1(1)对象属性表
参考程序:
Private Sub Command1_Click()
a = Val(Text1.Text)
Alpha = Val(Text2.Text)
bata = Val(Text3.Text)
pi = 3.14159265
COTA = 1 / Tan(Alpha * pi / 180)
COTB = 1 / Tan(bata * pi / 180)
MN = a / (COTB - COTA)
Text4.Text = MN
End Sub
(4)调试程序(运行源程序)
图4-1(3)参考程序4-1运行的结果
(5)检验结果
探究:在本问题里,如果输入的两个仰角相等,或其中一个仰角是900,都会导致程序非正常结束。如果,甚至会使输出的结果是负数!请讨论一下使用者输入数据时比较常见的错误会有哪些?我们在程序中可以怎样防范?
【教师总结】
解析法的基本概念——通过分析问题中各要素之间的关系,用最简练的语言或形式化的符号来表达它们的关系,得出解决问题所需的表达式,然后设计程序求解问题的方法称为解析法。





