如何用计算机解决问题(1).ppt
如何用计算机解决问题u计算机解决问题的过程u算法描述与设计u初试身手,体验编程韩信点兵韩信点兵韩信点兵 秦朝末年,楚汉相争。一次,韩信将士1500人与楚国大将李锋交战。一场苦战后,楚军不敌,败退回营。汉军也死伤四五百人,于是韩信整顿兵马返回大本营。当韩信兵行至一山坡,忽后有来报,说楚军骑兵追来,只见远方尘土飞扬、杀声震天。汉军本已十分疲惫,这时队伍大哗。韩信兵马到坡顶,见来敌不足五百,决定速点兵迎敌。 韩信命士兵3人一排,多出2名士兵;命士兵5人一排,多出3名士兵;命士兵7人一排,多出2名士兵。韩信向士兵宣布,我军有1073名勇士,敌不足五百,我们居高临下,以众击少,一定能打败楚军!汉军本来就很信服自己的统帅,于是士气大振,一时鼓声喧天,楚军大败。韩信点兵 秦朝末年,楚汉相争。一次,韩信将士1500人与楚国大将李锋交战。一场苦战后,楚军不敌,败退回营。汉军也死伤四五百人,于是韩信整顿兵马返回大本营。当韩信兵行至一山坡,忽后有来报,说楚军骑兵追来,只见远方尘土飞扬、杀声震天。汉军本已十分疲惫,这时队伍大哗。韩信兵马到坡顶,见来敌不足五百,决定速点兵迎敌。 韩信命士兵韩信命士兵3人一排,多出人一排,多出2名士兵;命士兵名士兵;命士兵5人一人一排,多出排,多出3名士兵;命士兵名士兵;命士兵7人一排,多出人一排,多出2名士兵。名士兵。韩信向士兵宣布,我军有韩信向士兵宣布,我军有1073名勇士,名勇士,敌不足五百,我们居高临下,以众击少,一定能打败楚军!汉军本来就很信服自己的统帅,于是士气大振,一时鼓声喧天,楚军大败。韩信点兵数学建模 今有物不知其数,三三数之余二,五五数之余三,七七数之余二,问物几何? 一数被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)列方程求解列方程求解 设三个正整数n,m,k,则根据题意可得到:3n+2=5m+3=7k+2 化简方程,通过分析也可以得出满足条件的结果三人同行七十稀,五树梅花二一枝,七子团圆整半月,除百零五便得知。702115105的倍数S=70a+21b+15c+105k (kZ,k的选取应使s0)韩信点兵韩信点兵3)明朝数学家程大位在)明朝数学家程大位在算法统宗算法统宗中把上式总结为一首通俗易懂的歌决:中把上式总结为一首通俗易懂的歌决:270+321+215=233计算机解决问题过程分析问题分析问题设计算法设计算法编写程序编写程序运行程序运行程序验证结果验证结果问题解决问题解决例:韩信点兵 一数被3除余数为2;被5除余数为3;被7除余数为2;求此数。算法分析: 从1开始,判断此数能否被3、5、7除余数为2 、 3 、 2 ; 如果是,此数即是所求;否则,此数加1继续再试。算法的基本概念算法的基本概念 算法:解题方法的精确描述。其要求是有算法:解题方法的精确描述。其要求是有有限个步骤组成的,并且每一步骤的含义都有限个步骤组成的,并且每一步骤的含义都是明确的,而且是能行的。是明确的,而且是能行的。 简单的说,算法就是解决问题的方法和步骤。简单的说,算法就是解决问题的方法和步骤。 例如:乐谱是乐队指挥和演奏的算法;菜例如:乐谱是乐队指挥和演奏的算法;菜谱是厨师做菜的算法等等。谱是厨师做菜的算法等等。如何描述算法 1. 用自然语言描述算法 2.用流程图描述算法 3.用伪代码描述算法自然语言 用自然语言表达算法,就是把算法的各个步骤,依次用人们熟悉的自然语言表示出来。 优点:容易理解 缺点:书写较烦、不确定性、对复杂的问题难以表达准确、不能被计算机识别和执行用自然语言描述算法Step1: 将n的初始值赋为1Step2:如果n被3、5、7除余数为2、3、2, 则输出n的值,转Step4Step3:将n的值加1,转Step2Step4:结束程序程序框名称功能开始/结束算法的开始和结束输入/输出输入和输出信息处理计算与赋值判断条件判断流程线算法中的流向连接圈表示算法流向出口或入口连接点常用的“流程图”所用的基本符号 用流程图描述算法开始结束1 N如果n被3、5、7除余数为2、3、2N+1 N输出N的值YN流程图也称程序框图,流程图也称程序框图,是算法的一种图形化是算法的一种图形化表示方法。表示方法。优点优点:形象、直观、:形象、直观、容易理解容易理解用伪代码描述算法 介于自然语言和计算机程序语言的一种算法描述。n优点:简洁、易懂、修改容易n缺点:不直观、错误不容易排查用伪代码描述算法1 N IF N被3、5、7除余数为2 、 3 、 2 THEN 输出N else N的值加1 End if算法的特征 有穷性:执行有限个步骤后结束,且每一有穷性:执行有限个步骤后结束,且每一 步的执行时间也都是有限的;步的执行时间也都是有限的; 确定性:每一步都有确切的含义;确定性:每一步都有确切的含义; 可行性:原则上能精确运算,用纸和笔做可行性:原则上能精确运算,用纸和笔做 有限次运算后即可完成;有限次运算后即可完成; 输输 入:有入:有0个或多个输入;个或多个输入; 输输 出:有出:有1个或多个输出。个或多个输出。韩信点兵代码Dim N As Long For N = 1 To 1500 If (N Mod 3 = 2) And (N Mod 5 = 3) And (N Mod 7 = 2) Then Print N End If Next N韩信点兵韩信点兵控件工具箱控件工具箱提示提示:(可视化可视化) VB可以用来开发具有图形用户界面可以用来开发具有图形用户界面的应用程序。程序设计者不必编写大量的应用程序。程序设计者不必编写大量的程序去描述界面元素的外观和位置。的程序去描述界面元素的外观和位置。只需用鼠标直接将工具箱中的对象拖动只需用鼠标直接将工具箱中的对象拖动到窗口适当位置即可。到窗口适当位置即可。对象:命令按钮对象:命令按钮2对象:图片框对象:图片框对象:图像对象:图像对象:命令按钮对象:命令按钮1提示提示: 面向对象程序设计方法的核心是对面向对象程序设计方法的核心是对象功能的实现和表达。象功能的实现和表达。VB中每个对象中每个对象是由一组属性和处理对象属性方法的代是由一组属性和处理对象属性方法的代码构成。如图中包含了多个对象码构成。如图中包含了多个对象对象:窗体对象:窗体1属性窗口属性窗口提示提示: 窗体中所有对象均能在属性窗口中窗体中所有对象均能在属性窗口中找到其对应的一系列属性。具体操作方找到其对应的一系列属性。具体操作方法:将鼠标点中对象,查看属性窗口,法:将鼠标点中对象,查看属性窗口,将相应属性进行设置。将相应属性进行设置。代码是响应了某个事件之后产生的回应。代码是响应了某个事件之后产生的回应。什么是事件?什么是事件?指用户在对象上激发的一种动作。如:在键盘上按下一个键、鼠标指用户在对象上激发的一种动作。如:在键盘上按下一个键、鼠标移动,在一个对象上单击或双击鼠标。移动,在一个对象上单击或双击鼠标。源代码源代码事件名称事件名称对象名称对象名称基本概念:控件: 是应用程序的基本元素,与窗体共同构成应用程序的界面。控件以图标的方式放在“工具箱”中。. vbp文件: 与VB工程有关的文件和对象清单,是一个文本文件。. frm文件: 包含窗体及控件的属性设置、相关程序代码等。基本概念计算机程序计算机程序: 指示计算机如何去解决问题或完成任务的一组可执行的指令。程序设计程序设计: 寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。程序设计语言程序设计语言: 泛指一切用于书写计算机程序的语言。机器语言机器语言(0、1)汇编语言汇编语言 高级语言高级语言(basic 、 c 、 c+ 、 VB)nC+、C#、VC+、VB、Java等VB语言的主要特征:语言的主要特征:n可视化n事件驱动面向对象程序设计语言:算法描述与程序设计