内容正文:
信息技术基础
编程解决问题
*
古典问题——韩信点兵
韩信是我国西汉初著名的军事家,刘邦得天下,军事上全依靠他。韩信点兵,多多益善,不仅如此,还能经常以少胜多,以弱胜强。在与楚军决战时韩信指挥诸侯联军,在垓下十面埋伏,击败楚军,楚霸王项羽因此自杀。
韩信点兵问题:相传汉高祖刘邦问大将军韩信统御士兵多少,韩信答说,每3人一列余2人、5人一列余3人、7人一列余2人、刘邦听后茫然而不知其数。你能说出有多少士兵吗?
在科技发达的今天,我们到处都可以看到计算机的踪影,感受到计算机给学习、生活带来的方便。然而,在惊叹计算机的神奇和享受到计算机带来欢乐的时候,你是否了解用计算机解决问题的基本过程?有没有思考过其中的奥妙?下面我们先看一段视频
*
韩信点兵问题一
求整除3余2、整除5余3、整除7余2的最小自然数。
分析问题(找出已知和未知、列出已知和未知之间的关系) 写出解题步骤 结果
下面先帮刘帮解决一个简单的问题。小组一起讨论。利用已学过的知识找出题目已知什么,求什么,明确已知和未知之间的关系并写出求解决问题的解题步骤。
*
分析问题
设所求的数为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、写出答案
解决该问题的算法:穷举法。有些同学可能算出来答案是67。韩信作为大将军,统率士兵当然不止67人,下面我们来解决一个数据量较大的问题。
*
编写程序:VB语言参考代码
Dim X As Integer, Y As Integer
X=1
Y=0
Do
if x mod 3=2 and x mod 5=3 and x mod7=2 then y=x
X=x+1
Loop until y>0
Print "韩信统御士兵数:"; y
程序编好后,通过键盘输入计算机,并运行程序查看结果,这个过程叫调试程序。
*
韩信点兵问题二
校体操队到操场集合,排成每行2人,最后多出1人,排成每行3人,也多出1人,分别按每行排4,5,6人,都多出1人,当排成每行7人时,正好不多。求校体操队至少是多少人。
?程序应该怎么改呢?
大