c语言程序设计c第2章算法_第1页
c语言程序设计c第2章算法_第2页
c语言程序设计c第2章算法_第3页
c语言程序设计c第2章算法_第4页
c语言程序设计c第2章算法_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第2章 程序的灵魂-算法7/30/20221编辑课件主要内容2.1 算法的概念2.2 简单算法举例2.3 算法的特性2.4 算法的表示2.5 结构化程序设计方法22.1 算法的概念数据和操作的关系:数据是操作的对象,操作的目的是对数据进行加工,以得到期望的结果。#include “stdio.h”void main( ) int a,b,c; scanf(%d,%d,&a,&b); if (ab) c=a; else c=b; printf(“max=%dn,c); 对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据的结构。对操作的描述:即操作步骤,也就是算法。1.引例一个程序应包

2、括的两个方面:32.1 算法的概念 (1)著名计算机科学家沃斯(Nikiklaus Wirth)提出了一个公式: 数据结构 + 算法 = 程序 (2)设计程序时,还要考虑采用好的设计方法-结构化程序设计方法。因此有: 程序 = 数据结构 + 算法 +程序设计方法+语言工具和环境2.程序的构成所谓程序,简单讲就是一组计算机能识别和执行的指令。算法是灵魂;数据(结构)是加工对象;语言是工具;编程需要采取合适的方法。 以上4个方面是一个程序设计人员应具备的知识。设计一个程序时要综合运用这几方面的知识。本门课程重点讲述算法的设计。(注意数据结构这门课程)42.1 算法的概念3.算法的概念 广义地说,为

3、解决一个问题而采取的方法和步骤,就称为算法。(用计算机解决问题的步骤,即计算机算法。) 计算机算法可分为两大类:数值算法求方程的根求函数的定积分非数值算法图书检索人事管理算法解决做什么和怎么做的问题。程序中的按一定顺序列出的操作语句,就是算法的体现。52.2 简单算法举例例2.1:求12345最原始的方法: 步骤1: 求12, 得结果2。 步骤2: 将第1步得到的结果再乘以3, 得结果6。 步骤3: 将第2步得到的结果再乘以4, 得结果24。 步骤4: 将第3步得到的结果再乘以5, 得120。如果按照此方法,求123.100,要写多少步?99步!6改进的方法(或通用的方法): 先设两个变量p和

4、i,p代表被乘数,i代表乘数。并且将每一步乘积直接放入被乘数变量p中。用循环算法求结果。 步骤1:令p=1 步骤2:令i=2 步骤3:使pi,并将乘积放入p中。通常表示为pi=p 步骤4:使 i 的值加1,表示为 i+1=i 步骤5:如果i 不大于5,返回到步骤3继续向下执行;否则算法结束。p中的值即最后结果。 2.2 简单算法举例采用此方法,求123.100,如何?简练!7例2.2:有两个数a,b,按从大到小的顺序打印它们。步骤1: 输入a,b的值;步骤2: 如果ab,则先打印a,再打印b; 否则,先打 印b,再 打印a;算法结束。详细例题见课本16-18页。2.2 简单算法举例8 算法的5

5、个特性: 有穷性:一个算法应包含有限的操作步骤,而不能是无限的。 确定性:算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。 有零个或多个输入:所谓输入是指在执行算法时需要从外界取得必要的信息。 有一个或多个输出:算法的目的是为了求解,“解”就是输出。 有效性:算法中的每一个步骤都应当能有效的执行,并得到结果。2.3 算法的特性92.4 算法的表示2.4.1用自然语言表示2.4.2用流程图表示2.4.3用N-S图表示2.4.4用伪代码表示2.4.5用计算机语言表示102.4.1用自然语言表示算法例2.1和例2.2的算法是用自然语言写的。自然语言指人们日常使用的语言,如汉语、英语等

6、。用自然语言表示算法的特点:通俗易懂,但不严谨,容易产生歧义。除非问题很简单,一般不用自然语言描述算法。112.4.2用流程图表示算法流程图采用一些图形框表示算法要表述的各种操作。美国国家标准化协会ANSI规定了一些常用的流程图符号: 起止框处理框判断框输入输出框流程线注释连接点或12用流程图表示算法举例例2.3 计算1x3x11的值 步骤1:令p=1 步骤2:令i=1 步骤3:使p x i,并将乘积放入p中。通常表示为 p x i = p 步骤4:使 i 的值加2,表示为 i+ 2 = i 步骤5:如果i 不大于11,返回到步骤3继续向下执行;否则算法结束。p中的值即最后结果。开始1=p1=

7、ip i=p i+2=ii11真结束假输出p的值13例2.2 有两个数a,b,按从大到小的顺序打印它们。步骤1:输入a,b的值;步骤2:如果ab,则先打印a,再打印b;否则,先打印b,再打印a;算法结束。 真假开始ab结束输出b,a的值输入a,b的值输出a,b的值用流程图表示算法举例14三种基本结构-顺序结构顺序结构: BA虚线框内是一个顺序结构。AB两个框是顺序执行的:按图中所画的框的顺序,先执行A操作,再执行B操作。15选择结构虚线框内是一个选择结构,也称为分支结构。此结构包括一个选择框,框中写有一个条件,根据给定的条件是否成立,从而选择执行A框还是B框。条件PAB成立不成立条件PA成立不

8、成立三种基本结构-选择结构B操作为空时,画成直线16循环结构(当型-while型)虚线框内是一个当型循环结构。当给定的条件成立时,执行A框中的操作;执行完A操作后,判条件P是否成立;如果仍成立,继续执行A操作;如此反复执行A框中的操作,直到条件P不成立为止。三种基本结构-循环结构条件PA不成立17循环结构(直到型-until型)虚线框内是一个直到型循环结构。先执行A框中的操作;执行完A操作后,判条件P是否成立;如果不成立,继续执行A操作;如此反复执行A框中的操作,直到条件P成立为止。条件PA成立三种基本结构-循环结构18以上3种基本结构,有以下共同特点:1)只有一个入口。2)只有一个出口。3)

9、结构内的每一个部分都有机会被执行到。4)结构内不存在“死循环”。19用基本结构的组合表示算法,从而去掉了流程线。避免了随意的跳转。1973年两名美国学者提出了一种新的流程图形式,并用二人名字的第一个字母组合命名了该流程图。即N-S流程图,也称盒图。三种基本结构的表示:2.4.3用N-S图表示算法AB P成立 AB不成立A当条件P成立时A直到条件P成立20用N-S流程图表示举例这两个操作之间是顺序关系1=P1=i直到 i11 p x i=p i+2=i打印P的值这是一个顺序结构这是一个循环结构上述算法由基本结构组成例2.3 计算1x3x11的值 步骤1:令p=1 步骤2:令i=1 步骤3:使p

10、x i,并将乘积放入p中。通常表示为 p x i = p 步骤4:使 i 的值加2,表示为 i+ 2 = i 步骤5:如果i 不大于11,返回到步骤3继续向下执行;否则算法结束。p中的值即最后结果。212.4.4用伪码表示算法伪码 是用一种介于自然语言和计算机语言之间的文字和符号来描述算法。(类Pascal语言或者类C语言) 好处前面的算法可用伪码表示为:开始 置p的初值为1 置i的初值为1 当i 小于11时,执行下面的操作: 使 p=p x i 使 i=i+2 打印 p 的值结束书写方便,格式紧凑,易懂,便于向计算机语言过渡。目前使用的比较多,特别是在科技论文中。222.4.5用计算机语言表

11、示算法只有用计算机语言描述的算法才能被计算机的编译环境识别,并被处理、执行。用计算机语言表示算法必须严格遵守所用语言语法规则。前面几种描述算法的方法对文字等格式要求不严,一般来说,只要能示意就行。例2.3用C语言表示为:#include int main() int p,i; p=1; i=1; while(ip3=ip i=p i+2=ii101真结束假输出p的值这两个操作之间是顺序关系这是一个循环结构这是一个顺序结构上述算法由基本结构组成例2.3 计算1x3x11的值 步骤1:令p=1 步骤2:令i=1 步骤3:使p x i,并将乘积放入p中。通常表示为 p x i = p 步骤4:使 i

温馨提示

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

最新文档

评论

0/150

提交评论