内容正文:
第三章 算法的程序实现
3.1 用解析法解决问题
教学重点
(1) 理解解析法的基本概念。要培养学生善于综合运用数学、物理、化学等各学科的知识和思考方法,寻找问题中各要素之间的关系,导出解决问题的解析式或列出相关的方程,然后设计程序求解。
(2) 根据算法写出程序代码并且调试程序求得问题的正确解答的能力。当算法确定之后,应当能够熟练地根据算法写出程序代码,并且通过调试程序发现并改正错误,得出正确的解答。
(3) 根据问题的特点,找到系统提供的资源(如各种数据类型、内部函数等等),简化问题的求解过程。
教学难点
(1) 解析式的导出或方程(组)的列出并求解。这些工作要求对问题所涉及的领域有比较深的认识,它的困难是外在的,是由问题的性质决定的。
(2) 算法的合理设计。不论是使用重复结构还是寻找的运算顺序,对于经验不足的初学者是有困难的,特别是计算过程中可能会遇到计算误差的积累影响运行结果的情况,需要有较多的编程经验才能加以解决。
(3) VB的数据类型。
问题:
如图所示,MN是竖直于地面的物体,其底部N不可到达。为了测量MN的高度,在地面上选取一条与MN在同一平面的水平线线段AB为基线,测得AB的长为a=20米,在A点向M点张望的仰角 A=38.40,在B点向M点张望的仰角B=22.80。试设计程序计算高度MN。
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表示),