欢迎来到天天文库
浏览记录
ID:43342439
大小:90.50 KB
页数:20页
时间:2019-10-08
《C语言 第2章 算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第2章程序的灵魂-算法一个程序应包括以下两个方面的内容:(1)对数据的描述在程序中要指定数据的类型和数据的组织形式,即数据结构。(2)对操作的描述即操作步骤算法。数据是操作的对象,操作的目的是对数据进行加工处理,以得到预期的结果。算法+数据结构=程序1.算法的性质算法就是进行操作的方法和操作步骤。程序就是用某种程序设计语言描述的解题算法。算法的性质为:解题算法是一有穷动作序列;此动作序列只有一个初始动作;序列中每一动作仅有一个后继动作;序列终止表示问题得到解答或问题没有解答。程序=算法+数据结构+程序设计方法+语言工具和环
2、境2简单算法举例例2.1求1×2×3×4×5。S1:1→p,2→iS2:p×i→pS3:i+1→iS4:若i>5,算法结束;否则转S2。例2.2打印50个学生中成绩大于80的学生。S1:1→iS2:若gi≥80,则打印ni和gi;否则不打印S3:i+1→iS4:若i≤50,返回S2;否则算法结束。用循环算法实现时,注意结束条件。流程图表示见教材P20图2.6、2.7N-S图表示见教材P26图2.29流程图表示见教材P20图2.8、2.9N-S图表示见教材P27图2.30、图2.31算法表示如下:S1:2000→yearS2
3、:若year不能被4整除,则输出year不是闰年,转S6S3:year能被4整除,不能被100整除,则输出year是闰年,转S6S4:year能被100整除,又能被400整除,则输出year是闰年;否则输出不是闰年。然后转S6S5:输出year不是闰年S6:year+1→yearS7:若year≤2500,转S2;否则算法停止。例2.3判2000~2500间的闰年。多次判断,逐步缩小范围year不能被4整除,Nyear能被4整除,但不能被100整除,Yyear能被100整除,又能被400整除,Y其它,N①②③④流程图表示见
4、教材P22图2.10N-S图表示见教材P27图2.32注意:有的问题对判断的先后次序无关;但有的问题不能任意颠倒判断的先后顺序。例2.4求S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)×signS5:term=sign×(1/deno)S6:sum=sum+termS7:deno=deno+1S8:若deno≤100返回S4;否则算法结束。流程图表示见教材P23图2.11N-S图表示见教材P27图2.33例2.5判断一个大于等于3的正整数是否为素数。素数:只能被1和其本身整除的数。S1:输入n
5、的值S2:i=2(i作为除数)S3:n被i除,得余数rS4:若r=0,不是素数,算法结束;否则执行S5S5:i+1→iS6:若i≤n-1,返回S3;否则是素数,结束。实际上只需判断n能否被2~之间的整数整除即可。所以S6可改为:S6:若i≤,返回S3;否则是素数,结束。流程图表示见教材P23图2.12N-S图表示见教材P28图2.353.算法的组成要素操作。如算术运算、逻辑运算、关系运算、函数运算等。控制结构。用于控制组成算法的各操作的执行顺序。结构化程序设计中,顺序、选择和循环3种基本结构能组成任何结构的算法。AB结构化
6、流程图AB4.用流程图表示算法1)顺序结构常用传统流程图符号见教材P19图2.32)选择结构(又称选取结构、分支结构)PAB真假AB真P假结构化流程图只能执行A或B之一,两条路径汇合在一起然后出口。3)循环结构(又称重复结构)分为当型循环结构和直到型循环结构。PA真假A当P为真A直到P为真PA假真当型(while型)循环结构直到(until型)型循环结构KA1A2AiAnK=k1K=k2K=kiK=kn由选择结构派生的多分支选择结构用以上3种基本结构设计的程序,能处理任何复杂的问题。5.伪代码与逐步细化的程序设计方法伪代码
7、(pseudocode):介于自然语言与计算机语言之间的文字符号算法描述工具。一般步骤为:1)自顶向下,将问题描述为几个子问题或子功能,不要试图一下子就触及问题解法的细节。2)在子问题一级描述算法。用逐步细化法设计本程序的过程:1)用汉语来描述算法;2)用语句(关键字)和汉语的混合来细化算法;3)编写主函数;4)重复1)~3)步编写3个数中求最大数的函数。用C语句描述算法语句是高级语言源程序的基本组成单位。它按功能分为:操作运算语句:用语描述要执行的操作运算。流程控制语句:控制操作运算的执行顺序。伪代码没有固定,严格的语法
8、规则。用计算机语言表示算法必须严格遵循所用语言的语法规则。写出了C程序,仍然只是描述了算法,并没有实现算法。只有运行程序才是实现算法。例.3个数中取大数—逐步细化法设计程序①汉语描述“做什么”S1:输入3个数a,b,cS2:从a,b,c中找出最大数赋给maxS3:输出max②混合语言细化算法,考虑“做什
此文档下载收益归作者所有