(
课件网) 3.1体验计算机解决问题的过程 韩信点兵 : 3.1体验计算机解决问题的过程 “韩信点兵”问题。 韩信是我国西汉初著名的军事家,刘邦得天下,军事上全依靠他。韩信点兵,多多益善,不仅如此,还能经常以少胜多,以弱胜强。在与楚军决战时韩信指挥诸侯联军,在垓下十面埋伏,击败楚军,楚霸王项羽因此自杀。 学生:阅读“韩信点兵”材料。 “韩信点兵”问题一:用现代语言这样表述:“求被3除时余2,被5除时余3,被7除时余2的最小自然数。” 韩信点兵,多多益善。如果这个数超过100000,又是多少呢?今天我们就来体验计算机解决问题的过程。先思考问题一。 3.1体验计算机解决问题的过程 筛选法. 首先写出“用3除余2”的数: 2,5,8,11,14,17,20,23,26,29,… 其中,“用5除余3”的数:8,23,… 其中,“用7除余2”的数:23,… 由此得到,23是最小的一个解。 至于下一个解是什么,要把“…”写出来才知道; 实践以后发现,是要费一点儿功夫的。 韩信点兵 : 3.1体验计算机解决问题的过程 分析问题 ( 找出已知条件和未知条件、列出已知条件和未知条件之间的关系 ) 写出解题步骤(算法) 设所求的数为 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. 写出答案。 3.1体验计算机解决问题的过程 for x in range(100): if (x % 3==2 and x % 5==3 and x % 7==2): print("韩信点兵的士兵数是",x) break x=x+1 程序代码: 3.1体验计算机解决问题的过程 “刚才有些同学把题目解出来了,答案是23,韩信作为大将军,统率士兵当然不止23人,下面我们来解决一个计算结果较大的问题。” “韩信点兵”问题二:求被3除时余2、被5除时余3、被7除时余2且超过100000的最小整数。 3.1体验计算机解决问题的过程 分析问题 解题步骤 设所求的数为X,则X应满足: 超过100000的一个最小正整数; X整除3余2; X整除5余3; X整除7余2; 1、令X为100000; 2、如果X整除3余2,X整除5余3,X整除7余2,则X就是答案,并记下; 3、令X增加1(为算下一个作准备); 4、如果算出,则结束;否则跳转到第2步; 5、写出答案。 3.1体验计算机解决问题的过程 x=100000 while x >=100000: if (x % 3==2 and x % 5==3 and x % 7==2): print("韩信点兵的士兵数是",x) break x = x + 1 程序代码: 3.1体验计算机解决问题的过程 a=int(input(“输入头数:")) b=int(input(“输入脚数:")) x=int(2 a-b/2) y=int(b/2-a) print (“鸡的数量为:",x) print (“免的数量为:",y) 求解问题的方式 相同点 不同点 人工求解问题 用计算机求解问题 求解问题的方式 相同点 不同点 人工求解问题 分析问题、设计算法、得出结果、验证结果等。 每次只能对特定的问题进行解答,运算速度慢,不需要借助计算机工具。 用计算机求解问题 编写程序、调试程序、运行速度快,通用性强。 3.1体验计算机解决问题的过程 用计算机解决问题的基本过程包括哪些? 具 体 问 题 分 析 问 题 设 计 算 法 编 写 程 序 调 试 程 序 得 到 答 案 在利用计算机解决问题之前,我们首先要分析问题的需求情况、已知条件和需要解决的问题。 问题分析清楚后,需要给出解决问题的详细方法和步骤,这一过程称为设计算法。 有了清晰可操作的算法描述,就可以选择一种计算机语言工具来编写程序,实现算法。 程序编写完成以后,再通过键盘把程序输入计算机中运行,检查程序能否按预想的效果执行,这一过程称为程序的调试运行。 当程序能够顺利运行以后,我 ... ...