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

上传人:sccc 文档编号:5378225 上传时间:2023-07-01 格式:PPT 页数:37 大小:267.01KB
返回 下载 相关 举报
C语言程序设计课件ppt及程序代码第2章算法.ppt_第1页
第1页 / 共37页
C语言程序设计课件ppt及程序代码第2章算法.ppt_第2页
第2页 / 共37页
C语言程序设计课件ppt及程序代码第2章算法.ppt_第3页
第3页 / 共37页
C语言程序设计课件ppt及程序代码第2章算法.ppt_第4页
第4页 / 共37页
C语言程序设计课件ppt及程序代码第2章算法.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《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 否则算法结束。此算法较上面的算法具有通用性和灵活性,6,2.2 简单算法举例,例2.4

3、求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“不是素数”,算法结束;否则执行S5 S5:i+1i S6:如果in-1,返回S3;否则打印n“是素

4、数”;然后算法结束。,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 算法的特性,有穷性:有限的操作步骤和合理的计算时间。确定性:不应当产生“歧义性”。有零个或多个输入有一个或多个输出:算法的输出不一定就是计算机的打印输出。有效性:如除数不得为零。,10,2.4 怎样表示一个算法,自然语言表示传统流程图表示N

5、-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.10:用流程图算法判断素数,此处应该填写什么?,16,2.4 怎样表示一个算法,例 2.10:用流程

6、图算法判断素数,n-1,sqr(n),17,2.4 怎样表示一个算法,可以看出流程图所包含的部分:(1)图框:表示相应操作;(2)流程线:表示操作的先后顺序;(3)框内外必要的文字说明。流程图表示算法:优点:形象直观、表示清晰,各框之间逻辑关系清楚 缺点:流程图占篇幅较多,当算法复杂时,画流程图费时且不方便,18,2.4 怎样表示一个算法,算法的三种基本结构(1)顺序结构,19,2.4 怎样表示一个算法,算法的三种基本结构(2)选择结构,20,2.4 怎样表示一个算法,算法的三种基本结构-循环结构 当(while)型循环结构,当(while)型循环结构 功能:给定条件P1成立时,执行A,执行完

7、后再判断条件是否成立,如 此反复,直到某次P1条件不成立为止,三种结构的共点:,当型循环实现5个数的打印 输出用传统流程图算法实现,确实可以?,21,2.4 怎样表示一个算法,算法的三种基本结构-循环结构 直到型(Until)循环,当(while)型循环结构 功能:给定条件P1成立时,执行A,执行完后再判断条件是否成立,如 此反复,直到某次P1条件不成立为止,三种结构的共点:,直到型循环实现5个数的打印 输出用传统流程图算法实现,22,2.4 怎样表示一个算法,三种结构的共点:(1)只有一个入口(2)只有一个出口.(3)结构内的每一部分都有机会被执行到每一框内应有一条从入口到出口的路径通过(4

8、)结构内不能存在死循环,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 怎样表示一个算法,用计算机语言表示算法,27,2.5结构化程序,结构化程序:就是用高级语言表示的算法,三种基本结构组成的程序必然是结构化程序。设计思路 自顶向下、逐步细化、模块化设

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

10、8,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,复习要点,对于一个给定的问题,懂得如何设计算法来解决,并用一种常用方法表示该算法;了解面向过程的结构化程序设计思想,对于一个复杂的问题,懂得如何划分模块,设计算法;程序设计语言是次要的,算法是关键算法是关键。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号