C程序设计第02章-程序的灵魂-算法.pptVIP

  • 2
  • 0
  • 约2.62千字
  • 约 22页
  • 2017-12-26 发布于河北
  • 举报
C程序设计第02章-程序的灵魂-算法

第2章 算法的概念 简单算法举例 算法的特性 怎样表示一个算法 结构化程序设计方法 1-算法的概念 算法?为解决一个问题而采取的方法和步骤。 计算机算法分为两大类: 数值运算算法和非数值运算算法 程序? 计算机指令的序列 它包括对数据的描述(数据结构)和 对操作的描述(算法) 著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:数据结构+算法=程序 算法是指为解决某一特定的问题,所给出的一系列确切的、有限的操作步骤;数据结构是对参与运算的数据以及数据的关系的描述,算法和数据结构是程序的两个重要方面。 2-简单算法举例 求2,6,9,3,7,5最大值 第一步把第一个数2=max 第二步max与其后的所有数逐个比较 第三步如果max小于被比较的数,把该数存入max,转第四步;如果max大于被比较的数,转第二步 第四步比较完所有的数,显示最大数 3-算法的特性 有穷性 确定性 有零个或多个输入 有一个或多个输出 有效性 4-怎样表示一个算法 用自然语言表示算法 流程图表示算法 三种基本结构(1)顺序结构(2)选择结构 (3)循环结构 2. 传统流程图表示 例: S=1+2+3+……+99+100的传统流程图 3. 用N-S流程图表示 N-S流程图(去掉流程线的矩形框) 例:用N-S结构图描述 S=1+2+3+……+99+100的算法: 4.用伪代码表示 伪代码是用一种介于自然语言和计算机语言之简的文字和符号来描述算法。它书写方便、格式紧凑、比较好懂、也便于向程序过度。用伪代码描述算法并无固定的、严格的语法规则,只要把意思表达清楚,并且书写的格式要写成清晰易读的形式。 例:用伪代码描述 S=1+2+3+……+99+100的算法: i=1 s=0 Loop: s+i s i+1 i if i=100 then goto Loop print s 5.用计算机语言描述算法 必须严格遵循所用语言的语法规则! 主要包括设计算法和实现算法 5-结构化程序设计方法 自顶而下 逐步细化 模块化设计 结构化编码 程序设计的模块化思想 结构化程序设计思想产生于上世纪60~70年代,是随着计算机硬件成本的急剧下降,软件规模和复杂性的不断增加,而提出的一种至今仍广为使用的软件开发技术。结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。其目的是为了增加程序的易读性,保证程序的质量,降低软件成本,从而提高软件的生产和维护效率。 作业 第二章(P36) 2.4(1~5) 2.8(1~3) * * 主讲教师:sbchen,Ph.D. joysbc@163.com 本章主要内容: 自然语言可以是中文、英文等,用自然语言表示的算法通俗易懂,但一般篇幅冗长,表达上往往不易准确,容易引起理解上的“岐义性”,用于算法较简单的情况,例如s=1+2+3+.....+99+100的自然语言算法如下。 1. 自然语言表示 分析:设i从1到100变化,每次i变化之后将结果加入累加和S中,S的初值设为0。自然语言算法如下: (a) 将1送到i之中; (b) s+i的结果送到s之中; (c) i自增1; (d) 将i与100比较,如果不大于100,则跳转(b),否则转(e); (e) 输出S的值,即累加结果。 表示对某项的解释或说明 注释框 表示两个具有同一标记的“连接点”应连接成一个点 连接点 表示流程的方向 流程线 表示对框内的条件进行处理 判断框 表示对框内的内容进行处理 处理框 表示输入输出操作 输入/输出 表示算法的开始与结束 止起框 含义 符号名称 符号 ……. 圆内有标记 程序三种基本结构(用传统流程图表示) A B 顺序结构 ? A B 选择结构 T F T ? A F 当循环 F T ? A 循环结构 直到型 i=1 s=0 s=s+i 输出 s i=100 i=i+1 y n A B P T F A B P=T P=T A A 1 i 0 s 当i=100 s+i s i+1 i 打印S 算法举例 例1:求 1-1/2 + 1/3 –1/4 +…+ 1/99 –1/100。 S1: 1 ?sign S2: 1 ?sum S3: 2 ?deno S4: (-1)*sign ?sign S5: sign*

文档评论(0)

1亿VIP精品文档

相关文档