《清华大学C语言教学课件(共16个PPT)第3个上课讲义.ppt》由会员分享,可在线阅读,更多相关《清华大学C语言教学课件(共16个PPT)第3个上课讲义.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、清华大学C语言教学课件(共16个PPT)第3个二、逻辑判断二、逻辑判断为了解这道题,我们要研究逻辑运算符与逻辑表达式。为了解这道题,我们要研究逻辑运算符与逻辑表达式。为了解这道题,我们要研究逻辑运算符与逻辑表达式。为了解这道题,我们要研究逻辑运算符与逻辑表达式。1 1 1 1、逻辑与,运算符为、逻辑与,运算符为、逻辑与,运算符为、逻辑与,运算符为&如图电路如图电路如图电路如图电路AAAA表示开关表示开关表示开关表示开关A A A A合上;合上;合上;合上;BBBB表示开关表示开关表示开关表示开关B B B B合上;合上;合上;合上;A&BA&BA&BA&B表示灯亮;表示灯亮;表示灯亮;表示灯亮
2、;ABA&B11 110 001 000 01表示真,表示真,0表示假,这是逻辑变量的取值,非真即假表示假,这是逻辑变量的取值,非真即假2二、逻辑判断二、逻辑判断2 2、逻辑或,运算符为、逻辑或,运算符为|如图电路如图电路AA表示开关表示开关A A合上;合上;BB表示开关表示开关B B合上;合上;A|BA|B表示灯亮;表示灯亮;ABA|B11 110 101 100 01表示真,表示真,0表示假表示假3二、逻辑判断二、逻辑判断3 3、逻辑非,运算符为、逻辑非,运算符为!两队比赛篮球,变量两队比赛篮球,变量A A表示表示A A队到场,队到场,!A!A表示表示A A队不队不到场,变量到场,变量B
3、B表示表示B B队到场,队到场,!B!B表示表示B B队不到场。队不到场。这场球赛能够赛成,得两队都到场。假定这场球赛能够赛成,得两队都到场。假定“能能赛成赛成”用逻辑变量用逻辑变量C C表示,则表示,则C=A&BC=A&B赛不成当然用赛不成当然用!C!C表示,让表示,让D=!CD=!C,D D表示赛不成则表示赛不成则D=!A|!BD=!A|!B。理解为理解为A A不到场或不到场或B B不到场,球赛无法进行。不到场,球赛无法进行。4二、逻辑判断二、逻辑判断1 1 1 1 案情分析:将案情的每一条写成逻辑表达式,第一条案情分析:将案情的每一条写成逻辑表达式,第一条案情分析:将案情的每一条写成逻辑
4、表达式,第一条案情分析:将案情的每一条写成逻辑表达式,第一条用用用用CC1CC1CC1CC1表示,第二条用表示,第二条用表示,第二条用表示,第二条用CC2CC2CC2CC2表示,表示,表示,表示,CC1CC1CC1CC1:A A A A和和和和B B B B至少有一人作案至少有一人作案至少有一人作案至少有一人作案令令令令A A A A变量表示变量表示变量表示变量表示A A A A作案作案作案作案B B B B变量表示变量表示变量表示变量表示B B B B作案作案作案作案A A A AB B B BCC1CC1CC1CC10 0 0 00 0 0 00 0 0 01 1 1 10 0 0 01
5、1 1 10 0 0 01 1 1 11 1 1 11 1 1 11 1 1 11 1 1 1显然这是或的关系,因此有显然这是或的关系,因此有显然这是或的关系,因此有显然这是或的关系,因此有CC1=(A|B)CC1=(A|B)CC1=(A|B)CC1=(A|B)思路:思路:5二、逻辑判断二、逻辑判断CC2CC2:A A和和D D不可能是同案犯不可能是同案犯可以分析为:可以分析为:A A如果是案犯,如果是案犯,D D一定不是案犯,写成一定不是案犯,写成A&(!D)A&(!D)D D如果是案犯,如果是案犯,A A一定不是案犯,写成一定不是案犯,写成D&(!A)D&(!A)这两者之间是或的关系,因此
6、有这两者之间是或的关系,因此有CC2=!(A&D)CC2=!(A&D)A AD DA&D A&D CC2CC21 10 00 0 1 11 11 11 1 0 00 00 00 0 1 10 01 10 0 1 16二、逻辑判断二、逻辑判断(A&(!B)|(!A)&B)(A&(!B)|(!A)&B)这叫这叫“异或异或”运算运算在数字逻辑课中表示为在数字逻辑课中表示为在计算机中是半加器(二进制)在计算机中是半加器(二进制)7二、逻辑判断二、逻辑判断CC3CC3CC3CC3:A A A A、E E E E、F F F F中有两人涉嫌作案,分析有三种可能中有两人涉嫌作案,分析有三种可能中有两人涉嫌作
7、案,分析有三种可能中有两人涉嫌作案,分析有三种可能第一种,第一种,第一种,第一种,A A A A和和和和E E E E作案,(作案,(作案,(作案,(A&EA&EA&EA&E)第二种,第二种,第二种,第二种,A A A A和和和和F F F F作案,(作案,(作案,(作案,(A&FA&FA&FA&F)第三种,第三种,第三种,第三种,E E E E和和和和F F F F作案,(作案,(作案,(作案,(E&FE&FE&FE&F)这三种可能性是或的关系,因此有这三种可能性是或的关系,因此有这三种可能性是或的关系,因此有这三种可能性是或的关系,因此有CC3=(A&ECC3=(A&ECC3=(A&ECC
8、3=(A&E)|(A&FA&FA&FA&F)|(E&F)E&F)E&F)E&F)我们写出我们写出我们写出我们写出CC3CC3CC3CC3的真值表。的真值表。的真值表。的真值表。8二、逻辑判断二、逻辑判断A E F A E F CC3CC31 1 1 1 1 1 1 11 1 0 11 1 0 11 0 1 11 0 1 10 1 1 10 1 1 10 0 1 00 0 1 00 1 0 00 1 0 01 0 0 01 0 0 00 0 0 00 0 0 09二、逻辑判断二、逻辑判断CC4CC4CC4CC4:B B B B和和和和C C C C或同时作案,或都与本案无关或同时作案,或都与本案
9、无关或同时作案,或都与本案无关或同时作案,或都与本案无关第一种情况:同时作案(第一种情况:同时作案(第一种情况:同时作案(第一种情况:同时作案(B&CB&CB&CB&C)第二种情况:都与本案无关(第二种情况:都与本案无关(第二种情况:都与本案无关(第二种情况:都与本案无关(!B&!C!B&!C!B&!C!B&!C)两者为或的关系,因此有两者为或的关系,因此有两者为或的关系,因此有两者为或的关系,因此有CC4=(B&C)|(!B&!C)CC4=(B&C)|(!B&!C)CC4=(B&C)|(!B&!C)CC4=(B&C)|(!B&!C)B C !B !C B&C !B&!C CC3B C !B
10、!C B&C !B&!C CC3B C !B !C B&C !B&!C CC3B C !B !C B&C !B&!C CC31 1 0 0 1 0 11 1 0 0 1 0 11 1 0 0 1 0 11 1 0 0 1 0 11 0 0 1 0 0 01 0 0 1 0 0 01 0 0 1 0 0 01 0 0 1 0 0 00 1 1 0 0 0 00 1 1 0 0 0 00 1 1 0 0 0 00 1 1 0 0 0 00 0 1 1 0 1 10 0 1 1 0 1 10 0 1 1 0 1 10 0 1 1 0 1 1CC5CC5CC5CC5:C C C C、D D D D中有
11、且仅有一人作案中有且仅有一人作案中有且仅有一人作案中有且仅有一人作案CC5=(C&!D)|(D&!C)CC5=(C&!D)|(D&!C)CC5=(C&!D)|(D&!C)CC5=(C&!D)|(D&!C)10二、逻辑判断二、逻辑判断CC6CC6CC6CC6:如果如果如果如果D D D D没有参与作案,则没有参与作案,则没有参与作案,则没有参与作案,则E E E E也不可能参与作案。也不可能参与作案。也不可能参与作案。也不可能参与作案。分析这一条比较麻烦一些,可以列出真值表再归纳分析这一条比较麻烦一些,可以列出真值表再归纳分析这一条比较麻烦一些,可以列出真值表再归纳分析这一条比较麻烦一些,可以列
12、出真值表再归纳CC6=D|!E1 10 01 11 1以上是案情分析,已经化成了计算机可解的逻辑表达式以上是案情分析,已经化成了计算机可解的逻辑表达式D E !E CC6 含义含义1 1 0 1D作案,作案,E也作案也作案 可能可能1 0 1 1D作案,作案,E不作案不作案 可能可能0 0 1 1D不作案,不作案,E也不可能作案也不可能作案 可能可能0 1 0 0D不作案,不作案,E却作案却作案 不可能不可能11二、逻辑判断二、逻辑判断2 2 2 2 采取枚举方法,枚举什么呢?枚举组合。采取枚举方法,枚举什么呢?枚举组合。采取枚举方法,枚举什么呢?枚举组合。采取枚举方法,枚举什么呢?枚举组合。
13、6 6 6 6个人每个人都有作案或不作案两种可能,因此有个人每个人都有作案或不作案两种可能,因此有个人每个人都有作案或不作案两种可能,因此有个人每个人都有作案或不作案两种可能,因此有种组合,从这些组合中挑出符合种组合,从这些组合中挑出符合种组合,从这些组合中挑出符合种组合,从这些组合中挑出符合6 6 6 6条分析的作案者。条分析的作案者。条分析的作案者。条分析的作案者。定义定义定义定义6 6 6 6个整数变量,分别表示个整数变量,分别表示个整数变量,分别表示个整数变量,分别表示6 6 6 6个人个人个人个人A A A A,B B B B,C C C C,D D D D,E E E E,F F
14、F F。枚举每个人的可能性枚举每个人的可能性枚举每个人的可能性枚举每个人的可能性让让让让0 0 0 0表示不是罪犯;表示不是罪犯;表示不是罪犯;表示不是罪犯;让让让让1 1 1 1表示就是罪犯。表示就是罪犯。表示就是罪犯。表示就是罪犯。1213二、逻辑判断二、逻辑判断为了给出每个人是否为罪犯的信息,程序中定义了一个为了给出每个人是否为罪犯的信息,程序中定义了一个二维数组。二维数组。Char info29=“不是罪犯不是罪犯”,“是罪犯是罪犯”;有两个字串每串最多有91个英文字符是是罪罪犯犯00不不是是罪罪犯犯000 01 12 23 34 45 56 67 78 8info为数组名1 10 0
15、14二、逻辑判断二、逻辑判断charchar是说,是说,infoinfo数组的元素为字符,数组的元素为字符,22为下标,表为下标,表示有两个字符串,每个字符串最多有示有两个字符串,每个字符串最多有9 91 1个字符。个字符。因为英文字符占一个字节,而汉字占两个字节,故四因为英文字符占一个字节,而汉字占两个字节,故四个汉字要占个汉字要占8 8个英文字符的地方。个英文字符的地方。每一字串后面自动跟一个空字符每一字串后面自动跟一个空字符00因此可以看出:因此可以看出:第第0 0号字符串号字符串info0info0的内容为的内容为“不是罪犯不是罪犯”。第第1 1号字符串号字符串info1info1的内
16、容为的内容为“是罪犯是罪犯”。15二、逻辑判断二、逻辑判断在输出时用在输出时用printf(“A:%sn”,infoA);如果如果A为为0,则输出,则输出 A:不是罪犯不是罪犯如果如果A为为1,则输出,则输出 A:是罪犯是罪犯参考程序参考程序AQFX.c(案情分析)(案情分析)16讨讨 论论17二、逻辑判断二、逻辑判断大家参与讨论的题大家参与讨论的题大家参与讨论的题大家参与讨论的题五位跳水高手将参加十米高台跳水决赛,有好事者让五五位跳水高手将参加十米高台跳水决赛,有好事者让五个人据实力预测比赛结果。个人据实力预测比赛结果。A A选手说:选手说:B B第二,我第三;第二,我第三;B B选手说:我
17、第二,选手说:我第二,E E第四;第四;C C选手说:我第一,选手说:我第一,D D第二;第二;D D选手说:选手说:C C最后,我第三;最后,我第三;E E选手说:我第四,选手说:我第四,A A第一;第一;决赛成绩公布之后,每位选手的预测都只说对了一半,决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错,请编程解出比赛的实际名次。即一对一错,请编程解出比赛的实际名次。18二、逻辑判断二、逻辑判断思路:思路:思路:思路:1 1 首先是将五个人的预测写成逻辑表达式:首先是将五个人的预测写成逻辑表达式:让关系运算符让关系运算符“=”“=”的含义是的含义是“是是”。让数字让数字1 1、2 2
18、、3 3、4 4、5 5分别表示名次第一、第二,分别表示名次第一、第二,第五第五。让整型变量让整型变量A A、B B、C C、D D、E E分别表示每个选手所得名次。分别表示每个选手所得名次。A A选手说:选手说:B=2B=2,A=3A=3;B B选手说:选手说:B=2B=2,E=4E=4;C C选手说:选手说:C=1C=1,D=2D=2;D D选手说:选手说:C=5C=5,D=3D=3;E E选手说:选手说:E=4E=4,A=1A=1;19二、逻辑判断二、逻辑判断2 2 考虑到每个人说的话是一对一错,即一真一假,比如考虑到每个人说的话是一对一错,即一真一假,比如A A说的,如说的,如B=2B
19、=2为真,则为真,则A=3A=3为假,为真取值为为假,为真取值为1 1,为假,为假取值为取值为0 0,则两个关系表达式之和必为,则两个关系表达式之和必为1 1。即。即 (B=2)+(A=3)(B=2)+(A=3)应该是应该是1 1我们可以归纳出要同时满足五个人所说的话都符合一半对我们可以归纳出要同时满足五个人所说的话都符合一半对一半错的条件是一半错的条件是ta=(B=2)+(A=3)=1;符合符合A选手的话,则选手的话,则ta为为1tb=(B=2)+(E=4)=1;符合符合B选手的话,则选手的话,则tb为为1tc=(C=1)+(D=2)=1;符合符合C选手的话,则选手的话,则tc为为1td=(
20、C=5)+(D=3)=1;符合符合D选手的话,则选手的话,则td为为1te=(E=4)+(A=1)=1;符合符合E选手的话,则选手的话,则te为为1因为因为ta,tb,te非非1即即0,五个条件值都加在一起,五个条件值都加在一起20二、逻辑判断二、逻辑判断3 只有等于只有等于5时才都符合每个人所说的话,这仅只是符合时才都符合每个人所说的话,这仅只是符合题意的一个必要条件,同时还得考虑题意的一个必要条件,同时还得考虑A、B、C、D、E的取值不得有相同者的取值不得有相同者可以考虑可以考虑是一个条件是一个条件4 仍然可以用枚举的方法,让变量仍然可以用枚举的方法,让变量A、B、C、D、E在在15中取值,形成满足上述条件的中取值,形成满足上述条件的AE的组合,即是的组合,即是所求。这时可用循环结构,如下所示所求。这时可用循环结构,如下所示2122二、逻辑判断二、逻辑判断作业:作业:1 1 请你自己完成这个程序;请你自己完成这个程序;2 2 思考如何提高效率?思考如何提高效率?3 3 思考还有什么其它解法?思考还有什么其它解法?23此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢