c语言程序设计 算法ppt,C语言程序设计课件ppt及程序代码第2章算法.ppt

《C语言程序设计课件ppt及程序代码第2章算法.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件ppt及程序代码第2章算法.ppt(37页珍藏版)》请在人人文库网上搜索。

1、1,程序的灵魂算法,算法的概念 简单算法举例 算法的特性 怎样表示一个算法 结构化程序方法 总结,2,2.1 算法的概念,程序通常包含的内容有: (1)数据的描述:指定数据的类型和组织形式(数据结构) (2)操作的描述:编程的操作步骤,也称算法(algorithm) 操作的目的:对数据进行加工处理,以便得到结果。 厨师做菜肴: (1)配料:制作菜肴所需的原料 (2)步骤:制作某项菜肴时将原料按规定的步骤加工成所需的菜肴,3,2.1 算法的概念,著名计算机科学家沃思提出一个公式: 数据结构+算法=程序 再加上程序设计方法和语言环境 程序=算法+数据结构+程序设计方法+语言工具和环境,4,2.1 。

2、算法的概念,做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算法。 计算机算法:计算机能够执行的算法。 计算机算法可分为两大类: 数值运算算法:求数值的解 ; 非数值运算算法:事务管理领域。,5,2.2 简单算法举例,例2.1:12345 原始算法: S1:求12得结果2 S2:将23得结果6 S3:将64得结果24 S4:将245得结果120 上述方法虽正确,但较烦琐 解决此类问题的通用方法是: 设两个变量: p 存放被乘数和结果 i 存放乘数 S1:p=1 S2:i=2 S3:pip S4:i+1i S5:若i=5 返回s3 否则算法结束。 此算法较上面的算法具有通用性和。

3、灵活性,6,2.2 简单算法举例,例2.4 求1-1/2+1/3-1/4+.+1/99-1/100 算法如下 : S1: sign=1 S2: sum=1 S3: deno=2 S4: sign=(-1)sign S5: term=sign(1/deno) S6: sum=sum+term S7: deno=deno+1 S8: 若deno=100返回s4,否则算法结束。,7,2.2 简单算法举例,【例2.5】对一个大于或等于3的正整数,判断它是不是一个素数。 S1: 输入n的值 S2: i=2 S3: n被i除,得余数r S4:如果r=0,表示n能被i整除,则打印n“不是素数”,算法结束;否。

4、则执行S5 S5: i+1i S6:如果in-1,返回S3;否则打印n“是素数”;然后算法结束。,8,2.2 简单算法举例,【例2.5】对一个大于或等于3的正整数,判断它是不是一个素数。 S1: 输入n的值 S2: i=2 S3: n被i除,得余数r S4:如果r=0,表示n能被i整除,则打印n“不是素数”,算法结束;否则执行S5 S5: i+1i 改进: S6:如果i sqrt(n),返回S3;否则打印n“是素数”;然后算法结束,9,2.3 算法的特性,有穷性:有限的操作步骤和合理的计算时间。 确定性:不应当产生“歧义性”。 有零个或多个输入 有一个或多个输出:算法的输出不一定就是计算机的打。

5、印输出。 有效性:如除数不得为零。,10,2.4 怎样表示一个算法,自然语言表示 传统流程图表示 N-S流程图表示 伪代码表示 计算机语言表示,11,2.4 怎样表示一个算法,自然语言: 世界上男人没有了女人就慌了。,世界上男人没有了,女人就慌了。,世界上,男人没有了女人,就慌了。,12,2.4 怎样表示一个算法,用流程图表示算法 ANSI规定的流程图符号,已为世界各国采用,用图框表示操作,用图形表示算法。,13,2.4 怎样表示一个算法,【例2.6】将例2.1的算法用流程图表示。12345,14,2.4 怎样表示一个算法,例2.9 用流程图算法求2.4,15,2.4 怎样表示一个算法,例 2。

6、.10: 用流程图算法判断素数,此处应该填写什么?,16,2.4 怎样表示一个算法,例 2.10: 用流程图算法判断素数,n-1,sqr(n),17,2.4 怎样表示一个算法,可以看出流程图所包含的部分: (1)图框:表示相应操作; (2)流程线:表示操作的先后顺序; (3)框内外必要的文字说明。 流程图表示算法: 优点:形象直观、表示清晰,各框之间逻辑关系清楚 缺点:流程图占篇幅较多,当算法复杂时,画流程图费时且不方便,18,2.4 怎样表示一个算法,算法的三种基本结构 (1) 顺序结构,19,2.4 怎样表示一个算法,算法的三种基本结构 (2) 选择结构,20,2.4 怎样表示一个算法,算。

7、法的三种基本结构-循环结构 当(while)型循环结构,当(while)型循环结构 功能:给定条件P1成立时,执行A, 执行完后再判断条件是否成立,如 此反复,直到某次P1条件不成立为止,三种结构的共点:,当型循环实现5个数的打印 输出用传统流程图算法实现,确实可以?,21,2.4 怎样表示一个算法,算法的三种基本结构-循环结构 直到型(Until)循环,当(while)型循环结构 功能:给定条件P1成立时,执行A, 执行完后再判断条件是否成立,如 此反复,直到某次P1条件不成立为止,三种结构的共点:,直到型循环实现5个数的打印 输出用传统流程图算法实现,22,2.4 怎样表示一个算法,三种结。

8、构的共点: (1)只有一个入口 (2)只有一个出口. (3)结构内的每一部分都有机会被执行到 每一框内应有一条从入口到出口的路径通过 (4)结构内不能存在死循环,23,2.4 怎样表示一个算法,用N-S流程图表示顺序结构,用N-S流程图表示选择结构,用N-S流程图表示循环结构,24,2.4 怎样表示一个算法,用N-S流程图表示算法讨论上述各例,25,2.4 怎样表示一个算法,算法用伪代码表示: 例2.16 求5! 算法用伪代码表示 BEGIN(算法开始) 1t 2i While i=5 ti t i+1 i print t END(算法结束),26,2.4 怎样表示一个算法,用计算机语言表示算。

9、法,27,2.5结构化程序,结构化程序:就是用高级语言表示的算法,三种基本结构组成的程序必然是结构化程序。 设计思路 自顶向下、逐步细化、模块化设计、结构化编码。 程序结构: 按功能划分为若干个基本模块,形成一个树状结构。 各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。 其模块化实现的具体方法是使用子函数(子程序)。,28,2.5结构化程序,例2.22将1到1000之间的素数打印出来。埃拉托色尼筛法 123456789101112131415161718,23 5 7 9 11 13 15 17 ,234567891011121314151617。

10、18,23 5 7 11 13 17 ,29,2.5结构化程序,例2.22将1到1000之间的素数打印出来。 123456789101112131415161718,1)挖去1; 2)用下一个未被挖去的数P去除后面的各数,把P的倍数挖掉; 3)检查P是否小于 sqrt(n)的整数部分,如果是,则返回(2)继续执行,否则就结束。 4)纸上剩下的数就是素数。,30,2.5结构化程序,A,B,C,31,2.5结构化程序,A,B,C,32,2.5结构化程序,A,B,C,33,2.5结构化程序,是,Xi=0,34,2.5结构化程序,是,Xi=0,35,2.5结构化程序,是,否,是,否,使Xj=0,Xj=0,Xj能被Xi整除,36,2.5结构化程序,37,复习要点,对于一个给定的问题,懂得如何设计算法来解决,并用一种常用方法表示该算法; 了解面向过程的结构化程序设计思想,对于一个复杂的问题,懂得如何划分模块,设计算法; 程序设计语言是次要的,算法是关键算法是关键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值