大学C语言使用教程第02章算法与流程图.ppt_第1页
大学C语言使用教程第02章算法与流程图.ppt_第2页
大学C语言使用教程第02章算法与流程图.ppt_第3页
大学C语言使用教程第02章算法与流程图.ppt_第4页
大学C语言使用教程第02章算法与流程图.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,C语言程序设计,信管教研室:唐晶磊 E-Mail: Tel:87091337 Office:信息工程学院 306,2019年7月20日,C语言程序设计 唐晶磊,第一章 绪论 第二章 算法与流程图 第三章 数据类型、运算符和表达式 第四章 程序的控制结构 第五章 函数 第六章 数组 第七章 指针 第八章 结构体 第九章 文件操作,目 录,2019年7月20日,C语言程序设计 唐晶磊,1、程序数据结构算法 2、简单算法举例 3、算法特性 4、算法的自然语言表示 5、算法的流程图表示 6、算法的伪代码表示,第二章 算法与流程图,2019年7月20日,C语言程序设计 唐晶磊,Niklaus Wirth, designer of Pascal,Wirth, Niklaus (1976) (in English). Algorithms + Data Structures = Program. Prentice Hall. 0130224189. ISBN 978-0130224187,程序:为计算机解题编制的一组指令集 算法:处理问题的策略 数据结构:处理信息的表示,Turing Award, 1984,1、程序数据结构算法,2019年7月20日,C语言程序设计 唐晶磊,求和:1+1/2+1/3+1/4+1/5+1/100 蛮力法: S1: 先计算1/2=0.5,再与1相加得1.5 S2: 计算1/3=0.33333,与1.5相加得1.83333 S3: 计算1/4=0.25,与1.83333相加得2.08333 S99: 计算1/100=0.01,与5.177378相加得5.187378。,2、简单算法举例,2019年7月20日,C语言程序设计 唐晶磊,求和:1+1/2+1/3+1/4+1/5+1/100 改进的算法: S1: 初始化sum=0, i=1 S2: 如果i 100,执行S3;否则执行S5 S3: sum = sum+1/i S4: i=i+1,跳转到S2 S5: 输出sum,算法结束,2、简单算法举例,2019年7月20日,C语言程序设计 唐晶磊,从3个数A、B、C中找出最大的数。 算法1: S1: 如果AB,执行S2;否则AC,执行S4;否则AC,执行S5;否则BC执行S6 S4: 输出A S5: 输出B S6: 输出C,2、简单算法举例,2019年7月20日,C语言程序设计 唐晶磊,从3个数A、B、C中找出最大的数。 算法2: S1: 初始化max=A S2: 如果AB,执行S3;否则max=B,执行S3 S3: 如果maxC,执行S4;否则max=C,执行S4 S4: 输出max,2、简单算法举例,2019年7月20日,C语言程序设计 唐晶磊,算法的五个特点: 有输入 (Input):零或多个输入。 有输出 (Output):一或多个输出。 有穷性 (Finiteness):对于任意一组合法的输入值,在执行有穷步骤之后一定能结束。 可行性 (Effectiveness):所有操作都可通过已经实现的基本操作运算有限次来实现。 确定性 (Definiteness):算法每一步描述都无二义性,只要输入和初始状态相同,无论执行多少遍,结果都应该相同。,Turing Award, 1974,3、算法的特性,2019年7月20日,C语言程序设计 唐晶磊,“好” 算法的特点: 正确性 (Correctness):满足问题的需求。 易读性(Readability):便于理解、测试和修改。 健壮性(Robustness):输入非法数据时,算法能做出适当处理,不会产生难以预料的结果。 时空效率 (Efficiency):执行时间短,低存储。,3、算法的特性,2019年7月20日,C语言程序设计 唐晶磊,优点 通俗易懂 缺点 文字冗长、不直观 不适合描述分支循环结构,从3个数A、B、C中找出最大的数。 S1: 如果AB,执行S2;否则执行S3 S2: 如果AC,执行S4;否则执行S6 S3: 如果BC,执行S5;否则执行S6 S4: 输出A S5: 输出B S6: 输出C,4、算法的自然语言表示,2019年7月20日,C语言程序设计 唐晶磊,从3个数A、B、C中找出最大的数。,结束,输出A,5、算法的流程图表示,结束,输出A,2019年7月20日,C语言程序设计 唐晶磊,起止框,输入/输出框,处理框,判断框,连结点,流程线,5.1 流程图基本单元,2019年7月20日,C语言程序设计 唐晶磊,输入50个学生的姓名和成绩,输出不及格学生的名单。,开始,结束,i=1,输入ni, si,i50,是,i=1,si60,输出ni,i=i+1,i50,是,i=i+1,否,是,否,否,5.2 流程图绘制例,2019年7月20日,C语言程序设计 唐晶磊,输入50个学生的姓名和成绩,输出不及格学生的名单。,开始,结束,i=1,输入ni, si,i50,是,i=1,si60,输出ni,i=i+1,i50,是,i=i+1,否,是,否,否,1,1,5.2 流程图绘制例,2019年7月20日,C语言程序设计 唐晶磊,5.3 三种基本结构对应流程图,(1)顺序结构,A,B,2019年7月20日,C语言程序设计 唐晶磊,5.3 三种基本结构对应流程图,(2)选择结构,A,B,p,是,否,2019年7月20日,C语言程序设计 唐晶磊,5.3 三种基本结构对应流程图,(3)循环结构:当型 while (p) B; ,B,p,是,否,2019年7月20日,C语言程序设计 唐晶磊,5.3 三种基本结构对应流程图,(3)循环结构:直到型 do B; while (p);,B,p,否,是,2019年7月20日,C语言程序设计 唐晶磊,6、用伪代码表示算法,用介于自然语言和计算机语言之间的文字和符号表示算法 无固定严格的语法规则 beginend ifelse dowhile while =,= input, print,2019年7月20日,C语言程序设计 唐晶磊,例如:求和算法的伪代码,1+1/2+1/3+1/4+1/5+1/100,begin sum=0 i=1 while (i 100) begin sum = sum + 1/i i = i+1 end print sum end,2019年7月20日,C语言程序设计 唐晶磊,int main() float f; f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论