资源描述:
《C语言程序设计(第二版) 教学课件 作者 王曙燕chap3 算法与基本程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计第3章算法和基本程序设计第3章算法与基本程序设计三种基本的程序控制结构数据的输入与输出字符输入与输出函数顺序结构语句一、自顶向下设计方法学介绍叙述要解决的问题定义输入和输出设计算法将算法转换C语句测试程序问题分解逐步细化开始结束例:写一个C语言的程序计算函数f(x,y),f(x,y)的定义如下f(x,y)=x+yx0且y0x+y2x0且y<0x2+yx<0且y0x2+y2x<0且y<03.1三种基本的程序控制结构开发过程——步骤1、定义问题:计算由公式定义的函数式,其中x,y的
2、值由用户提供;2、定义输入和输出:输入的x和y是两个互不相关的值,为通用起见,x和y的输入类型均为double;输出为公式中f(x,y),类型为double;3、算法设计:这个程序分为三个部分输入x和y;计算函数;在屏幕上输出f(x,y);开发过程——伪代码描述:C语言+自然语言提示用户输入x,y,读入x,y;计算函数将计算结果fun输出到屏幕上;if(x0andy0)fun=x+y/*将结果放入到变量fun*/elseif(x0andy<0)fun=x+y*yelseif(x<0andy0
3、)fun=x*x+yelsefun=x*x+y*y提示用户输入x,y,读入x,y;计算函数将计算结果fun输出到屏幕上;if(x0andy0)fun=x+y/*结果放到变量fun*/elseif(x0andy<0)fun=x+y*yelseif(x<0andy0)fun=x*x+yelsefun=x*x+y*yprintf("resultoffunis%8.4lf",fun);/*输出*/elseif(x>=0.0&&y<0.0)elseif(x<0.0&&y>=0.0)伪代码转换成C语言i
4、f(x>=0.0&&y>=0.0)doublex,y,fun;printf("inputx,y:");/*提示输入x和y*/scanf("%lf%lf",&x,&y);/*接收双精度值*/伪代码转换成C语言#includemain(){doublex,y,fun;printf("inputx,y:");/*提示输入x和y*/scanf("%lf%lf",&x,&y);/*接收双精度值*/if(x>=0.0&&y>=0.0)fun=x+y;elseif(x>=0.0&&y<0.0)
5、fun=x+y*y;elseif(x<0.0&&y>=0.0)fun=x*x+y;elsefun=x*x+y*y;printf("resultoffunis%8.4f",fun);/*输出*/}测试程序四组测试值:x=0.5y=1.0x=-0.8y=-1.9x=0.9y=0.78x=-5.6y=1.2特征:有穷性确定性评价标准:正确性可读性健壮性(Robust,鲁棒性)高效率与低存储要求算法:对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。数据结构+算法=程序3.
6、1三种基本的程序控制结构可执行性有输入、输出3.1三种基本的程序控制语句描述方法:可用自然语言、数学方法、某种计算机语言描述规范的方法:流程图、N-S结构流程图、伪代码、PAD图。流程图的基本构成:起至框输入输出判断框处理框或流程线连接点注释框开始输入实数x,yx>=0&&y>=0Y输出运算结果fun结束Nx>=0&&y<0YNx<0&&y>=0YNfun=x+yfun=x*x+yfun=x*x+y*yfun=x+y*y算法的流程图流程图的三种基本结构aABb顺序结构先执行A,再执行B.若P为真,则
7、执行A,否则执行B.若P为真,则执行A,否则跳过A.aAYNBpabAPNYb选择结构流程图的三种基本结构ApNY当型循环结构abApYNba直到型循环先执行A,再判断,若P为真,反复执行A,P为假时出循环。当P为真,反复执行A,P为假时出循环。N-S流程图去掉了箭头,算法写在一个矩形框里。它也有三种结构:顺序、选择和循环2、N-S结构流程图AB顺序结构pyesnoAB选择结构当p成立A当型循环A当p成立直到型循环任何程序均可以由“顺序”、“选择”和“循环”这三种基本结构通过有限次的组合与嵌套来描述
8、。任何程序设计语言均由这三种基本结构组成,其差别在于具体语法的形式不同,而原理是相同的。3.1三种基本的程序控制语句1、顺序结构ABAB流程图N-S图2、选择结构PABTFPBATFkA1A2AiAnk=k2k=k1k=knk=ki......二分支选择结构多分支选择结构3、循环结构当型循环直到型循环PAFT当P为真AAPFTA当P为真C语言中提供了3种循环结构:while、for、do{……}while。共同特点:单入口、单出口三种结构之间可以是顺序关系、平行关系,