c语言课件第02章

c语言课件第02章

ID:20245111

大小:632.50 KB

页数:34页

时间:2018-10-10

c语言课件第02章_第1页
c语言课件第02章_第2页
c语言课件第02章_第3页
c语言课件第02章_第4页
c语言课件第02章_第5页
资源描述:

《c语言课件第02章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2章程序的灵魂------算法2.0引言2.1算法的概念2.2简单算法举例2.3算法的特性2.4怎样表示一个算法2.5结构化程序设计方法Return1程序应包含2方面的内容:对数据的描述:程序中指定数据的类型和数据的组织形式------数据结构对操作的描述:操作的步骤,即算法数据是操作的对象,操作的目的是对数据加工处理以得到期望的结果.以厨师需菜谱打比方.沃思提出了一个公式:数据结构+算法=程序除了上面2个主要方面还有其他因素,程序可表示为:程序=算法+数据结构+程序设计方法+语言工具和环境4方面中:算法是灵魂,数据

2、结构是加工对象,语言是工具,编程要采用合适的方法.本书不单单讲算法或是语言规则,而是结合这4方面,如何编写C程序[Return]2.0引言22.1算法的概念算法:解决一个问题而采取的方法和步骤做任何事情都有一定的步骤.如开会,购物,考大学,按一定顺序进行,缺一不可,日常生活中人们意识不到每件事都需事先设计出“行动步骤”。并不是只有“计算”的问题才有算法.例如:太极拳的拳谱,乐谱不仅要保证算法正确,还要考虑的是算法的质量.例如求解本书只考虑计算机算法.数值算法:目的是求数值解.如求方程的根,求积分等非数值算法:包括的面非

3、常广泛.最常见的用在事物管理领域Return32.2简单算法举例[案例2.1]求5!。方法1:步骤1:先求1×2,得结果2步骤2:将步骤1的结果乘以3,得结果6步骤3:6再乘以4,得24步骤4:24再乘以5,得最后的结果120。分析:算法正确,但太烦琐。若要求1000!,要写多少步骤呢?且不方便的是每次都直接使用上一步骤的结果方法2:设变量p为被乘数(乘积),i为乘数,改写如下S1:使p=1S2:使i=2S3:p×ipS4:i+1iS5:若i不大于5,则回到S3;否则算法结束。最后的p就是5!分析:若求1×3×5×

4、7×9×11,只做很少的改动即可。S2:i=3S4:i+2iS5:i11,回到S3,否则结束。说明方法2简练且通用。若条件改成i<11,结果会怎样?4[案例2.2]有50个学生,要求将他们之中成绩在80分以上者打印出来。变量i作为下标,用它来控制序号,ni代表第i个学生学号,gi代表第i个学生的成绩。算法如下:S1:1iS2:gi80,则打印ni和gi,否则不打印S3:i+1iS4:若i50,返回S2;否则算法结束5[案例2.3]判定20002500年中的每一年是否是闰年,将结果输出分析:满足下列条件之一

5、就是闰年:条件1,能被4整除,但不能被100整除;条件2,能被100整除同时又能被400整除设y为被测年份,算法如下:S1:2000yS2:若y不能被4整除,则输出y“不是闰年”。转到S6S3:若y能被4整除,不能被100整除,则输出y“是闰年”,转到S6S4:若y能被100整除,又能被400整除,则输出y“是闰年”;否则输出“不是闰年”。然后转到S6S5:输出y“不是闰年”S6:y+1yS7:若y2500,转S2继续执行。否则算法停止。6y不能被4整除非闰年条件a能被4整除,但不能被100整除闰年b能被100整

6、除,又能被400整除闰年c其他非闰年d考虑算法时,应仔细分析所需判断的条件,如何一步步缩小被判断的范围。有的问题,与判断条件的先后次序有关,根据具体问题决定逻辑。7[案例2.4]求级数的和:用有含义的单词作变量名,易于理解。sum表示累加和,deno是分母denominator缩写,sign代表数值的符号,term代表某一项,算法如下:S1:1signS2:1sum初始化工作S3:2denoS4:(-1)signsignS5:sign(1/deno)termS6:sum+termsum循环部分S7:de

7、no+1denoS8:若deno100返回S4,否则算法结束跳出循环条件8[案例2.5]对一个大于或等于3的正整数,判断它是否是素数。分析:素数的概念;判断一个数n是否素数的方法,将n作为被除数,将2到(n-1)各个整数轮流作除数,若都不能被整除,则n是素数。算法如下S1:输入n的值S2:2iS3:n被i除,得余数rS4:若r为0,表示n能被i整除,则打印n“不是素数”,算法结束;否则执行S5S5:i+1iS6:若in-1,返回S3;否则打印n“是素数”,然后结束实际上,n不必被2到n-1的所有整数除,只需被

8、2到n/2间整数除即可,甚至只需被2到之间的整数除即可。Return92.3算法的特性有穷性一个算法应包含有限的操作步骤,而不能是无限的。如算法包含语句:for(i=1;i>0;i++){}。实际上,“有穷性”是指在一个“合理的范围内”。若让计算机执行一个历时几千年才结束的算法,虽然是有穷的,但超过了合理的限度。“合理限度”无严格

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

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

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