剖析计算机程序解决问题课件.ppt
文本预览下载声明
* * LOGO * * LOGO * * LOGO * * LOGO * * LOGO * * LOGO 个人计算机的另一个称呼是什么? 电脑 为什么称计算机是电脑呢? 计算机能模拟人的大脑的活动,是人脑的延伸,要研究计算机解决问题的过程,需要从 人解决问题的过程谈起。 “韩信点兵”的故事 “韩信点兵”问题: 相传汉高祖刘邦问大将军韩信有兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人……。刘邦茫然而不知其数。你呢? 下面我们先助刘邦解决一个简单的问题: 问题1: 求整除3余2、整除5余3、整除7余2的最小自然数。 “韩信点兵”的解法 1)筛选法 首先写出“用3除余2”的数:2,5,8,,11,14,17,20,23,26,,29…… 其中,“用5除余3”的数:8,23,,…… 其中,“用7除余2”的数:23,…… 由此得到,23是最小的一个解。 至于下一个解是什么,要把“……”写出来才能知道:实践以后发现,是要费一点儿功夫的。 “韩信点兵”的解法 2)公倍数法 现在仿照上边用过的“公倍数法”,设要求的数为 X,则依题意,得联立方程组 探究问题记录表 分析问题(找出已知和未知、列出已知和未知之间的关系) 写出解题步骤 设所求的数为X, 则X应满足: X整除3余2 X整除5余3 X整除7余2 1、令X为1。 2、如果X整除3余2,X整除5余3,X整除7余2,这就是题目要求的数,则记下这个X。 3、令X为X+1(为算下一个作准备)。 4、如果算出,则结束;否则跳转2。 5、写出答案。 “韩信点兵”问题2 问题2: 求整除3余1、整除5余2、整除7余4、整除13余6、整除17余8的最小自然数。 探究问题记录表2 分析问题(找出已知和未知、列出已知和未知之间的关系) 写出解题步骤 设所求的数为X,则X应满足: X整除3余1 X整除5余2 X整除7余4 X整除13余6 X整除17余8 1、令X为1。 2、如果X整除3余1, X整除5余2, X整除7余4, X整除13余6, X整除17余8,则记下这个X 3、令X为X+1。 4、如果算出,则结束;否则跳转2 5、写出答案。 能不能让计算机来帮助我们解决问题呢? 肯定地回答:能 用计算机解决问题 本例用Visual Basic语言编写的程序如下: Private Sub Command1_Click() Dim X As Integer, Y As Integer X = 1: Y = 0 Do If X Mod 3 = 1 Then If X Mod 5 = 2 Then ( 1 ) Then ( 2 ) Then ( 3 ) Then Y = X End If End If End If End If X = X + 1 Loop Until Y 0 Print 韩信统御士兵数:; Y End Sub mod函数是一个求余函数,即是两个数值表达式作除法运算后的余数。 Y的作用是什么? Y是一个变量,变量就像一个小盒子,只要符合条件的,就可以把数值放入盒子里。 用计算机解决问题的基本过程 分析问题 设计算法 编写程序 运行程序验证结果 开始 问题解决 修改 * * * * * *
显示全部