c语言程序设计与项目实践第5章.ppt_第1页
c语言程序设计与项目实践第5章.ppt_第2页
c语言程序设计与项目实践第5章.ppt_第3页
c语言程序设计与项目实践第5章.ppt_第4页
c语言程序设计与项目实践第5章.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章分支结构程序设计,本章的学习重点简单的if语句if-else语句执行规则嵌套的if-else语句switch语句break语句嵌套的switch语句,5.1结构化程序设计思想,1976年,NiklausWirth提出:程序=算法+数据结构结构化程序设计的基本思想是:1自顶向下2逐步细化3模块化设计4结构化程序编码结构化程序设计框架图,5.2简单的if语句,if语句有三种基本形式:if语句if和else语句嵌套if和else语句设计分支结构应注意如下问题:1正确选择条件或逻辑表达式作为分支的判断条件。2根据需求绘制分支流程图。3按流程图编写程序。,5.2.1if语句的定义,if语句的一般形式:if(表达式)语句段if语句的执行流程:如果表达式的值为真(非0),则执行其后的语句段,否则不执行该语句。If语句流程图:,5.2.1if语句的定义,if语句中的表达式可以是任何能转化为数值的表达式,例如:if(100)if(a=b)if(a应写成:if(0=a)a=-a;2语句段封装不论语句段由一条语句还是多条语句构成,都使用大括号封装。,实训5.1求一元二次方程的实根解,键盘输入一元二次方程ax2+bx+c=0的三个参数a,b和c,计算当判别式b2-4ac=0时的根,程序使用if语句判断是否满足判别式条件,结果精确到小数点后3位。判别式可计算为:sqrt_delta=sqrt(b2-4ac)当sqrt_delta大于或等于0时方程有实根。因此,一元二次方程的两个根分别为:x1=(-b+sqrt_delta)/2ax2=(-b-sqrt_delta)/2a1需求分析:需求1:键盘输入参数a,b,c的值需求2:判断判别式,确定方程是否有实根需求3:调用开根号数学函数sqrt,计算方程的根需求4:输出结果,精度为小数点后3位,实训5.1求一元二次方程的实根解,2技术应用对于需求1,使用scanf函数输入参数a,b,c的值。对于需求2,使用if语句判断方程是否有实根,判断方法为:if(b2-4ac=0)。对于需求3,由于要求精确到小数点后3位,采用数据类型float型。根据上述分析画出程序流程图:源文件:CalculateFormulaRealRoot.c,5.3多分支if语句,多分支if语句又称为“if-else语句”,是由关键字if和else构成的多分支结构语句。if-else语句的一般形式为:if(表达式)语句段1else语句段2if-else语句的执行规则为:若表达式的值为真(非0),则执行语句段1,否则进入else分支,执行语句段2。,5.3.1if-else语句的结构,if-else语句的表达形式为:if(表达式)语句段1else语句段2if-else语句的流程图:,5.3.1if-else语句的结构,范例5.2CalculateAbstract.c数学计算中,绝对值使用|表示,本范例从键盘输入参数a的值,然后利用if-else语句实现绝对值的计算,并打印信息显示数据符号是否发生了变化。5.3.2if-else语句的应用范例5.3JudgeOddorEven.c键盘输入int型参数a的值,判断其是否为偶数,若为偶数,则打印a为偶数信息,若为奇数,则打印为奇数信息。利用模除(%)对a值是否为偶数进行判断,使用if-else分支语句实现不同信息的输出。,5.3.2if-else语句的应用,5.3.2if-else语句的应用范例5.3JudgeOddorEven.c键盘输入int型参数a的值,判断其是否为偶数,若为偶数,则打印a为偶数信息,若为奇数,则打印为奇数信息。利用模除(%)对a值是否为偶数进行判断,使用if-else分支语句实现不同信息的输出。范例5.4JudgeLeapYearorNotWithIfElse.c键盘输入unsignedint型年份,判断其是否为闰年,若为闰年,则打印为闰年信息,若为平年,则打印为平年信息。闰年的判断方法是:若年数能被400整除,那么该年是闰年,若能被4整除但不能被100整除,该年是闰年,其他年份都是平年。,5.3.3if-else-if语句的结构及应用,当有多个分支选择时,可采用if-else-if语句,if-else-if类型结构语句的一般形式为:if(表达式1)语句段1;elseif(表达式2)语句段2;elseif(表达式3)语句段3;elseif(表达式m)语句段m;else语句段n;If-else-if语句流程图:,5.3.3if-else-if语句的结构及应用,范例5.5StudentScoreSet.c学生成绩分为5个等级,分别为:A:90=score=100,B:80=score90,C:70=score80,D:60=scoreb,若ab,则输出a=0时,输出实数根,b2-4ac=0)。对于需求3,输出结果时根据实根和复数根的不同,输出不同数据格式,如复数根应输出:m+ni和m=ni的形式。,实训5.2求一元二次方程的复数根解,一元二次方程求根流程图源代码:CalculateFormulaRoot.c,5.5switch语句,switch语句的一般表达形式为:switch(表达式)case常量表达式1:语句段1;case常量表达式2:语句段2;case常量表达式n:语句段n;default:语句段n+1;,5.5.1switch语句的定义,switch语句的运行规则为:计算表达式的值,顺次与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句段,语句段执行完毕后,不再进行判断,继续执行后面所有case后的语句。switch语句流程图:,5.5.1switch语句的定义,范例5.8SwitchSentenceCase.c键盘输入整型的星期数,打印出英文的星期名字字符串,根据键盘输入的星期数,打印出该星期数的英文名使用switch语句实现,输入函数使用scanf函数,星期一记为1,星期天记为7。例如,输入2,应打印Tuesday。,5.5.2break语句,为避免程序在switch语句中持续执行case语句,可以使用break语句,switch语句中添加break语句的流程图:,5.5.3switch语句的执行与应用,范例5.9SwitchSentenceWithBreak.c键盘输入学生成绩,分段显示不同成绩段的优劣:90=score=100为excellence80=score90为allright70=score80为midding60=score70为passscore60为bad,实训5.3使用switch语句实现四则运算,键盘输入四则运算式,通过switch语句分支执行+,-,*,/的四则运算,结果精确到小数点后3位。例如,输入4.5-6,将输出结果:4.5-6=-1.5。程序只能实现简单的四则运算,不能实现复合四则运算,输入参数采用float型,使用switch语句做四则运算的分支程序。1需求分析:需求1:键盘输入四则运算式需求2:switch语句作分支判断四则运算需求3:输出结果,精度为小数点后3位2技术应用对于需求1,使用scanf函数输入四则运算表达式。对于需求2,使用switch语句对各四则运算作分支处理。对于需求3,采用float型输出精确到小数点后3位结果。源代码:CalculateFormulaProcess.c,5.6嵌套switch语句,嵌套的switch语句是指在一个switch语句中某个case下会再嵌入一个或多个switch语句嵌套switch语句的一般表达形式:switch(表达式1)case常量表达式1:switch(表达式2)case常量表达式11:语句段11case常量表达式12:语句段12case常量表达式1m:语句段1mdefault:语句段1m+1case常量表达式2:语句段2;case常量表达式n:语句段n;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论