关关雎鸠南邮C语言课件第4章.ppt

关关雎鸠南邮C语言课件第4章.ppt

ID:52386708

大小:1.38 MB

页数:46页

时间:2020-04-05

关关雎鸠南邮C语言课件第4章.ppt_第1页
关关雎鸠南邮C语言课件第4章.ppt_第2页
关关雎鸠南邮C语言课件第4章.ppt_第3页
关关雎鸠南邮C语言课件第4章.ppt_第4页
关关雎鸠南邮C语言课件第4章.ppt_第5页
资源描述:

《关关雎鸠南邮C语言课件第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、高级语言程序设计2021/9/161第四章程序流程控制主讲:计算机学院朱立华内容提要算法的基本概念以及表示方法,简单介绍流程图C程序的3种基本流程控制结构:顺序结构、选择结构(也叫分支结构)、循环结构,每种结构的控制语句:if、switch控制选择结构for、while、do~while控制循环结构break、continue、goto等语句的用法循环嵌套程序的设计及运行过程一些常用算法的基本思想:分段函数求解问题判断一个整数是否为质数求两个正整数的最大公约数各种求和问题掷骰子游戏的多种解法求阶乘打印规则的图形穷举问题的多种求解方法2021/9/163算

2、法与语句算法(Algorithm)就是为解决一个具体问题而采取的有限的操作步骤,算法通过语句来实现计算机算法分两类:数值运算算法、非数值运算算法程序=数据结构+算法算法的正确性衡量标准:有穷性:算法包含有限步操作确定性:每一步都应确定无歧义有效性:每一步都应能有效执行且能得到确定的结果0或多个输入:程序允许无输入1或多个输出:任何程序都必须有输出,哪怕是提示信息解决求数值解的问题解决需要用分析推理、逻辑推理才能解决的问题数据的描述和组织形式对操作或行为的描述,即操作步骤2021/9/164算法与语句常用的算法描述方法有:自然语言、传统流程图、NS流程图、

3、伪代码等,这里只介绍传统流程图。例:求n!的算法思想:n!=1*2*3*…*n由于计算机执行乘法时每次只能求两个数相乘,因此上面的公式在程序中必定需要通过反复相乘来实现。需要设定一个变量n,表明求多少的阶乘;第二个变量,存当前累乘的结果;第三个变量存当前将要与累乘器相乘的因子,并且该因子的变化是从1到n每次增加1流程图如下页所示2021/9/165no开始n<0?输入n图4.2计算n!的传统流程图fac=1,i=1fac=fac*ii=i+1i<=n?yes输出fac值no结束输出错提示yes开始结束框输入/输出框判断框一般处理框循环结构3种基本结构的特

4、点:单入口,单出口流程线选择结构顺序结构查看程序2021/9/166C语句分类C语言的语句有五大类:(1)9种控制语句:这一类语句用于实现流程控制,选择结构和循环结构必须通过控制语句实现。if~else语句:是实现选择结构最常用的语句switch语句:用于控制某些多分支的选择结构for()~语句:最常用最灵活的循环控制语句,当型循环while()~语句:循环结构最安全的控制语句,当型循环do~while()语句:控制先执行后判断的直到型循环结构continue语句:表示提前结束本次循环,忽略其后循环体中的其他语句break语句:可用于switch语句(结

5、束switch)或循环体中(结束本层循环)goto语句:流程跳转语句,很灵活,可实现各种结构,建议少用或不用return语句:专门用于函数返回,被调函数执行到return就返回到调用点(2)变量声明语句:用来定义变量,形如:inta,b;(3)表达式语句:C语言中任何一个表达式最后加上分号构成表达式语句,赋值语句和函数调用语句是最常用的表达式语句(4)复合语句:以一对大括号括起的0或多条语句,在语法上仍为一条语句(5)空语句:只有一个分号构成的语句,表示什么也不做2021/9/167顺序结构顺序结构的特点:语句按顺序依次执行,不涉及到任何条件的判断。顺序

6、结构所使用的语句:变量声明语句、读写函数调用语句、赋值语句、return语句等。无需用其他流程控制语句优点:结构简单易懂缺点:对程序的健壮性、完备性往往无法兼顾例:程序4.1从键盘上输入a,b,c的值,并以它们为三角形的三条边,求三角形的面积。算法思想:根据数学知识,设一个变量s用于求三角形周长的一半,即s=(a+b+c)/2,再利用一般三角形求面积的公式求解:2021/9/168程序4.1求任意三角形的面积#include#include//包含平方根函数sqrt的声明intmain(){doublea,b,c,s,a

7、rea;//定义5个double变量printf(“Pleaseinputa,b,c:”);//屏幕提示scanf("%lf%lf%lf",&a,&b,&c);//输入a,b,c的值s=(a+b+c)/2;//求周长的一半area=sqrt(s*(s-a)*(s-b)*(s-c));//求面积printf("area=%f",area);//输出面积return0;}顺序结构<运行结果>输入345输出area=6.000000编程提示:存原始数据的变量,用读入方式使其获得的值更灵活,也可赋值,但是通用性下降编程提示:如果变量的值需要根据其他变量或

8、一定的计算规则计算出来,则使用赋值语句而不能读入问题1:可能会输入负数问题2:即

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

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

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