欢迎来到天天文库
浏览记录
ID:59492030
大小:904.50 KB
页数:106页
时间:2020-09-13
《第4章程序的控制结构ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章程序的控制结构C语言大学实用教程内容提要算法的描述方法基本控制结构基本控制语句常用算法,如累加、累乘、统计、递推、迭代、穷举等程序的基本版式结构化程序设计的基本思想算法的概念数据结构+算法=程序算法:为解决一个具体问题而采取的确定的有限的操作步骤,这里仅指计算机能执行的算法算法特性:有穷性确定性有效性没有输入或有多个输入有一个或多个输出算法的表示方法自然语言表示传统的流程图表示N-S结构化流程图表示伪代码表示S1:使p=1S2:使i=2S3:使p与i相乘,乘积仍放在变量p中,可表示为:p*ipS4:使i的值加1,即i+1iS5:如果i不大于5,返回重
2、新执行S3;否则,算法结束最后得到p的值就是5!的值例:求1×2×3×4×51、用自然语言表示算法用自然语言表示算法的优缺点优点:通俗易懂缺点:文字冗长,容易出现歧义性描述包含分支和循环的算法,不很方便2、用传统的流程图表示算法起止框输入输出框处理框判断框流程线连接点注释框x≧0Y……N……一个入口两个出口2.4.2用流程图表示算法流程图是用一些图框来表示各种操作用图形表示算法,直观形象,易于理解起止框输入输出框处理框判断框流程线连接点注释框③①②①③②③位置不够防止交叉例:用流程图表示1×2×3×4×51ti>5开始2it*iti+1i结束NY3、用
3、N-S结构化流程图表示算法传统流程图的弊端传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制使用者可以毫不受限制地使流程随意地转来转去,使人难以理解算法的逻辑构成程序的三种基本结构顺序结构选择结构循环结构已经证明,任何程序均可只用这三种结构综合描述只用这三种结构编制的程序,叫结构化程序程序必须符合结构化规则结构化程序设计的核心思想采用顺序、选择和循环三种基本结构作为程序设计的基本单元只有一个入口;只有一个出口;无死语句,即不存在永远都执行不到的语句;无死循环,即不存在永远都执行不完的循环。采用“自顶向下、逐步求精”和模块化的方法进行结构化程序设
4、计BA传统流程图顺序结构BN如果成绩<60那么通知补考否则告知你考试成绩AY条件P分支结构(选择结构)条件PA当型循环直到型循环真假假条件PA假真循环结构用N-S流程图表示算法N-S流程图用以下的流程图符号:ABABYNpA当p1成立A直到p2为假顺序结构选择结构循环结构(当型)循环结构(直到型)例:将5!算法用N-S图表示。直到i>51t输出t2it*iti+1i4、用伪代码表示算法伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法用伪代码写算法并无固定的、严格的语法规则,可以用英文,也可以中英文混用例:用伪代码表示5!的算法。begin(
5、算法开始)1t2iwhilei≤5{t*iti+1i}printtend(算法结束)顺序结构程序设计举例例1:将用华氏法表示的温度(F)转换为以摄氏法表示的温度(C)。算法:#includemain(){floatf,c;scanf(“%f”,&f);c=(5.0/9)*(f-32);printf("f=%fc=%f",f,c);}//定义f和c为单精度浮点型变量//输入f的值//计算c的值//输出f和c的值例2:计算存款利息。有1000元,想存一年。有三种方法可选:(1)活期,年利率为r1(2)一年期定期,年利率为r2(3)
6、存两次半年定期,年利率为r3请分别计算出一年后按三种方法所得到的本息和。解题思路:确定计算本息和的公式。从数学知识可知:若存款额为p0,则:活期存款一年后本息和为:p1=p0(1+r1)一年期定期存款,一年后本息和为:p2=p0(1+r2)两次半年定期存款,一年后本息和为:算法:#includemain(){floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198;floatp1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(”%f
7、%f%f”,p1,p2,p3);}定义变量同时赋予初值选择结构程序设计在现实生活中,需要进行判断和选择的情况是很多的如果你在家,我去拜访你如果考试不及格,要补考如果遇到红灯,要停车等待周末我们去郊游70岁以上的老年人,入公园免票C语言有两种选择语句:(1)if语句,实现两个分支的选择结构(2)switch语句,实现多分支的选择结构If语句if(表达式)语句1;例3:有一函数:编一程序,输入一个x值,要求输出相应的y值。#includemain(){scanf("%d",&x);if(x<0)y=-1;if(x==0)y=0;if(x>
8、0)y=1;printf("x=%d,
此文档下载收益归作者所有