欢迎来到天天文库
浏览记录
ID:43450477
大小:318.50 KB
页数:33页
时间:2019-10-08
《《C语言程序设计教程》》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《C语言程序设计教程》HuanghuaiUniversityDepartmentofComputerScience主讲:方志刚黄淮学院计算机科学系高等教育出版社谭浩强张基温等编著第三章C程序的流程设计§1算法§2C语句概述§3选择结构程序设计§3.1双分支结构(if-else)§3.1~3.2多分支结构(elseif、switch)§4循环结构程序设计2学时2学时本节4学时§1算法程序算法数据结构=+菜谱加工方法加工原料=+数据的类型和组织形式解决问题的方法和步骤每件事都需要事先设计出方法步骤。如:春节回家(收
2、拾行李、买车票、按时乘车、到站下车、乘公交车回家)程序算法数据结构=+菜谱加工方法加工原料=+数据的类型和组织形式解决问题的方法和步骤一、算法的性质与组成要素有穷性:算法是一个有穷动作序列,不能是无限的。确定性:每一步的含义应唯一、明确,不能有歧义性。有序性:算法只能有一个起始动作,每个动作仅有一个后继动作。有0个或多个输入,有1个或多个输出:没有输出的算法没有意义。操作:算术运算、关系运算、逻辑运算、函数运算、位运算、I/O操作等。控制结构:控制算法各操作的执行顺序(不同顺序会得到不同结果)。结构化程序设计方法
3、要求:一个程序只能由三种基本控制结构组成:顺序结构:算按书写顺序执行。选择结构:根据判断选择执行路径。循环结构:将一条或多条语句重复执行多次。性质组成要素二、算法的描述不够直观1、自然语言例如:求n!(1)输入n的值;(2)若n=0,则f=1,结束;否则:①f=1,i=1②f*i→f,即f=f*i③i+1→i即i=i+1④若i<=n则返回②,否则结束。(3)f为所求。三种基本程序结构ABPABYNPAYNPAYNPAYN顺序结构分支结构(选择结构)循环结构当(while)型循环结构直到(untile)
4、型循环结构P57图3.1常用的流程图符号起始框输出输出判断框处理框流程线连接点注释框2、传统流程图流程线的无限制使用,会导致程序无序跳转,造成难以理解。因此,规定使用三种基本程序结构组成算法。其共同特点是:①只有一个入口和一个出口②结构内每部分都有机会被执行,不存在死循环。(1)输入n的值;(2)若n=0,则f=1,结束;否则:①f=1,i=1②f*i→f,即f=f*i③i+1→i即i=i+1④若i<=n则返回②,否则结束。(3)f为所求。自然语言开始i<=nf=1,i=1结束i=i+1输出ff=f*iY
5、Nn=0YN输入nP59图3.4:求n!3、结构化流程图(N-S图)P成立不成立ABAB当P成立时A直到P成立为止A顺序结构分支结构(选择结构)当(while)型循环结构直到(untile)型循环结构输入nYn==0Nf=1f=1i=1f=f*ii=i+1i<=n输出fi<=nf=1,i=1i=i+1输出ff=f*iYNn=0YN输入nP59图3.6N-S图的三种基本结构P60图3.7:求n!4、问题分析图(PAD图)顺序结构分支结构循环结构P60图3.8PAD图的三种基本结构从上向下表示执行顺序从左到右表示
6、层次关系ABPAB当PAn==0返回1f=1i=1当i<=nf=f*ii=i+1返回f值P60图3.9:求n!5、伪代码表示用介于自然语言和计算机语言之间的文字和符号描述算法。beginifn=0f=1else{f=1i=1{f=f*ii=i+1}while(i<=n)}printfend例:求n!的伪代码表示main(){intn,f,i;scanf(“%d”,&n);if(n==0)f=1;else{f=1;i=1;do{f=f*i;i=i+1;}while(i<=n)
7、}printf(“%d”,f);}求n!的程序代码:三、结构化程序设计方法基本思路结构化编码模块化设计自顶向下逐步细化从大问题分解到小问题模块是根据功能划分的部分用结构化语言表示算法课后阅读P61例3.1、例3.2§2C语句概述C语句流程控制语句流程控制语句选择结构(条件语句)双分支结构多分支结构if()…else语句elseif语句switch语句循环结构while()…语句do…while()语句for()…语句流程转向语句条件转向语句中止循环或switch语句:break跳过其后语句返回循
8、环开始:continue函数返回语句:return()无条件转向语句goto语句表达式语句简单表达式语句赋值语句:赋值表达式;函数调用语句:函数名(实参);空语句:;复合表达式语句逗号表达式;基本语句复合语句用{}括起来的一组语句表达式;(分程序)P68如:a=3、i++、x+y、i=i+1是表达式a=3;i++;x+y;i=i+1;是语句if((a=b)>0)
此文档下载收益归作者所有