资源描述
布尔表达式和选择结构 陈旭龙 基本运算符一览表 运算符 操作类型 结果类型 算术运算 +,-,* 整数或实数 整数或实数 / 整数或实数 实数 div,mod 整数 整数 关系运算 =, 各种数据类型 布尔 标准类型 = 标准类型 in 集合 逻辑运算 not, and, or 布尔 布尔 关系运算符 运算符 运算 运算对象 结果类型 = 等于 简单类型 布尔型 不等于 简单类型 布尔型 大于 简单类型 布尔型 = 大于等于 简单类型 布尔型 注意:其运算结果只能为 True或 False 下面表达式的运行结果: 23 345.5=100 1210 设 x为整型变量 表示 x大于 10的表达式为: 表示 x小于 60的表达式为: 表示 x既大于 10且小于 60的表达 式为: x10 x10) and (x90) and (sx95) And 与 公园收费规则: 10岁以下 或者 60岁以上免费 (age60) Or 或 X 不是 偶数 not (x mod 2=0) Not 非 逻辑运算符 a b Not a a and b a or b a xor b false false true false false false false true true false ture true true false false false true true true true false true true false 写出表达式 1. 整数 x是偶数 2. 写出一个数 x既能被 3整除又能被 5整除的表达式 3. y是闰年年份数(闰年的判断方法:能够被 4整除且不能被 100整除,或者能被 400整除) x mod 2=0 (x mod 3=0) and (x mod 5=0) (y mod 4=0) and (y mod 1000) or (y mod 400=0) 运算符的优先级 1、内层小括号先计算 2、函数先求值 3、单目运算符( , ,not) 4、乘的关系双目运算符( *,/,div,mod,and) 5、加的关系双目运算符( , ,or) 6、关系运算符( ,=,=,in) 在同级运算中,按从左到右的顺序计算。 表达式 (1)算术表达式 :算术表达式是由算术运算符连接 常量、变量、函数的式子。 (2)布尔表达式 : Pascal提供给布尔表达式以下基 本操作:逻辑运算和关系运算。 一个单独的变量或常量也是表达式 。如 a、 a+3、 a*3+b都是表达式。 语句格式 格式 1: if 布尔表达式 then 语句 ; 格式 2: if 布尔表达式 then 语句 1 else 语句 2; if语句不能写成: if 布尔表达式 then; 语句 1; 这样语句不会出现语法错误,但由于 then后的“;”代表了一个空语句,因此无 论布尔表达式的值如何,都将执行语句 1。 例题 1 输入一个整数,判断它是否为偶数,如果是,则输出“ yes”, 否则输出“ no”。 program 1; var a:integer; begin readln(a); if then writeln(yes) else writeln(no); end. a mod 2=0 练习 1 1、输入一个数,如果该数可以被 3整除 或者 可以被 5整除,则输出“ YES”,否则输 出“ NO”。 2、输入一个年份,判断是不是一个闰年,如果是闰年,则输出“ leap year”,否 则输出“ nonleap year”。 3、某超市举行购物优惠活动:所购物品不超过 100元时,按九折付款,如超过 100元, 超过部分按六折收费。请你编一程序完成超市自动计费的工作。输入只有一个整数 M, 表示购物的款数。输出打折后的款数( 结果保留两位小数)。 4、 老张有 x元钱,打算存入银行两年。可以有两种储蓄方法 :一种是存两年 ,年利率是 4.50%;一种是先存一年,年利率是 3.87%,到期时再把本金和税后利息取出来合在一 起,再存一年。老张选择哪种储蓄方法得到的利息多?请编程,由键盘输入 x,如果 是第一种方法好,输出 1,若是第二种方法好,则输出 2。 输入样例 输出样例 23.31 20.98 120 102.00 复合语句 概念:是由若干条语句 组成一个语句块,这个 语句块被作为一条语句。 格式说明:用 begin开 头 end结束,将若干语 句括起来。之间的语句 用分号“;”分隔。 例子: begin temp := a; a := b; b :=temp; end; 例题 2 由键盘输入两个 数 a,b,将大数存 于 a中,小数存于 b中,再输出变量 a,b的值。 Program day2_3; var a,b,t: integer; begin readln(a, b); if ab then begin end; writeln(max=, a); writeln(min=, b); end. t := a; a := b; b := t; 练习 2 1、 读入三个不同的整数,编程按由小到大的顺序排列打印出来 。 2、输入三条边 a,b,c,判断其能否组成三角形,如果可以则输出 yes,否 则输出 no。 3、某车站行李托运收费标准是: 10公斤或 10公斤以下,收费 2.5元,超 过 10公斤的行李,按每超过 1公斤增加 1.5元进行收费。 试编一程序,输 入行李的重量,算出托运费。 输入样例 1: 5 输出样例 1: 2.50 输入样例 2: 11 输出样例 2: 4.00 If语句的嵌套 在 if语句中,如果 then或 else后的语句又是一个 if语句,叫做 if语 句的嵌套。 Else和最近的 then配对。 if 布尔表达式 then 语句 1 else 语句 2; If a b then if bc then x:=x+1 else x:=x-1; If a b then a:=1 else if a=b then a:=0 else a:=-1; 嵌套例子 编程计算函数 f(x)的值。 10 x=1 f(x)= 40 x=2 50 x1和 x2 练习 1、输入某学生的成绩,若成绩在 85分以上,输出 very good,若成绩在 60 分到 85分之间,输出 good,若成绩低于 60分,输出 no good。 2、输 入两个正整数 a, b。 b最大不超过三位数, a不大于 31。使 a在左, b 在右,拼接成一个新的数 c。例如: a 2, b 16,则 c 216;若 a 18, b 476,则 c 18476。 提示 :求 c的公式为: c a K b 其 中: 输入样例: 2 16 输 出样例: 216 多路选择结构 Case 表达式 of 常量表 1:语句 1; 常量表 n:语句 n; else 语句 n+1 end; 格式说明:常量表为有序类型数据。表达式要与常量类型 一致。 常量后的语句为一条语句。如果要完成多条语句功能,要 将这些语句写成复合语句。 注意事项 Case语句执行表达式值相匹配的 case常量所指向的那条语 句,如果没有相匹配的值,则执行 else后的语句 n+1或什么 也不做(无 else语句)。 Case常量必须惟一确定且必须与表达式同类型,每一个常 量只能在常量表中出现一次且仅出现一次。 表达式只能是充数类型。序数类型包括整型、字符型、布 尔型、枚举型、子界型。 例题 模拟一个简单的计算器,即输入两个 数和一个算符(加、减、乘、除), 输出运算结果。 输入: 12 24 + 输出: 36 Program exam5_4; Var a,b,c:integer; ch: char; begin readln(a,b); readln(ch); case ch of +: c := a + b; -: c := a - b; *: c := a * b; /: c := a div b; end; writeln(c); end. 求天数 【 描述 】 输入年份和月份,求当月有多少天。注意,闰年的 判断方法为能被 4整除且不能被 100整除,或者能被 400整除。 【 输入说明 】 输入两个数 yy和 mm,代表年份和月份。 【 输出说明 】 输出当月的天数。 【 输入样例 】 2010 2 【 输出样例 】 28 网站练习题 P1099 数据交换 P1100 购物 P1101 成绩分级 P1102 四则运算 P1103 合并数字 P1104 求天数
展开阅读全文