《算法与流程图课件》由会员分享,可在线阅读,更多相关《算法与流程图课件(23页珍藏版)》请在金锄头文库上搜索。
1、C语言程序设计计算机技术教研室胡少军Email: Tel: 87091641目录第一章 绪论第二章 算法与流程图第三章 数据类型、运算符和表达式第四章 程序的控制结构第五章 函数第六章 数组第七章 指针第八章 结构体第九章 文件操作第二章 算法与流程图1、程序数据结构算法2、简单算法举例3、算法特性4、算法的自然语言表示5、算法的流程图表示6、算法的伪代码表示1、程序数据结构算法Niklaus Wirth,designer of PascalWirth, Niklaus (1976) (in English). Algorithms + Data Structures = Program. P
2、rentice Hall. 0130224189. ISBN 978-0130224187程序:为计算机解题编制的一组指令集算法:处理问题的策略数据结构:处理信息的表示Turing Award, 19842、简单算法举例求和:1+1/2+1/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/10
3、0改进的算法:S1: 初始化sum=0, i=1S2:如果i 100,执行S3;否则执行S5S3: sum = sum+1/iS4: i=i+1,跳转到S2S5: 输出sum,算法结束2、简单算法举例从3个数A、B、C中找出最大的数。算法1:S1:如果AB,执行S2;否则执行S3S2: 如果AC,执行S4;否则执行S6S3: 如果BC,执行S5;否则执行S6S4: 输出AS5: 输出BS6: 输出C2、简单算法举例从3个数A、B、C中找出最大的数。算法2:S1: 初始化max=AS2:如果AB,执行S3;否则max=B,执行S3S3: 如果maxC,执行S4;否则max=C,执行S4S4: 输
4、出max算法的五个特点:有输入(Input):零个或多个输入。有输出(Output):一个或多个输出。有穷性(Finiteness):对于任意一组合法的输入值,在执行有穷步骤之后一定能结束。可行性(Effectiveness):所有操作都可通过已经实现的基本操作运算有限次来实现。确定性(Definiteness):算法中每一步的描述都无二义性,只要输入相同,初始状态相同,无论执行多少遍,结果都应该相同。Turing Award, 19743、算法的特性“好”算法的特点:正确性(Correctness):满足问题的需求。易读性(Readability):便于理解、测试和修改。健壮性(Robust
5、ness):输入非法数据时,算法能做出适当处理,不会产生难以预料的结果。时空效率(Efficiency):执行时间短,低存储。3、算法的特性4、算法的自然语言表示优点通俗易懂缺点文字冗长、不直观不适合描述分支循环结构从从3个数个数A、B、C中找出最大的数。中找出最大的数。S1: 如果AB,执行S2;否则执行S3S2: 如果AC,执行S4;否则执行S6S3: 如果BC,执行S5;否则执行S6S4: 输出AS5: 输出BS6: 输出C5、算法的流程图表示从3个数A、B、C中找出最大的数。开始开始结束结束输入输入A,B,CABACCB输出输出B输出输出C输出输出A是是是是是是否否否否否否5.1 流程
6、图基本单元起止框起止框输入输入/ /输出框输出框处理框处理框判断框判断框连结点连结点流程线流程线5.2 流程图绘制例输入50个学生的姓名和成绩,输出不及格学生的名单。开始开始结束结束i=1输入输入ni, sii50是是i=1si50是是i=i+1否否是是否否否否5.2 流程图绘制例输入50个学生的姓名和成绩,输出不及格学生的名单。开始开始结束结束i=1输入输入ni, sii50是是i=1si50是是i=i+1否否是是否否否否115.3 三种基本结构对应流程图(1)顺序结构AB5.3 三种基本结构对应流程图(2)选择结构ABp是是否否5.3 三种基本结构对应流程图(3)循环结构:当型while
7、(p) B; Bp是是否否5.3 三种基本结构对应流程图(3)循环结构:直到型do B; while (p);Bp是是否否5.4 练习(1)用流程图表示判断闰年的算法。(2)用流程图表示判断一个正整数是否是素数的算法。5.5 用伪代码表示算法用介于自然语言和计算机语言之间的文字和符号表示算法无固定严格的语法规则beginendifelsedowhilewhile=,=input, print例如:求和算法的伪代码1+1/2+1/3+1/4+1/5+1/100beginsum=0i=1while (i 100) beginsum = sum + 1/ii = i+1end print sumend本章小结“好”算法的特点算法的流程图表示