资源简介 (共21张PPT)3.2 算法及其描述例:设计一个算法,求两个正整数为M和N的最大公约数?在确定了解决问题的方法之后,如何把解题方法转换成计算机能完成的操作步骤呢?辗转相除法求最大公约数设计算法:1、输入正整数M和N的值2、R=M%N3、如果R==0,则继续步骤4,否则M=N、N=R,转步骤24、输出N的值5、结束算法的基本概念算法:解题方法的精确描述。其要求是有有限个步骤组成的,并且每一步骤的含义都是明确的,而且是能行的。简单的说,算法就是解决问题的方法和步骤。例如乐谱是乐队指挥和演奏的算法;菜谱是厨师做菜的算法等等。算法的特征输入:有0个或多个输入确定性有穷性输出:有1个或多个输出能行性算法的表示方法算法可以用多种不同的方法来描述,主要有:自然语言、流程图、伪代码流程图是一种比较直观易用的、用图形来描述算法的方法。用伪代码描述算法就是用介于自然语言与计算机语言之间的文字和符号来描述算法。伪代码不用图形符号,书写方便,格式紧凑,易于理解,便于向计算机程序过度。自然语言是人们日常所用的语言,如汉语、英语等。使用自然语言不用专门训练,所描述的算法也通俗易懂例:一个笼子里有鸡和兔,现在只知道里面一共有A个头,B只脚,求鸡和兔各有多少只?设计一个求解的算法,并用自然语言描述出来。分析问题:设所求的鸡数是X,兔数是Y,已知笼子里的头数是A,脚数是B,依题意,得到如下的议程组:X+Y=A2X+4Y=B解方程组得:X=2A-B/2 ,Y=B/2-A设计算法:1、输入A和B的值2、求X=2A-B/23、求Y=B/2-A4、输出X,Y的值5、结束流程图中的符号的用途流程图开始输出N的值M=N,N=RR=0R=M除以N的余数输入正整数M和N结束开始Y=B/2-A输出X,Y的值结束X=2A-B/2输入A和B的值是否问题:求6x+5y+4z=50正整数解的个数及显示所有解?①t=0②x=1③y=1④z=1⑤如果6x+5y+4z==50,t=t+1,print x,y,z⑥z=z+1⑦如果z<=12,则转步骤⑤,否则继续步骤⑧⑧y=y+1⑨如果y<=10,则转步骤④,否则继续步骤⑩⑩x=x+1 如果x<= 8,则转步骤③,否则继续步骤 print t①t=0②x=1③y=1④z=1⑤6x+5y+4z==50,t=t+1,print x,y,z⑥z=z+1⑦z<=12,转⑤,否转⑧⑧y=y+1⑨y<=10,转④,否转⑩⑩x=x+1 x<= 8,转③,否转 print t开始结束t=0,x=1,y=1,z=16x+5y+4z==50是否t=t+1输出x,y,z的值z=z+1z<=12是否y=y+1y<=10是否z=1y=y+1y<=10y=1,z=1是否伪代码t=0for x in range(1, 9):for y in range(1, 11):for z in range(1, 13):if(6 * x + 5 * y + 4 * z == 50){t = t + 1;输出解的个数t和三个整数x,y,z}问题:设计一个算法,求三个数中的最大数。①输入正整数a,b,c②如果a>=b,则x=a,否则x=b③如果c>=x,则x=c④输出x⑤结束开始输入正整数a,b,ca>=bx=ax=bc>=xx=b输出正整数x结束伪代码输入正整数a,b,cif a>=b:x=aelse:x=bif a>=b:x=aelse:x=b输出解的个数t和三个整数x,y,z}作业:设计一个算法:求出100以内能被3整除的所有正整数算法的常用描述方法程序的三种基本结构 展开更多...... 收起↑ 资源预览