当前位置:文档之家› 3.1用解析法解决问题

3.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 )
钻石图案
'画出每个顶点到其它顶点间的线段 For i = 1 To intNodes sngX1 = sngRadius * Cos(i * sngAngle) sngY1 = sngRadius * Sin(i * sngAngle)
For j = 1 To intNodes '如果i=j表示是同一个顶点 If i <> j Then sngX2 = sngRadius * Cos(j * sngAngle) sngY2 = sngRadius * SinY1)-(sngX2, sngY2), vbBlue End If Next j Next i End Sub
(4)调试程序(运行源程序) (5)检验结果
探究:
在本问题里,如果输入的两个仰角相等,或 其中一个仰角是900,都会导致程序非正常 结束。如果,甚至会使输出的结果是负数! 请讨论一下使用者输入数据时比较常见的错 误会有哪些?我们在程序中可以怎样防范?
2、总结
解析法的基本概念 通过分析问题中各要素之间的关系,用最简 练的语言或形式化的符号来表达它们的关系, 得出解决问题所需的表达式,然后设计程序 求解问题的方法称为解析法。
1、用解析法求解问题的基本过程
测量高度问题的求解
问题: 如图所示,MN是竖直于地面的物体,其底部N不可到达。为了测量 MN的高度,在地面上选取一条与MN在同一平面的水平线线段AB为基 线,测得AB的长为a=20米,在A点向M点张望的仰角 A=38.40,在B 点向M点张望的仰角B=22.80。试设计程序计算高度MN。
钻石图案
Private Sub Command1_Click() '定义常量π Const PI = 3.14159265
'以下定义变量 Dim i As Integer, j As Integer Dim sngX1 As Single, sngY1 As Single, sngX2 As Single, sngY2 As Single
教学难点
(1) 解析式的导出或方程(组)的列出并求解。这些 工作要求对问题所涉及的领域有比较深的认识,它 的困难是外在的,是由问题的性质决定的。 (2) 算法的合理设计。不论是使用重复结构还是寻 找的运算顺序,对于经验不足的初学者是有困难的, 特别是计算过程中可能会遇到计算误差的积累影响 运行结果的情况,需要有较多的编程经验才能加以 解决。 (3) VB的数据类型。
设置标签显示的内容
文本框
Enabled text [ 名称 ]
文本框的名称 设置text的值 命令按钮的名称 设置命令按钮显示的内容
按钮
Caption
(4)编写代码
参考程序
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
'用sngAngle表示单位弧度 Dim sngAngle As Single '用sngRadius表示圆周半径 Dim sngRadius As Single '用intNodes表示顶点数 Dim intNodes As Integer
钻石图案
'设置屏幕坐标系,使其圆点位于窗体中心 frmDraw.Scale (-1.5, -1.5)-(1.5, 1.5) frmDraw.Cls '以下对变量进行初始化 '半径设为单位坐标 sngRadius = 1 intNodes = 15 sngAngle = 2 * PI / intNodes
(3)设计界面
设计测量高度问题程序的窗口
对象属性表
对象名 属性名 [ 名称 ] 标签 Caption 属性值 label1 Label2 Label3 Label4 基线长 a= 仰角 α= 仰角 β= 被测物体高度= Text1 textbox Text2 textbox Text3 textbox Text4 textbox 全部设置成空 command1 计算 功能 标签的名称
(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.1 用解析法解决问题
教学重点
(1) 理解解析法的基本概念。要培养学生善于 综合运用数学、物理、化学等各学科的知识和思考 方法,寻找问题中各要素之间的关系,导出解决问 题的解析式或列出相关的方程,然后设计程序求解。 (2) 根据算法写出程序代码并且调试程序求得 问题的正确解答的能力。当算法确定之后,应当能 够熟练地根据算法写出程序代码,并且通过调试程 序发现并改正错误,得出正确的解答。 (3) 根据问题的特点,找到系统提供的资源(如 各种数据类型、内部函数等等),简化问题的求解 过程。
相关主题