《第一讲算法与程序设计.ppt》由会员分享,可在线阅读,更多相关《第一讲算法与程序设计.ppt(40页珍藏版)》请在课桌文档上搜索。
1、算法与程序设计,一、算法及其描述方法,第一节 算法与程序,计算机系统,硬件系统,软件系统,系统软件,应用软件,软件的重要组成部分是:程序想一想:什么是程序?,什么是程序,计算机的任何动作都是在执行人给它的指令。人们针对某一需要而为计算机编制的指令序列称为程序。程序指示计算机如何去解决问题或完成任务的一组可执行的指令。,那么,什么是算法呢?,讨论:,用没有刻度的3毫升量杯和5毫升量杯如何量出1毫升的水?请写出自己的解决步骤。,参考算法二,参考算法一,算法是在有限步骤内求解某一问题所使用的具有精确定义的一系列操作规则。简而言之,算法是指解决问题的具体方法和步骤。,说明:算法不是唯一的,针对同一问题
2、的算法可以有多种。,一个完整的算法有三个部分:输入、处理、输出。,算法与程序的关系是什么呢?算法是程序的灵魂,是解决问题的步骤。程序代码只是实现的手段。,例题:某学校要进行学生电脑编程竞赛,竞赛将评出10名获奖者,分为一、二、三等奖。奖项设置一等奖获得人数要少于二等奖人数,二等奖人数要少于三等奖人数。问一二三等奖人数各为多少?,分析:1.已知竞赛将评出10名获奖者。2.一等奖获得人数要少于二等奖人数,二等奖人数要少于三等奖人数设计算法:1.X+y+z=10 Xyz2.10以内的整数,逐个拿来试一试。满足条件的n组数,即结果,3.编写程序。4.调试程序。,使用电脑解决问题的一般过程分析问题设计算
3、法(设计出解决某一问题的有限个求解步骤)编写程序运行程序,算法的特征,有穷性:一个算法必须保证执行有限步骤之后结束。确定性:算法的每一步骤必须有确切的含义。可行性:算法的每一步骤都能有效地执行,并得到确定的结果。输入:有0个或多个输入。输出:有1个或多个输出,没有输出的算法毫无意义。,下一页,例1:判断下列算法是否符合算法的特征,s=1 将s的值增加1 重复步骤,解答:该算法的步骤将被重复执行无穷次,不符合有穷性,返回,例2:判断下列算法是否符合算法的特征,L=10输出L/自然数,解答:自然数没有具体指明是哪个数,不符合算法的确定性,返回,例3:判断下列算法是否符合算法的特征,x=-2计算x的
4、平方根,解答:x是负数,没有平方根,该算法不可行,不符合算法的可行性。,返回,例4:写出算法:计算半径为2的圆的面积,解答:R=2S=3.14*R*R输出面积S,说明:该算法中在执行时已包含计算所需的初始数据,不必另外提供数据,因此没有输入,即有0个输入。,返回,例5:写出算法:从键盘输入圆的半径,计算其面积,解答:输入圆的半径RS=3.14*R*R输出面积S,说明:该算法中计算面积所需的初始数据半径R待定,需要在算法执行时从键盘输入。,返回,请画出例6的流程图,解答:输入圆的半径RS=3.14*R*RC=2*3.14*R输出面积S,周长C,例6:求从键盘输入的任意半径的圆的面积和周长,开始,
5、结束,S=3.14*R*R,输入R,输出面积S、周长C,C=2*3.14*R,例6:求从键盘输入的任意半径的圆的面积和周长,解答:输入圆的半径RS=3.14*R*RC=2*3.14*R输出面积S,周长C,说明:通过前两个例子可以知道,算法可能有1个或多个输出。,返回,参考算法一:,将3毫升的量杯装满将3毫升量杯中的水注入5毫升量杯将3毫升的量杯装满将3毫升量杯中的水注入5毫升量杯,注满后3毫升量杯中剩余1毫升水。,返回,参考算法二:,将5毫升的量杯装满将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余2毫升水将3毫升量杯倒空将5毫升量杯中剩余的2毫升注入3毫升量杯将5毫升量杯装满将5毫升
6、量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余4毫升水将3毫升量杯倒空将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余1毫升水,返回,二、算法的描述,1、用自然语言描述算法,例题:鸡兔同笼问题一个笼子里有鸡和兔,现在只知道里面一共有a个头,b个脚,鸡和兔各有多少只?试设计一个求解的算法,并用自然语言描述出来。,1、用自然语言描述算法,1)分析问题 设所求的鸡数是x,兔数是y,已知笼子里的头数是a,脚数是b,依题意得到如下的方程组:,解方程组得:x=2a-b/2 y=b/2-a,1、用自然语言描述算法,2)设计算法输入a和b的值;求x=2a-b/2;求y=b/2-a;输出x和y的值;结
7、束。,鸡兔同笼流程图,开始,输入a,b的值,求x=2a-b/2,求y=b/2-a,输出x,y的值,结束,3、用程序代码描述算法,Input a,b,输入a和b的值;,鸡兔同笼,求x=2a-b/2;,求y=b/2-a;,输出x和y的值;,结束。,x=2a-b/2,y=b/2-a,print x,y,算法描述语言有:1、自然语言2、流程图3、伪代码,二、算法的描述,算法的表示方法优缺点:,自然语言(通过文字来描述解决问题的过程)优点:容易理解。缺点:书写烦琐,具有不确切性,容易引起歧义,造成误解;对较复杂的问题,用自然语言难以表达准确;计算机不能直接识别和执行。流程图(用图形符号来描述算法)必须要
8、有一组统一规定、含义确定的专用符号;优点:用流程图表示算法比较直观、形象;缺点:计算机不能识别和执行。程序代码使用程序设计语言描述算法。,下一页,流程图中的符号的用途,返回,例7:请画出例5的流程图,解答:输入圆的半径RS=3.14*R*R输出面积S,例5:写出算法:从键盘输入圆的半径,计算其面积,开始,结束,S=3.14*R*R,输入R,输出S,课堂练习1:物理老师想编写一个描述小球做平抛的运动轨迹程序(小球运动时间限定在(1-100秒),你能否帮助先用流程图描述一下解体的方法?描课堂练习2:描述S=1+2*2+3*3+直到呢S10000算法,4、分别用自然语言和流程图表示算法:求边长为a的正方形及其内切圆所夹阴影部分的面积,课堂练习3:,课堂练习1:,开始,结束,i=1,n=0,i1000,是,否,i=i*i,N=n+i,i=i+1,