第四章选择结构程序设计 关系表达式和逻辑表达式 用行语句实现选择结构 用块实现选择 多分支选择结构 多分支转移语句 选择结构程序设计
第四章 选择结构程序设计 关系表达式和逻辑表达式 用行IF语句实现选择结构 用块IF实现选择 多分支选择结构 多分支转移语句 选择结构程序设计
问题的提出 在实际问题中,要求计算机进行逻辑判断,即给出一个条件,让计算 机判断是否满足条件,并按照判断的结果来做不同的处理。 1.从键盘输入一个数,如果是正数则打印出来,否则不 做任何处理 2.将学生中成绩不合格者打印出来 3.将职工工资低于300元者打印出来 4.根判别式b2-4ac<0,则终止程序执行,否则求解
问题的提出 在实际问题中,要求计算机进行逻辑判断,即给出一个条件,让计算 机判断是否满足条件,并按照判断的结果来做不同的处理。 1. 从键盘输入一个数,如果是正数则打印出来,否则不 做任何处理; 2. 将学生中成绩不合格者打印出来; 3. 将职工工资低于300元者打印出来; 4. 根判别式b 2 -4ac<0,则终止程序执行,否则求解
关系运算符 关系运算符 含义 相当于数学符号 举例 大于 a>b > 大于等于 e>=-1 V
关系运算符 关系运算符 含义 相当于数学符号 举例 > 大于 > a>b = 大于等于 ≥ e>=-1 不等于 ≠ u<>v
关系表达式 用一个关系运算符把两个运算量(数值量或字符串)联 结起来称关系表达式; ●每个关系表达式都有一个值,这个值称作逻辑值(即 真”或“假”) ●在 QBASIC中,如果表达式不成立,即“假”,则此表 达式的值为“0”,否则为 举例:PRNT15>13,13>15 运行结果:-1 0
关系表达式 ⚫ 用一个关系运算符把两个运算量(数值量或字符串)联 结起来称关系表达式; ⚫ 每个关系表达式都有一个值,这个值称作逻辑值(即 “真”或“假”); ⚫ 在QBASIC中,如果表达式不成立,即“假”,则此表 达式的值为“0”,否则为“-1” ; ⚫ 举例:PRINT 15>13,13>15 运行结果:-1 0
逻辑运算符 问题的提出:如果需要判断一个数是否满足0≤x=0ANDx<=10THEN语句1ELSE语句2(正确) QB的逻辑运算符: AND(与):所联结的关系表达式必须同时成立才为真; OR(或):所联结的关系表达式只要有一个为真,即为真; NOT(非):将原来的逻辑值取反
逻辑运算符 问题的提出:如果需要判断一个数是否满足0≤x≤10,语句 IF 0==0 AND x<=10 THEN 语句1 ELSE 语句2(正确) QB的逻辑运算符: AND(与):所联结的关系表达式必须同时成立才为真; OR(或): 所联结的关系表达式只要有一个为真,即为真; NOT(非):将原来的逻辑值取反
逻辑运算符的运算规则 A AAND B AOR B NOTA NOT B 真真假假 真假真假 真假假假 真真真假 假假真真 假真假真
逻辑运算符的运算规则 A B A AND B A OR B NOT A NOT B 真 真 真 真 假 假 真 假 假 真 假 真 假 真 假 真 真 假 假 假 假 假 真 真
逻辑表达式的预算次序 个逻辑表达式一般包括逻辑运算符、关系表达式或其他运算量; 算术运算→关系运算→逻辑运算(NOT→AND→OR) 如以下表达式,其中a=5b=3c=2,d8 a-c>b+d or c>d AND ABS(c)=a OR NOT c>d+5 7>11 OR c>d AND 2=a OR NOT c>13 假OR假AND假 ORI NOT假 假OR假OR真x 真
逻辑表达式的预算次序 一个逻辑表达式一般包括逻辑运算符、关系表达式或其他运算量; 算术运算→关系运算→逻辑运算(NOT→AND→OR) 如以下表达式,其中a=5,b=3,c=-2,d=8 a-c > b+d OR c>d AND ABS(c) =a OR NOT c> d+5 7 > 11 OR c>d AND 2 =a OR NOT c>13 假 OR 假 AND 假 OR NOT 假 假 OR 假 OR 真 真
F语句 语法:IF关系表达式THEN语句1ELSE语句2 在IF语句中,实际是判别关系表达式的逻辑值是零还是非零。如果是 非零(即条件成立),则执行THEN后的语句,否则执行ELSE后的语 句(有ELSE语句!)。 IF5>3 THEN PRINT“ This is true." ELSE PRINT“ Thisis false” F3>5 THEN PRINT“ Thisis true." ELSE PRINT“ This is false” IF 2 THEN PRINT This is true. ELSE PRINT Thisis false IF0 THEN PRINT“ Thisis true." ELSE PRINT“ hisis false” 表达式的逻辑值可以赋值给变量: X=5>3 X=5=3
IF语句 语法:IF 关系表达式THEN 语句1 [ELSE 语句2] 在IF语句中,实际是判别关系表达式的逻辑值是零还是非零。如果是 非零(即条件成立),则执行THEN后的语句,否则执行ELSE后的语 句(有ELSE语句!)。 IF 5>3 THEN PRINT “This is true.” ELSE PRINT “This is false” IF 3>5 THEN PRINT “This is true.” ELSE PRINT “This is false” IF 2 THEN PRINT “This is true.” ELSE PRINT “This is false” IF 0 THEN PRINT “This is true.” ELSE PRINT “This is false” 表达式的逻辑值可以赋值给变量: x=5>3 x=5=3
甲、乙、丙、丁四个人中有一个人是小偷,请根据四个人的 谈话判断谁是小偷。已知四人中有一个人说假话。 甲:我不是小偷。 乙:丙是小偷。 丙:丁是小偷。 丁:丙说谎。 分析:可以采用枚举法,依次假设甲、乙、丙、丁是小偷, 再根据他们的谈话找到关系式。由于有一个人说谎,所以四 个关系式相加值为-3时即可找到小偷 (X4)=3
甲、乙、丙、丁四个人中有一个人是小偷,请根据四个人的 谈话判断谁是小偷。已知四人中有一个人说假话。 甲:我不是小偷。 乙:丙是小偷。 丙:丁是小偷。 丁:丙说谎。 分析:可以采用枚举法,依次假设甲、乙、丙、丁是小偷, 再根据他们的谈话找到关系式。由于有一个人说谎,所以四 个关系式相加值为-3时即可找到小偷。 (X<>1)+(X=3)+(X=4)+(X<>4)=-3
四大湖问题(湖南省1986年青少年程序设计竞赛试题)。 上地理课时,四个学生回答我国四大淡水湖的大小时说: 甲:洞庭湖最大,洪泽湖最小,鄱阳湖第三。 乙:洪泽湖最大,洞庭淜最小,鄱阳湖第二,太湖第三。 丙:洪泽湖最小,洞庭湖第三。 丁:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三 对于每个湖的大小,每人仅答对了一个。 请判断四个湖的大小
四大湖问题(湖南省1986年青少年程序设计竞赛试题)。 上地理课时,四个学生回答我国四大淡水湖的大小时说: 甲:洞庭湖最大,洪泽湖最小,鄱阳湖第三。 乙:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。 丙:洪泽湖最小,洞庭湖第三。 丁:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。 对于每个湖的大小,每人仅答对了一个。 请判断四个湖的大小