《算法与流程图完整版课件.ppt》由会员分享,可在线阅读,更多相关《算法与流程图完整版课件.ppt(27页珍藏版)》请在三一办公上搜索。
1、第二章 算法与流程图,1、程序数据结构算法2、简单算法举例3、算法特性4、算法的自然语言表示5、算法的流程图表示6、算法的伪代码表示,1、程序数据结构算法,Niklaus Wirth,designer of Pascal,Wirth, Niklaus (1976) (in English). Algorithms + Data Structures = Program. Prentice Hall. 0130224189. ISBN 87,程序:为计算机解题编制的一组指令集算法:处理问题的策略数据结构:处理信息的表示,Turing Award, 1984,2、简单算法举例,求和:1+1/2+1
2、/3+1/4+1/5+1/100蛮力法:S1: 先计算1/2=0.5,再与1相加得1.5S2: 计算1/3=0.33333,与1.5相加得1.83333S3: 计算1/4=0.25,与1.83333相加得2.08333S99: 计算1/100=0.01,与5.177378相加得5.187378。,2、简单算法举例,求和:1+1/2+1/3+1/4+1/5+1/100改进的算法:S1: 初始化sum=0, i=1S2: 如果i 100,执行S3;否则执行S5S3: sum = sum+1/iS4: i=i+1,跳转到S2S5: 输出sum,算法结束,2、简单算法举例,从3个数A、B、C中找出最大
3、的数。算法1:S1: 如果AB,执行S2;否则执行S3S2: 如果AC,执行S4;否则执行S6S3: 如果BC,执行S5;否则执行S6S4: 输出AS5: 输出BS6: 输出C,2、简单算法举例,从3个数A、B、C中找出最大的数。算法2:S1: 初始化max=AS2: 如果AB,执行S3;否则max=B,执行S3S3: 如果maxC,执行S4;否则max=C,执行S4S4: 输出max,算法的五个特点:有输入 (Input):零个或多个输入。有输出 (Output):一个或多个输出。有穷性 (Finiteness):对于任意一组合法的输入值,在执行有穷步骤之后一定能结束。可行性 (Effect
4、iveness):所有操作都可通过已经实现的基本操作运算有限次来实现。确定性 (Definiteness):算法中每一步的描述都无二义性,只要输入相同,初始状态相同,无论执行多少遍,结果都应该相同。,Turing Award, 1974,3、算法的特性,“好” 算法的特点:正确性 (Correctness):满足问题的需求。易读性(Readability):便于理解、测试和修改。健壮性(Robustness):输入非法数据时,算法能做出适当处理,不会产生难以预料的结果。时空效率 (Efficiency):执行时间短,低存储。,3、算法的特性,4、算法的自然语言表示,优点通俗易懂缺点文字冗长、不
5、直观不适合描述分支循环结构,从3个数A、B、C中找出最大的数。S1: 如果AB,执行S2;否则执行S3S2: 如果AC,执行S4;否则执行S6S3: 如果BC,执行S5;否则执行S6S4: 输出AS5: 输出BS6: 输出C,5、算法的流程图表示,从3个数A、B、C中找出最大的数。,开始,结束,输入A,B,C,AB,AC,CB,输出B,输出C,输出A,是,是,是,否,否,否,5.1 流程图基本单元,起止框,输入/输出框,处理框,判断框,流程线,5.2 流程图绘制例,输入50个学生的姓名和成绩,输出不及格学生的名单。,开始,结束,i=1,输入ni, si,i50,是,i=1,si60,输出ni,
6、i=i+1,i50,是,i=i+1,否,是,否,否,5.2 流程图绘制例,输入50个学生的姓名和成绩,输出不及格学生的名单。,开始,结束,i=1,输入ni, si,i50,是,i=1,si60,输出ni,i=i+1,i50,是,i=i+1,否,是,否,否,5.3 三种基本结构对应流程图,(1)顺序结构,A,B,5.3 三种基本结构对应流程图,(2)选择结构,A,B,p,是,否,5.3 三种基本结构对应流程图,(3)循环结构:当型 while (p) B; ,B,p,是,否,5.3 三种基本结构对应流程图,(3)循环结构:直到型 do B; while (p);,B,p,是,否,5.4 作业,(
7、1)用流程图表示判断闰年的算法。(2)用流程图表示判断一个正整数是否是素数的算法。,5.5 用伪代码表示算法,用介于自然语言和计算机语言之间的文字和符号表示算法无固定严格的语法规则beginendifelsedowhilewhile=,=input, print,例如:求和算法的伪代码,1+1/2+1/3+1/4+1/5+1/100,beginsum=0i=1while (i 100) beginsum = sum + 1/ii = i+1endprint sumend,本章小结,“好”算法的特点算法的流程图表示,如图所示是一算法的伪代码,执行此算法时,输出的结果是 ,在音乐唱片超市里,每张唱
8、片售价25元,顾客购买5张(含 5张)以上但不足10张唱片,则按九折收费,顾客购买10张以上(含10张)唱片,则按八五折收费,编写程序,输入顾客购买唱片的数量a,输出顾客要缴纳的金额C.并画出程序框图,【解析】试题分析:根据题意写出分段函数,根据分段函数写出程序框图,注意分段函数需要条件分支结构实现,根据框图再写出程序.试题解析:由题意得C,程序如下:,以下是某次考试中某班15名同学的数学成绩:72,91,58,63,84,88,90,55,61,73,64,77,82,94,60.要求将80分以上的同学的平均分求出来画出程序框图,解析】试题分析:根据算法的三种结构的特点,结合本题的要求,我们可以用条件结构来判断成绩是否高于80分,用循环结构控制输入的次数,同时引进两个累加变量,分别计算高于80分的成绩的总和和人数试题解析:用条件结构来判断成绩是否高于80分,用循环结构控制输入的次数,同时引进两个累加变量S、m,分别计算高于80分的成绩的总和S和人数m.程序框图如图所示:,