版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 分支构造程序设计 n本章的学习重点n简单的if语句nif-else语句执行规那么n嵌套的if-else语句nswitch语句nbreak语句n嵌套的switch语句 n 5.1 构造化程序设计思想 n1976年,Niklaus Wirth 提出:n程序 = 算法 + 数据构造n构造化程序设计的根本思想是:n1自顶向下n2逐渐细化n3模块化设计n4构造化程序编码n构造化程序设计框架图 5.2 简单的if语句 nif语句有三种根本方式:nif语句nif和else语句n嵌套if和else语句n设计分支构造应留意如下问题:n1正确选择条件或逻辑表达式作为分支的判别条件。n2根据需求绘制分支流程
2、图。n3按流程图编写程序。5.2.1 if语句的定义 nif 语句的普通方式:nif(表达式)n语句段nif语句的执行流程:假设表达式的值为真非0,那么执行其后的语句段,否那么不执行该语句。nIf语句流程图: 5.2.1 if语句的定义 nif语句中的表达式可以是任何能转化为数值的表达式,例如:n if(100)n if(a=b)n if(a&b|c)n if(sizeof(int)n if(ab)?(a+b):(a-b)n范例5.1 GetMaxVariableInTwo.c 利用if语句的分支功能,可以区分两个或多个数值的大小。本范例由键盘输入两个变量的值,运用if语句判别两者中的
3、较大值,并将较大值输出在屏幕上。 5.2.2 合理设计if语句 n1逻辑运算符的编写风格n 逻辑运算表达式编写应尽量防止产生歧义,防止出现逻辑错误,例如,为防止逻辑表达式书写错误,通常将常量放在逻辑运算符左边:n if(a=0)n a=-a;n应写成: if(0=a)n a=-a;n 2语句段封装 n 不论语句段由一条语句还是多条语句构成,都运用大括号封装。 实训5.1求一元二次方程的实根解 n键盘输入一元二次方程ax2+bx+c=0的三个参数a,b和c,计算当判别式b2-4ac=0时的根,程序运用if语句判别能否满足判别式条件,结果准确到小数点后3位。判别式可计算为:n sqrt_delta
4、=sqrt(b2-4ac) n 当sqrt_delta大于或等于0时方程有实根。因此,一元二次方程的两个根分别为:n x1=(-b+sqrt_delta)/2an x2=(-b-sqrt_delta)/2a n1需求分析:n需求1:键盘输入参数a, b, c的值n需求2:判别判别式,确定方程能否有实根n需求3:调用开根号数学函数sqrt,计算方程的根n需求4:输出结果,精度为小数点后3位 实训5.1求一元二次方程的实根解 n2技术运用n对于需求1,运用scanf函数输入参数a, b, c的值。n对于需求2,运用if语句判别方程能否有实根,判别方法为:if(b2-4ac=0)。n对于需求3,由于
5、要求准确到小数点后3位,采用数据类型float型。n根据上述分析画出程序流程图:n源文件:CalculateFormulaRealRoot.c 5.3 多分支if语句 n多分支if语句又称为“if-else语句,是由关键字if和else构成的多分支构造语句。 nif-else语句的普通方式为:nif(表达式)n语句段1nelsen语句段2n if-else语句的执行规那么为:假设表达式的值为真非0,那么执行语句段1,否那么进入else分支,执行语句段2。 5.3.1 if-else语句的构造 nif-else语句的表达方式为:nif(表达式)nn语句段1nnelsenn语句段2n nif-el
6、se语句的流程图: 5.3.1 if-else语句的构造 n范例5.2 CalculateAbstract.c 数学计算中,绝对值运用| |表示,本范例从键盘输入参数a的值,然后利用if-else语句实现绝对值的计算,并打印信息显示数据符号能否发生了变化。n5.3.2 if-else语句的运用 n范例5.3 JudgeOddorEven.c 键盘输入int型参数a的值,判别其能否为偶数,假设为偶数,那么打印a为偶数信息,假设为奇数,那么打印为奇数信息。利用模除%对a值能否为偶数进展判别,运用if-else分支语句实现不同信息的输出。 5.3.2 if-else语句的运用 n5.3.2 if-e
7、lse语句的运用语句的运用 n范例范例5.3 JudgeOddorEven.c 键盘输入键盘输入int型参数型参数a的值,判别其能否为偶数,假设的值,判别其能否为偶数,假设为偶数,那么打印为偶数,那么打印a为偶数信息,假设为奇为偶数信息,假设为奇数,那么打印为奇数信息。利用模除数,那么打印为奇数信息。利用模除%对对a值能否为偶数进展判别,运用值能否为偶数进展判别,运用if-else分分支语句实现不同信息的输出。支语句实现不同信息的输出。n范例范例5.4 JudgeLeapYearorNotWithIfElse.c 键盘键盘输入输入unsigned int型年份,判别其能否为型年份,判别其能否为
8、闰年,假设为闰年,那么打印为闰年信息,闰年,假设为闰年,那么打印为闰年信息,假设为平年,那么打印为平年信息。闰年假设为平年,那么打印为平年信息。闰年的判别方法是:假设年数能被的判别方法是:假设年数能被400整除,那整除,那么该年是闰年,假设能被么该年是闰年,假设能被4整除但不能被整除但不能被100整除,该年是闰年,其他年份都是平年。整除,该年是闰年,其他年份都是平年。 5.3.3 if-else-if语句的构造及运用 n当有多个分支选择时,可采用if-else-if语句,if-else-if类型构造语句的普通方式为: nif(表达式1)n 语句段1;nelse if(表达式2)n语句段2;n
9、else if(表达式3)n 语句段3;nn else if(表达式m)n 语句段m; n elsen 语句段n;nIf-else-if 语句流程图: 5.3.3 if-else-if语句的构造及运用 n范例5.5 StudentScoreSet.c 学生成果分为5个等级,分别为:A: 90=score=100,B: 80=score90,C: 70=score80,D: 60=score70,E:scoreb,那么输出n ab,n 假设ab,那么输出n a=0时,输出实数根,nb2-4ac=0)。n对于需求3,输出结果时根据实根和复数根的不同,输出不同数据格式,如复数根应输出:m+ni和m=
10、ni的方式。实训5.2求一元二次方程的复数根解 n一元二次方程求根流程图n源代码:CalculateFormulaRoot.c 5.5 switch语句 nswitch语句的普通表达方式为:nswitch(表达式)n ncase 常量表达式1: n语句段1;ncase 常量表达式2:n语句段2; nncase 常量表达式n:n语句段n;ndefault:n语句段n+1;n 5.5.1 switch语句的定义 nswitch语句的运转规那么为:n计算表达式的值,依次与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句段,语句段执行终了后,不再进展判别,继续执行后面
11、一切case后的语句。n switch语句流程图:5.5.1 switch语句的定义 n范例5.8 SwitchSentenceCase.c 键盘输入整型的星期数,打印出英文的星期名字字符串,根据键盘输入的星期数,打印出该星期数的英文名运用switch语句实现,输入函数运用scanf函数,星期一记为1,星期天记为7。例如,输入2,应打印Tuesday。5.5.2 break语句 n为防止程序在switch语句中继续执行case语句,可以运用break语句 ,switch语句中添加break语句的流程图:5.5.3 switch语句的执行与运用 n范例5.9 SwitchSentenceWith
12、Break.c 键盘输入学生成果,分段显示不同成果段的优劣:n90=score=100为excellencen80=score90为all rightn70=score80为middingn 60=score70为passnscore60为bad 实训5.3运用switch语句实现四那么运算 n键盘输入四那么运算式,经过switch语句分支执行+, -, *, /的四那么运算,结果准确到小数点后3位。n例如,输入4.5-6,将输出结果:4.5-6=-1.5。程序只能实现简单的四那么运算,不能实现复合四那么运算,输入参数采用float型,运用switch语句做四那么运算的分支程序。n1需求分析:
13、n需求1:键盘输入四那么运算式需求2:switch语句作分支判别四那么运算n需求3:输出结果,精度为小数点后3位n2技术运用n对于需求1,运用scanf函数输入四那么运算表达式。n对于需求2,运用switch语句对各四那么运算作分支处置。n对于需求3,采用float型输出准确到小数点后3位结果。n源代码:CalculateFormulaProcess.c 5.6 嵌套switch语句 n嵌套的switch语句是指在一个switch语句中某个case下会再嵌入一个或多个switch语句n嵌套switch语句的普通表达方式:nswitch(表达式1)n ncase常量表达式1: nswitch(表达式2)nncase 常量表达式 11:n语句段11ncase 常量表达式12:n语句段12nncase 常量表达式1m:n语句段1mndefault:n语句段1m+1nncase常量表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GBT 21526-2008 结构胶粘剂 粘接前金属和塑料表面处理导则》专题研究报告
- 《GB 14722-2008组件式髋部、膝部和大腿假肢》专题研究报告深度
- 《GBT 22133-2008流体流量测量 流量计性能表述方法》专题研究报告
- 《GBT 17587.5-2008滚珠丝杠副 第5部分:轴向额定静载荷和动载荷及使用寿命》专题研究报告
- 道路安全培训教学课件
- 道教协会安全培训课件
- 道宝当众讲话培训
- 2025局部晚期非小细胞肺癌多学科管理与治疗策略共识课件
- 云南国防工业职业技术学院《机电一体化技术(军工方向)》2024-2025 学年第一学期期末试卷(核心专业)
- 达人培训课件安装
- 2023-2024学年北京市海淀区清华附中八年级(上)期末数学试卷(含解析)
- 临终决策中的医患共同决策模式
- 2026年包头轻工职业技术学院高职单招职业适应性测试备考题库及答案详解
- 流感防治知识培训
- 呼吸内科进修汇报课件
- 康复治疗进修汇报
- 牵引供电系统短路计算-三相对称短路计算(高铁牵引供电系统)
- 离婚协议书模板(模板)(通用)
- (完整版)第一性原理
- 降低住院患者口服药缺陷率教学课件
- 《质量管理与控制技术基础》第一章 质量管理基础知识
评论
0/150
提交评论