Presentation is loading. Please wait.

Presentation is loading. Please wait.

第五课选择结构 布尔表达式、IF语句 选择结构 2.布尔变量必须预先定义后使用。 第一节 布尔运算 例如:

Similar presentations


Presentation on theme: "第五课选择结构 布尔表达式、IF语句 选择结构 2.布尔变量必须预先定义后使用。 第一节 布尔运算 例如:"— Presentation transcript:

1 第五课选择结构 布尔表达式、IF语句 选择结构 2.布尔变量必须预先定义后使用。 第一节 布尔运算 例如:
选择性语句包括if语句和case语句。选择性语句实现程序的选择结构。 第一节 布尔运算 要判断“a>b”是否成立,其结果并不是一个数值,而是“成立”或“不成立”。也可用“真”或“假”这样的逻辑值来表示。在Pascal语言中,具有这种性质的数据类型是布尔类型。 一、布尔常量和布尔变量 1.布尔常量的数据只有二个:真和假,分别用标准常量TRUE(真)和FALSE(假)来表示。并约定将FALSE的序号定为0,TRUE为1。 2.布尔变量必须预先定义后使用。 例如: var a,b:boolean; begin a:=TRUE; b:=FALSE; …… 其中,a和b为布尔类型的变量。boolean是预定义标识符,意为“布尔型”。

2 第五课 布尔表达式、IF语句 二、布尔表达式
关系式是由一个关系运算符(也称比较符)将两个算术表达式或两个字符表达式联结起来的式子。关系运算符有以下6个: = <> > < >= <= 这些关系运算符分别为等于、不等于、大于、小于、大于等于和小于等于。关系式代表一个布尔值,关系式成立时的值为TRUE,否则值为FALSE。所以关系式是简单的布尔表达式。 除了整型和实型可以在关系运算符两边混合出现外,关系运算符两边的表达式的值必须是相同的有序类型。例如,字符不能和数值比较。 两个及多个关系运算符不能连用。例如,a<b<c不是符合语法的关系式。 布尔表达式是由布尔型的常量、变量、函数、关系式、布尔运算符及圆括号组成的表达式,它的值是布尔类型。 Pascal语言中有3个布尔运算符:AND(逻辑与)、OR(逻辑或)和NOT(逻辑否)。布尔运算也称逻辑运算。

3 第五课 布尔表达式、IF语句 a b and or not 1
由于布尔表达式中可能同时出现算术运算符、关系运算符和布尔运算符,为了确定表达式的求值规则,Pascal规定了这些运算的优先顺序: ① 括号 ② 函数 ③ NOT ④ *、/、DIV、MOD、AND ⑤ +、-、OR ⑥ >、<、>=、<=、<>、= 例如,当a的值为TRUE时,b为FALSE时,以下是一些符合语法的布尔表达式及其值。 a AND b 的值为FALSE a OR b 的值为TRUE NOT a AND b 的值为FALSE NOT a OR b 的值为FALSE NOT (a OR b) 的值为FALSE NOT b OR a 的值为TRUE NOT (b OR a) 的值为TRUE 3> 的值为FALSE (3<=4) AND a 的值为TRUE a<>b 的值为TRUE a<b 的值为FALSE (a=b) OR (’a’<’b’) 的值为TRUE a b and or not 1

4 习题 F T 1.当a=TURE、b=FALSE、c=FALSE时,下列布尔表达式的值是什么? (1) NOT a AND b OR c
(4) 6 DIV 4 = 5 MOD 4  F T 2。P41:分析例4-12 

5 第五课 布尔表达式、IF语句 三、布尔型数据的输入和输出
将一个布尔表达式赋值给一个布尔变量时,可以用赋值语句。不能用read或readln语句从外部设备向计算机输入一个布尔变量的值。 例如,定义a为布尔变量,read(a)是一条错误的语句,赋值语句a:=(3>=4) or (7<8)是符合语法的。 输出一个布尔型数据可用write或writeln。例如当a的值为TRUE时,执行语句writeln(’a=’,a),则输出结果是: a= TRUE 例如执行语句writeln(3+4<5),则输出结果是: FALSE。

6 第五课 布尔表达式、IF语句 第二节 if语句 if语句由一个布尔表达式和两个供选择的语句组成。运行时根据布尔表达式求值的结果,选取其中之一的语句执行。 有两种形式的if语句: ① if <布尔表达式> then <语句1> ② if <布尔表达式> then <语句1> else <语句2> 当布尔表达式的值为真,则执行then后面的语句。值为假时有两种情况:要么什么也不做,要么执行else后面的语句。注意else前面没有分号,因为分号是两个语句间的分隔符号,而else并非语句。如果在该处画蛇添足加了分号,则编译时就会认为if语句到此结束,而把else当作另一语句的开头,输出语法错误的信息。

7 第五课 布尔表达式、IF语句 语句1 FALSE TRUE 布尔表达式 语句2

8 第五课 布尔表达式、IF语句 var x,y:integer; begin readln(x,y);
例4-1 输出两个整数中的较小数。   program example4_1_1; var x,y:integer; begin readln(x,y); if x<y then writeln(x) else writeln(y) end.   本例也可以用两条if语句来实现,程序如下。   program example4_1_2; var x,y: integer; if x<y then writeln(x); if y<=x then writeln(y)

9 第五课 布尔表达式、IF语句 例4-2 输入一个年号(year),判断它是不是闰年。
判断某年是否闰年的条件是被4整除而不能被100整除,或者能被400整除。因此当布尔表达式((year MOD 4=0) AND (year MOD 100<>0)) OR (year MOD 400=0)的值等于TRUE时,这一年就是闰年。   program example4_2; var year:integer; begin write('Enter year: '); readln(year); if ((year MOD 4=0) AND (year MOD 100<>0)) OR (year MOD 400=0) then writeln(year:6, ' is a leap year.') else writeln(year:6, ' is not a leap year.'); readln; end.

10 第五课 布尔表达式、IF语句 var letter : char; begin readln(letter);
例4-3 读入一个小写字母。如果这个字母在字母表的前半部,则输出其后继字母;否则输出其前趋字母。 var letter : char; begin readln(letter); if letter <= ’m’ then writeln(Succ(letter)) else writeln(Pred(letter)); readln; end.

11 第五课 布尔表达式、IF语句 同时参考P42 4-14 P44 4-16 1/(x-2) (x≠2) 例4-4 求y= x (x=2)
program example4_4; var y,x:real; begin writeln('Input x: '); readln(x); if x = 2 then y := x else y := 1/(x-2); writeln('y=', y); readln; end.

12 第五课 布尔表达式、IF语句 var y,x,a:real; begin writeln('Input a and x: ');
readln(a, x); if x<a then y:=a; if x=a then y:=1; if x>a then y:=x; writeln('y=',y) end. 程序运行结果如下: Input a and x: (从键盘输入a=1,x=4) y= E+00 例4-5 求y= (x=a) x (x>a)   a (x<a)

13 第五课 布尔表达式、IF语句 在Pascal条件语句格式中,语句1和语句2只能是一条语句。当条件选择某个分支的计算要用多个语句描述时,就得把该分支用begin和end括起来,写成复合语句。另外,实际书写多重if语句连续嵌套时,插入适量的复合语句,可以更清晰地表示if语句的内部结构。 下面的if语句由于使用嵌套结构,增加了阅读理解本语句的难度。 if e1 then if e2 then s1 else s2 在此if语句中,else对应着哪一个if?Pascal语法规定else总是与最近的一个if配对。根据Pascal语法,可以使用复合语句来表示以上嵌套结构,实现相同的功能,同时,使得本语句表达的意思变得较易理解。 if e1 then begin if e2 then s1 else s2 end

14 第五课 布尔表达式、IF语句 如果使用复合语句,例4-5也可以用以下方法求解。 program example4_5_2;
var y,x,a:real; begin writeln('Input a and x: '); readln(a,x); if x<a then y:=a else begin if x=a then y:=1 else y:=x end; writeln('y=',y) end. 例4-5 求y= (x=a) x (x>a)   a (x<a)

15 习题 2.输入两门课的考试成绩放在整型变量A和B中。如果都及格(成绩≥60)就显示“Pass”,否则显示“Fail”。
3.某店商品打折促售。原价200元以下(含200元)的商品打九五折;200元以上到2000元(含2000元)的商品打九折;2000元以上的商品打八八折。输入商品原价,输出打折后的价格。 4。上机完成: P46:例4-19 P48:例4-21


Download ppt "第五课选择结构 布尔表达式、IF语句 选择结构 2.布尔变量必须预先定义后使用。 第一节 布尔运算 例如:"

Similar presentations


Ads by Google