选择结构程序设计
通常,计算机按在程序中书写的顺序执行语句。然而,在许多情况下,语句执行的顺序依赖于输入数据或中间运算结果。在这种情况下,必须根据某个变量或
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达式的值作出判定,以决定执行哪些语句和跳过哪些语句不执行。我们称这种程序结构为选择结构(或称判定结构)。
PASCAL中有两个语句可实现选择结构:IF语句(条件语句)和CASE语句(情况语句)
一、IF语句
条件语句用于响应一个条件的两个方面。
例如:元旦如果下雨,我们就在家;否则(不下雨)我们就去旅游。
又如:如果已经搜索得到结果,就打印出答案;否则(还没得到结果)就继续搜索。
A、IF语句的形式
我们首先来看一个例子,说明选择结构的必要性及设计方法。
Example4-1: 随着08元旦的来临,许多外出打工的人都开始忙着托运行李回家过年了。火车托运行李,要根据行李的重量按不同
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
收费。例如不超过50kg,按每公斤0.35元收费。若超过50kg,则其中50kg按每公斤0.35元收费,其余超过部分按每公斤0.50元收费。现输入托运行李重量,
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
计算并输出托运费。
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
:设行李重量为weight
1、 读入weight的值;
EX4-1
2、根据weight大小选择不同公式计算pay;
首先判断weight是否小于等于50。
若小于等于50,则pay=weight*0.35——①;
否则pay=50*0.35+(weight-50)*0.5——②;
即:①和②不是同时执行,需要根据情况选择其一执行。这就是我们接下来需要讨论的选择结构。
(流程图表述选择结构时:菱形框表示要执行的判断;其余步骤用矩形框表示;箭头表示执行的顺序。)
3、输出pay。
在pascal中,可以很方便地利用if语句(又称如果语句、条件语句)来描述或实现选择结构。
IF语句的一般格式是:
IF (条件)
THEN (语句1) {条件为真时的响应、处理}
ELSE (语句2); {条件为假时的响应、处理}
其中“条件”实际上是一个布尔表达式,它的值可以是真(true)或假(false)。在条件为真时,执行语句1,否则(条件为假)执行语句2。
真
如:Example4-1的选择语句可以表示为:
IF weight<=50
THEN pay:=0.35*weight
ELSE pay:=0.35*50+0.5*(weight-50);
可以利用流程图来描述选择结构。
使用条件语句时要注意:
1、条件语句是一个语句。IF、THEN、ELSE都是语句的一个部分。所以它只能有一个“;”作为分隔符,放在句子的结束,特别要注意不能放在ELSE 之前。
真
2、如果我们的程序只需对条件为真的情况作出处理,不需要处理条件为假的情况,则IF语句省略ELSE分句,格式变成:
IF (条件)
THEN (语句1);{条件为真时的响应、处理}
如: 如果数a大于等于0则输出它的平方根。
if a>=0 then writeln(sqrt(a));
(对以上的例子,条件为假时不需处理,于是我们干脆省去ELSE分句。)
3、if语句可以多层嵌套。嵌套时为了避免误解,可以用begin,end括起嵌套部分;else分句一般和最近的if分句配套:
PROGRAM EX41;
VAR
weight,pay:real;
BEGIN
write('weight=');
readln(weight);
IF weight<=50
THEN pay:=0.35*weight
ELSE pay:=0.35*50+0.5*(weight-50);
writeln('pay=',pay:6:2);
END.
IF 条件
THEN
BEGIN
if 条件1 then …… else ……;
END
ELSE
BEGIN
if 条件2 then …… else ……;
end;
PROGRAM EX42;
VAR
x,y,temp:real;
BEGIN
write('x=');
readln(x);
write('y=');
readln(y);
IF x
THEN BEGIN
temp:=x;
x:=y;
y:=temp
END;
writeln('x=',x:8:2,',y=',y:8:2)
END.
B、复合语句
Example4-2:读两个数,将大数存于x,小数存于y。
分析:先读入两个数,将一个数存于x,第二个数存于y。
然后比较这两个数:如果x
0) OR (year MOD 400 = 0)
program EX44;
var
year,month,day:integer;
BEGIN
write('year=');
readln(year);
write('month=');
readln(month);
CASE month OF
1,3,5,7,8,10,12:days:=31;
4,6,9,11 :days:=30; {————以上处理31天和30天的情况}
2 :IF(year MOD 4 = 0)
AND (year MOD 100 <> 0)
OR (year MOD 400 = 0)
THEN days:=29
ELSE days:=28 {以上处理2月的情况:闰年28天,平年29天}
END;
writeln('year=',year,',month=',month,',days=',days)
END.
思考与练习: