算法与程序设计绥阳镇中学侯贺天1.1计算机解决问题的过程如何用计算机解决问题当我们用计算机解决问题时,首先要分析问题,然后根据问题的要求选择合适的软件。如果现有的软件能满足我们的要求,我们会直接用这些软件来完成任务。例如:学校财务处要制作一份工资表,工资表中许多数据,我们可以用Excel解决;学生要设计一个报刊设计,可以使用word。除此之外,现实生活中还有许多工作往往比较特殊,现有的软件不能很好地完成,或者由于其他方面的原因无法使用,这就需要我们编写程序来解决问题。农夫过河问题农夫过河问题智力问答:智力问答:一个农夫带着一只狼,一只羊和一棵白菜过河。一个农夫带着一只狼,一只羊和一棵白菜过河。河边只有一条船河边只有一条船,,由于船小由于船小,,农夫一次只能带其农夫一次只能带其中的一样过河。如无人看管中的一样过河。如无人看管,,狼要吃羊狼要吃羊,,羊要吃羊要吃菜。问农夫如何安排过河菜。问农夫如何安排过河,,才能使狼、羊、菜都才能使狼、羊、菜都安然无恙。安然无恙。渡河的方法与步骤:第一步:农夫带着羊农夫带着羊渡过河去;第二步:农夫农夫划船回来;第三步:农夫带着菜农夫带着菜渡过河去;第四步:农夫带着羊农夫带着羊划船回来;第五步:农夫带着狼农夫带着狼渡过河去;第六步:农夫农夫划船回来;第七步:农夫带着羊农夫带着羊渡过河。例例11,一个笼子里有鸡和兔,现在只知道里面一,一个笼子里有鸡和兔,现在只知道里面一共有共有3535个头,个头,9494只脚,问鸡和兔各有多少只?只脚,问鸡和兔各有多少只?鸡兔同笼问题鸡兔同笼问题分析问题分析问题X+Y=aX+Y=a2X+4Y=b2X+4Y=b解方程组得:解方程组得:XX==2a-b/22a-b/2,,YY==b/2-ab/2-a设计算法2.设计算法:输入a和b的值求X=2a-b/2求Y=b/2-a输出X,Y的值结束3.编写程序PrivateSubCommand1_click()a=inputbox(“a=“,”输入头数“)b=inputbox(“b=“,”输入脚数“)x=2*a-b/2Y=b/2-aPrint“鸡数x=“;x,”兔数y=”;yEndSub4.调试程序设计一个软件的步骤是:具体问题分析问题设计算法编写程序调试程序得到答案无论使用现成的软件解决问题,还是自己动手编程解决问题,其实质都是一样的:现有的计算机软件同样也经历了这些过程,其差别在于,用程序设计解决问题需要我们亲自动手设计软件,而使用现成的软件,是别人已经给我们设计好了的。1.2算法和算法的描述算法算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗的说,算法就是用计算机求解某一问题的方法。算法是解决问题的方法和步骤算法的特征输入:一个算法有零个或者多个输入确定性:算法的每一个步骤必须要确切地定义有穷性:一个算法它所包含的计算步骤是有限的输出:算法有一个或多个的输出能行性:每一步都能精确的进行,并最终得出正确的结果算法的描述自然语言流程图伪代码1、用自然语言来描述。输入a和b的值求X=2a-b/2求Y=b/2-a输出X,Y的值结束2、用流程图来描述流程图也称程序框图,算法流程图也称程序框图,算法的一种图形化表示方法。的一种图形化表示方法。流程图图形图形名称名称功能功能开始/结束开始/结束表示算法的开始或结束表示算法的开始或结束输入/输出输入/输出表示算法中变量的输入或输出表示算法中变量的输入或输出处理处理表示算法中变量的计算与赋值表示算法中变量的计算与赋值判断判断表示算法中的条件判断表示算法中的条件判断流程线流程线表示算法中的流向表示算法中的流向连接点连接点表示算法中的转接表示算法中的转接2.流程图输入输入aa和和bb的值的值输出输出x,yx,y的值的值开始开始求求x=2a-b/2x=2a-b/2求求y=b/2-ay=b/2-a结束结束areaareassssssssss开始开始r=mr=m除以除以nn的余数的余数r=0r=0输入正整数输入正整数m,nm,n结束结束输出输出nn的值的值m=n,n=rm=n,n=r是是否否流程图的优缺点与自然语言相比,用流程图描述与自然语言相比,用流程图描述算法形象、直观,更容易理解。算法形象、直观,更容易理解。3、用伪代码描述算法。例如,给定一个四位数的年份,判断它是否例如,给定一...