C语言程序设计 教学课件 作者 李晓东 庞岩梅 娄嘉鹏 第3章.ppt

C语言程序设计 教学课件 作者 李晓东 庞岩梅 娄嘉鹏 第3章.ppt

ID:50351416

大小:1.11 MB

页数:73页

时间:2020-03-08

C语言程序设计 教学课件 作者 李晓东 庞岩梅 娄嘉鹏 第3章.ppt_第1页
C语言程序设计 教学课件 作者 李晓东 庞岩梅 娄嘉鹏 第3章.ppt_第2页
C语言程序设计 教学课件 作者 李晓东 庞岩梅 娄嘉鹏 第3章.ppt_第3页
C语言程序设计 教学课件 作者 李晓东 庞岩梅 娄嘉鹏 第3章.ppt_第4页
C语言程序设计 教学课件 作者 李晓东 庞岩梅 娄嘉鹏 第3章.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 李晓东 庞岩梅 娄嘉鹏 第3章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章算法设计13.1编写一个判断任意给定数是否为素数的程序3.2算法的概念3.3算法的结构3.4算法的数据组织3.5典型算法整理23.1编写一个判断任意给定数是否为素数的程序对于复杂的问题,思路和步骤才是关键考虑下面的问题:如何判断一个数是否是素数?3.1编写一个判断任意给定数是否为素数的程序对于复杂的问题,不能直接映射为程序,而是首先思考问题的解决思路,思考这个问题手工如何去解,手工步骤出来了,得到最终程序只是一个把步骤映射为程序的问题。3.1编写一个判断任意给定数是否为素数的程序具体的做法是:(1)寻找思路使得问题可解;(2)由思路

2、获得手工求解的步骤(应选择典型输入进行手工求解验证);(3)把手工步骤映射为自动执行的程序。3.1编写一个判断任意给定数是否为素数的程序3.1.1思路和步骤3.1.2C语言代码63.1.1思路和步骤问题:如何判断一个数是否是素数?思路:对于输入的整数n,可以计算它除以1到n的余数,如果有且只有两次余数为0,则为素数,否则不是素数。3.1.1思路和步骤手工求解的步骤是什么呢?对于输入的数n,让n除以1,若余数为0,则计数器加1;让n除以2,若余数为0,则计数器加1;直到让n除以n,若余数为0,则计数器加1。总共用n次除法,即n个步骤就能够解

3、决。3.1.1思路和步骤是不是对每个数都能保证经过这些步骤得到正确答案呢?如果n为负数呢?如果n为0、1按照上述步骤又怎样呢?还有其他情况吗?没有了。3.1.1思路和步骤最终步骤为:(1)判断输入的数,若为负数,输出“应输入非负整数”,结束;(2)n依次除以1到n,若余数为0则计数器加1;(3)若计数器为2,则输出“素数”,否则输出“非素数”;(4)结束;3.1.2C语言代码经过映射,可以得到下面的代码:#includevoidmain(){intn,i,c;printf(“inputainteger:”);scan

4、f(“%d”,&n);if(n<0){printf(“应输入非负整数”);return;}for(i=1,c=0;i<=n;i++)if(n%i==0)c++;if(c==2)printf(“素数”);elseprintf(“非素数”);}3.2算法的概念3.2.1什么是算法3.2.2算法的描述3.2.1什么是算法算法(Algorithm)简单地说,就是步骤的序列,也就是有后继关系的步骤的集合。如果每一个步骤被看作一个节点,那算法就可以看作是一个有向图。3.2.1什么是算法一个算法应该具有以下五个基本的特征:输入输出确切性可行

5、性有穷性3.2.1什么是算法对于一个问题来说,满足上述5个基本特征的能够解决该问题的步骤序列都是这个问题的算法,所以一个问题的求解算法可以有许多个。好的算法应该速度快,耗费的资源少,反之则是不好的算法。3.2.1什么是算法在算法方面,基本的能力是:如何找出一个问题的算法如何对算法进行优化(分析算法的好坏,通过优化,获得优良的算法)。3.2.2算法的描述算法常用的描述方式有:自然语言伪代码流程图N-S图3.2.2算法的描述1.自然语言自然语言就是用人们日常使用的语言描述解决问题的方法和步骤.通俗易懂,但在语法和语义上往往具有多义性,并且比较

6、烦琐,对程序流向等描述不明了、不直观。前面描述判断一个数是否为素数的算法就使用的是这种方式。3.2.2算法的描述2.伪代码伪代码是介于自然语言和计算机语言之间的文字和符号,它与一些高级编程语言(如VisualBasic和VisualC++)类似,但是不需要真正编写程序时所要遵循的严格规则。伪代码用一种从顶到底,易于阅读的方式表示算法。在程序开发期间,伪代码经常用于“规划”一个程序,然后再转换成程序。用伪代码描述判断一个数是否为素数的算法printf(“inputainteger:”)scanf(“%d”,&n)if(n<0){printf

7、(“应输入非负整数”)return}计数器c=0对于从1到n的数iif(i是n的因子)c++;if(c==2)printf(“素数”)elseprintf(“非素数”)return3.2.2算法的描述3.流程图流程图使用不同的几何图形来表示不同性质的操作,使用流程线来表示算法的执行方向。比起前两种描述方式,具有直观形象、逻辑清楚、易于理解等特点,但它占用篇幅较大,流程随意转向,较大的流程图不易读懂。3.2.2算法的描述流程图符号及说明流程图符号名称说明起止框表示算法的开始和结束处理框表示完成某种操作,如初始化或运算赋值等。判断框表示根据一

8、个条件成立与否,决定执行两种不同操作的其中一个输入输出框表示数据的输入输出操作流程线用箭头表示程序执行的流向连接点用于流程分支的连接判断一个数是否为素数的算法流程图开始结束输出

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。