信息学奥赛第四讲:选择结构程序设计
来源:百度文库 编辑:神马文学网 时间:2024/04/30 03:25:06
信息学奥赛第四讲:选择结构程序设计
4.1 IF 语句
类型一: if <布尔表达式> then <语句>;
else <语句2>;
当布尔表达式的值为真,则执行then后面的语句,值为假时有两种情况:要么什么也不做,要么执行else后面的语句。注意else前面没有分号 ,因为分号是两个语句之间的分隔符,而else并非语句。如果在该处添了分号,则在编译的时候就会认为if 语句到此结束,而把else当作另一句的开头,输出出错信息。
例:根据学生的成绩给予相应的等 级 ,对应关系如下:
90——100 A
80——89 B
60——79 C
60以下 D
Program Score;
Var
S:real;
Ch:char;
Begin
End;
在Pascal语言if语句中被构造的语句只能是一条语句,当条件选择某个分支的计算要用多个语句描述时,就必须把该分支用begin和 end括来,写成复合语句。在用if语句连续嵌套时,如果你插入适量的复合语句,有利于程序的阅读和理解。
例:当x>0时候,计算x*x,并且输出x和x*x,
program lianxie3;
var x,x1:real;
begin
readln('x=',x);
if x>= 0
begin
x1:=x*x;
writeln('x*x=',x1);
writeln('x=',x);
end;
end.
当if 语句嵌套时,Pascal约定else总是和最近的一个if配对。
4.2 case语句
case语句是由一个表达式和众多可选择的操作序列组成。运行时,根据表达式的求值结果,在众多的分支中选取一个分支执行。其形式为:
case 表达式 of
常量1:语句1;
常量2:语句2;
……
常量n:语句n;
else 语句 n+1 {可选项}
end;
表达式只能是顺序类型(除了实型以外的简单类型),其值必须是唯一确定并且和 常量类型相同。case语句执行和表达式值相匹配的case常数所指向的那条语句,如果没有相匹配的值,则执行else部分(如果有的话)或者什么也不做。在else前面的语句末尾有分号,这是和if语句不同的。
例:根据学生的成绩给予相应的等 级 ,对应关系如下:
90——100 A
80——89 B
60——79 C
60以下 D
program chengji;
var s:real;ch:char;
begin
write(' Please
readln(s);
if(s>=0)and(s<=100)then
case s div 10 of
10,9:ch:=' A ';
8:ch:='B';
7,6:='C';
else ch:='D';
end;
writeln(s,'--',ch);
end.
练习:某幼儿园只收2至6岁的小孩,2~3岁入小班,4岁入中班,5~6岁入大班。编写程序输入姓名和年龄,判断小孩入哪个班?并按"姓名年龄 班级"的格式输出。