计算机精品课件:第3章-选择结构程序设计.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机精品课件:第3章-选择结构程序设计.ppt》由用户(金钥匙文档)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 精品 课件 选择 结构 程序设计
- 资源描述:
-
1、1,第3章 选择结构程序设计,3.1 关系运算符和关系表达式 3.2 逻辑运算符和逻辑表达 3.3 if语句 3.4 switch语句 3.5 条件运算符和条件表达式 3.6 程序举例,2,现实生活中,有很多需要进行判断和选择的情况 如果你在家,我去拜访你 如果考试不及格,要补考 由于程序处理问题的需要,在大多数程序中都会包含选择结构,需要在进行下一个操作之前先进行条件判断 处理这些问题,关键在于进行条件判断,3,程序设计中,有3种基本结构: (1) 顺序结构 (2) 选择结构(或称分支结构) (3) 循环结构(或称重复结构) 1) 当型 (while) 2) 直到型(until),4,5,6
2、,3种基本结构有以下共同特点: (1)只有1个入口, (2)只有1个出口, (3)结构内的每个部分都有机会被执行到, (4)结构内不存在死循环。,7,选择结构是循环结构中的一个关键子结构。 选择结构的作用是: 根据所给定的条件是否满足,决定从给出的两组操作(循环、不循环;左分支、右分支)中选择其一来执行。,8,C语言有两种选择语句: (1)if语句,实现两个分支的选择结构 (2)switch语句,实现多分支的选择结构,9,例 求 方程的根。 由键盘输入a,b,c。假设a,b,c的值任意,并不保证 。 需由程序进行判别:如果 计算并输出方程的两个实根 否则输出“方程无实根”,10,解题思路:,输
3、入a,b,c,计算disc,disc0,计算x1,x2,输出无实根,输出x1,x2,真,假,11,#include #include int main ( ) double a,b,c,disc,x1,x2,p,q; scanf(“%lf%lf%lf”, ,12,C语言的选择结构大多是用 if 语句实现的。,if 语句的最常用形式为: if(关系表达式) 语句1 else 语句2,例如:if(x0) y=1; else y = -1;,其中:x0是一个关系表达式 是一个关系运算符,3.3 if语句_选择结构和条件判断,13,例3.2 输入两个实数,按代数值由小到大 的顺序输出这两个数。,解题思
4、路: 只需要做一次比较,然后进行一次交换即可 用if语句实现条件判断 关键是怎样实现两个变量值的互换,A,B,互换前,A,B,互换后,14,A,B,C,15,#include int main() float a,b,t; scanf(“%f,%f”, ,将a和b的值互换,如果ab,16,#include int main() float a,b,t; scanf(“%f,%f”, ,选择结构,用if语句实现的,17,解题思路:可以先用伪代码写出算法: if ab,a和b对换 (a是a、b中的小者) if ac,a和c对换 (a是三者中最小者) if bc,b和c对换 (b是三者中次小者) 顺
5、序输出a,b,c,例:输入3个数a,b,c,要求按由小到大的顺序输出,18,#include int main() float a,b,c,t; scanf(“%f,%f,%f”, ,a是两者中的小者,a是三者中最小者,19,if 语句的作用: 根据判断的结果(真假)来决定执行给出的两种操作之一。 由于关系表达式可以得到真值或假值。 因此 if 语句是根据关系表达式的值来判断所给定的条件是否满足。,20,if语句的一般形式,if( 表达式 ) 语句1 else 语句2 ,关系表达式 逻辑表达式 数值表达式,方括号内的部分为可选的,21,if (表达式) 语句1 else 语句2 ,简单的语句
6、复合语句 另一个if语句等,22,最常用的3种if语句形式: 1. if (表达式) 语句1 (没有else子句),例如: if(xy) printf(“%d”,x); 执行过程如图:,23,例如:if(xy)printf(“%d”,x); else printf(“%d”,y); 执行过程如图:,if(表达式)语句1 else 语句2,24,if(表达式) 语句1 else if(表达式) 语句2 else if(表达式) 语句3 else if(表达式)语句m else 语句n 执行过程如图:,25,内嵌多分支,26,例如:计算某零件库存成本 if (number500) cost=0.1
7、5; else if(number300) cost=0.10; else if(number100) cost=0.075; else if(number50) cost=0.05; else cost=0;,27,说明: 1)三种形式的if中,在if后面的均为“表达式”,一般情况下为逻辑表达式或关系表达式。在执行 if 语句时,先对表达式求解,然后按表达式的值执行相应的语句。,即使写成 if(a=3),赋值表达式也作为a0来看待 若写成 if(a=3),是关系表达式,此时若a的原值为3,表达式才为真。 可见,表达式的类型是任意的,可为逻辑型、也可是数值型(包括整型、实型、字符型或指针型),
8、28,2)在第2和第3种 if 语句中: 在每个else前面有一个分号 整个语句结束处有一个分号,例如:if(x0) printf(“%f”,x); else printf(“%f”,-x);,29,3)if 后面 只能有一个语句, else后面也只能有一个语句。(或复合语句)。,例如: if(a+bc&b+ca&c+ab) else printf(“is not a trilateral”);, 表示一个完整的复合语句,其中 表示复合语句的结束,但它并不代表其内嵌的最后一个语句的结束。, s=0.5*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf
9、(“area=%6.2f”,area) ;,30,3.3.2 选择结构的嵌套,在if语句中又包含一个或多个if语句称为if语句的嵌套,一般形式: if( ) if( ) 语句1 else 语句2 else if( ) 语句3 else 语句4,内嵌if,else总是与它上面最近的未配对的if配对,31,if () if () 语句1 else语句2,内嵌if, 限定了内嵌if范围, ,32,例 有一函数: 编一程序,输入一个x值,要求输出相应的y值。,33,解题思路: 用if语句检查x的值,根据x的值决定赋予y的值 由于y的可能值不是两个而是三个,因此不可能只用一个简单的(无内嵌if)的if语
10、句来实现,34,解题思路:方法1 (1) 先后用3个独立的if语句处理: 输入x 若 x 0, 则y = 1 输出x和y,scanf(“%d”,35,解题思路:方法2 (2) 用一个嵌套的if语句处理: 输入x 若x 0, 则y = -1 否则 若 x = 0, 则y = 0 否则 y = 1 输出x和y,scanf(“%d”,36,scanf(“%d“,提倡内嵌if放在else中,scanf(“%d“,37,3.1关系运算符和关系表达式,关系运算就是“比较运算”。 把两个值进行比较,对比较的结果是否符合给定的条件进行判断。,关系运算符及其优先次序,38,例如: a3是一个关系表达式, 是一个
11、关系运算符。 如果给定a的值为5 则满足给定的条件a3,“真”和“假”是逻辑运算结果的表达方式,因此:关系运算实际是逻辑运算中较简单的一种,因此表达式的值为“真”(即条件满足) 否则表达式的值为”假“,39,C语言有6种关系运算符: 大于 = 大于等于 = 等于(恒等于) != 不等于,优先级为6级,优先级为7级,结合方向为自左向右,3.1.1 关系运算符,40,例如: ca+b 相当于 c(a+b) 算术运算符优先级(4级)高于关系运算符(6级); a=bc 相当于 a=(bc) 赋值运算符优先级(14级)低于关系运算符(6级),41,定义: 用关系运算符把两个表达式连接起来的式子称为关系表
12、达式。 表达式的值是一个“逻辑值”即“真”或“假”。,例如:关系表达式 5=3 的值为“假” 5=0 的值为“真”,可以是算术表达式或关系表达式。,用1代表“真” 0代表“假”,3.1.2 关系表达式,42,逻辑量可以与其他数值量进行混合运算 例:设 a=3 , b=2 , c=1 则表达式: ab 的值为1,即为”真“ b+cb=c 的值为1, 因为ab的值为1(真),等于c的值。,注意:c的值是为变量赋值时得到的整数值,而ab的值为逻辑值,但二者可运算。,注意:各运算符的优先级、结合方向,43,3.2 逻辑运算符和逻辑表达式,逻辑表达式: 用逻辑运算符把关系表达式或逻辑量连接起来的式子。,
13、44,C语言有3种逻辑运算符: & 逻辑与(相当于AND) 优先级为11级 | 逻辑或(相当于OR) 优先级为12级 ! 逻辑非(相当于NOT) 优先级为 2级,其中:& 和 | 是双目运算符 要求有两个操作数 ! 是单目运算符 只要求一个操作数 例如 !(ab),3.2.1 逻辑运算符,45,逻辑运算举例:,判断年龄在13至17岁之内? age=13 & age=17,判断年龄小于12或大于65? age65,46,表达式 (ab)&(xy) 可以写成 ab&xy,a&b 若a,b均为真,则a&b为真 a|b 若a,b有1个为真,则a|b为真 !a 若a为真,则!a为假。,以上各例表达式的结
14、果均为逻辑值“真”或“假”,47,逻辑运算的真值表,48,3.2.2 逻辑表达式,逻辑表达式的值应该是逻辑量“真”或“假” 编译系统在表示逻辑运算结果时 以数值“1”代表“真”,以0代表“假” 但在判断一个量是否为“真”时 以0代表“假”,以非0代表“真” 注意:将一个非零的数值认作为“真”,49,(1) 若a=4,则!a的值为0 (2) 若a=4,b=5,则a&b的值为1 (3) 则a|b的值为1 (4) 则!a|b的值为1 (5) 4 & 0 | 2的值为1,50,在一个表达式中的不同位置上出现数值,应区分那些是作为数值运算或关系运算的对象,那些是作为逻辑运算的对象。,例如: 53&83,
15、 在关系运算符两侧的5和3是作为数值参加运算。 再进行 1&84-!0的运算。,51,应先进行!0的运算,结果为1。 (1是逻辑量,而!0中的0是数值) 然后进行4-1的运算。其中4为数值,1为逻辑量,但可进行运算。 结果为3,是数值。,52,83关系运算的两个操作数是数值, 结果为0,是逻辑量。 最后1&0是两个逻辑量进行逻辑与, 结果为0,是逻辑量。,53&84-!0 1&84-!0 1&84-1 1&83 1&0 0,53,因此,逻辑运算符两侧的运算对象不仅仅是0和1,或者是0和非0的整数,它可以是任意类型的数据。如可以是字符型、实型或指针型等。系统最终用0和非0来表示它的判断结果是真还
展开阅读全文