1、算法描述与设计韩信点兵历史典故历史典故v 韩信是我国西汉初著名的军事家,刘邦得天下,军事上全依靠他。韩信点兵,多多益善,不仅如此,还能经常以少胜多,以弱胜强。在与楚军决战时韩信指挥诸侯联军,在垓下十面埋伏,击败楚军,楚霸王项羽江边自刎。 想一想v 韩信说:“如果每3个人编为一队,那最后剩下2个人;如果每5个人编为一队,那最后剩下3个人;如果每7个人编为一队,最后剩下2个人。请你自己算一下,我有多少士兵?” 请同学们列出这道题的已知条件和未知,建立数学模型,列出解决这道题的方法和步骤 。已知条件 结 果未知条件求解步骤用自然语言描述算法vStep1:将N初始值赋为1vStep2:如果N整除3余2
2、、整除5余3、整除7 余2,则输出N的值,转到step4vStep3:将N的值加1,转到step2vStep4:结束程序用流程图描述算法 用伪代码描述算法 v伪代码是介于自然语言和计算机程序语言之间的一种算法描述。表示关键词的语句一般用英文单词。v初始化N=1 Do If N整除3余1、整除5余2、整除7余4 then 输出N的值 结束循环 End if N=N+1 Loop结结 论论 v算法的描述可分为三种: 自然语言、流程图和伪代码计算机编程实现韩信点兵问题 vPrivate Sub Command1_Click()vDim N As IntegervN = 1vDov If (N Mod
3、 3 = 2) And (N Mod 5 = 3) And (N Mod 7 = 2) Thenv Print Nv Exit Dov End Ifv N = N + 1vLoopv将N的初始值赋为1,循环开始后先进行判断。v如果N被3、5、7整除后的余数是2、3、2,v则为求解结果,输出N的值,并退出循环;v否则将N你的值加1后继续判断。任任 务务 v上机练习,“韩信点兵”问题:求整除3余2、整除5余3、整除7余2的最小自然数。程序编写步骤程序编写步骤2. 在“新建工程”对话框中选择“标准EXE”,然后单击“打开”按钮, 建立标准EXE工程 1单击“开始”-“程序”-“Microsoft v
4、isual basic 6.0中文版”- “Microsoft visual basic 6.0中文版(如图)” 程序编写步骤程序编写步骤v3单击工具箱中的 “commandbutton按钮”,在默认窗体“form1”的适当位置上拖动鼠标,可以添加一个命令按钮command1(如图)程序编写步骤程序编写步骤v4单击“form1”窗体中的“command1”命令按钮,在属性窗口中将它的“caption”属性改为“韩信点兵”程序编写步骤程序编写步骤v5双击“form1”窗体中的“韩信点兵”按钮,打开代码窗口,在“private sub command1_click()”和“end sub” 之间输入上面的代码 程序编写步骤程序编写步骤v6执行运行菜单中的启动命令(或按F5键)运行程序。程序运行后单击窗体中的韩信点兵按钮,就可以查看程序运行的结果了