设布尔变量bool,当x,y在圆环内时,让它取值为true,否则取值为false。 y
0 1 2 x “(x,y)若在圆环内”的表达式:(x2+y2≥12)且(x2+y2≤22)
PROGRAM L2_4; VAR
x,y:real;
bool:boolean; BEGIN writeln; write('x=?'); readln(x); write('y=?'); readln(y);
bool:=(x*x+y*y>=1) and (x*x+y*y<=4); write(bool); END.
习题
XT1_1 判断下列标识符,哪些是合法的?哪些是非法的?
x3,3x,a17,p5q,π,β,ε,abcd,x2,ex9.5
XT1_2 输入三个数,计算并输出它们的平均值以及三个数的乘积,写出程序。
XT1_3 已知地球半径为6371km,计算并输出地球的表面积和体积,写出程序。球表面积计算公式s=4πR2 ,球体积计算公式V?43?R(其中R指球半径)。 3XT1_4 已知匀加速运动的初速度为10m/s,加速度为2m/s2,求20s以后的速度,20s内走过的路程及平均速度,写出程序。
设初速度为v0,加速度为a,时间为t,末速度为vt,路程为s,平均速度为vave,求末速度公式:vt=v0+at,路程的公式:s?v0t?
XT1_5 读入摄氏温度c,将它转换成华氏温度f输出,写出程序。转换公式:
12sat,平均速度为vave= 2t 11
f?9c?32 5
XT2_1 下列数据哪些是整数?哪些是实数?哪些是非法的数?
256,2.50,1e+06,2.2e5,e10,-785,e-5,
.5,15.,15.0,0.12,0,0.0,25e,
XT2_2 确定下列各常数、表达式的类型和值,表达式类型是指表达式值(结果)的类型。
‘A’,’3’,3,true,false, 12/3,12 DIV 3,5>3,5<3,
105 MOD 10,round(17/3,trunc(17/3), sqrt(ord(‘2’)-ord(‘0’)), sqr(ord(‘2’)-ord(‘0’)), (5>3) AND (5<3),chr(67)
XT2_3 将下列数学表达式表示成PASCAL表达式
(1)-(a2+b2)·y4 (2)sin2(x+0.5)+3cos(2x+4)+tan-1x (3)u0(1+e-0.5t)
5?bp?q?(r?1)2(4) (5) (6)2a?6a(r?1)?1?c?d?b?5a?yaxba?ba?bz
?ab??(7)1?tan4830' (8)|3-exln(1+x)| (9)??2?cd??f?12?105?xy (10)
1??2
XT2_4 写一程序读入三角形的三个边a,b,c,计算并打印三角形的面积S。可利用下列公式计算。
S?p(p?a)(p?b)(p?c)
其中p?1(a?b?c) 2h2 XT2_5 按下列公式计算和打印y值
x?1?tan52?15'
?y?e2?lnsin2x?sinx2
XT2_6 输入二次方程的系数a,b,c(输入数据的选取应保证二次方程为实根),计算并输出二次方程的两个实根。二次方程为:
xh1 12
r XT2_7图
ax2+bx+c=0
XT2_7 求图形的表面积与体积。其中r,h1,h2的值由键盘读入。,, XT2_8 输入三个字符,然后按输入字符次序输出这三个字符,再输出每个字符的序号,最后按与输入字符相反的次序输出这三个字符。
XT2_9 由键盘输入两组x,y值,由程序根据它们是否在示意图中的斜线区域内,输出不同的值。若在斜线区域内,输出true,否则输出false。
XT2_10 输入一个三位整数,将它们反向输出。例如输入127,输出应为721。
XT2_11 输出你的中文(或英文)名字。每个汉字(或字母用7行5列字符描述。例如王平输出如图所示。
y 2
-2 0 2 x
-2 XT2_9图
13
***** * *****
******** * *** ** ***** ***** * * * * *
XT2_11图
第3课 选择结构程序设计(20071224)
请参阅《全国信息学奥林匹克联赛培训教程(一)》P101
5.3.3 选择结构
3.1 引言
通常,计算机按在程序中书写的顺序执行语句。然而,在许多情况下,语句执行的顺序依赖于输入数据或中间运算结果。在这种情况下,必须根据某个变量或表达式的值作出判定,以决定执行哪些语句和跳过哪些语句不执行。我们称这种程序结构为选择结构(或称判定结构)。
PASCAL中有两个语句可实现选择结构:IF语句(条件语句)和CASE语句(情况语句)
3.2 IF语句
3.2.1 IF语句的两种形式
IF语句又称如果语句(或称条件语句)。它的一般形式是
IF (条件) 假 真 条件 THEN (语句1) ELSE (语句2)
其中“条件”实际上是一个布尔表达式,它
语句1 语句2 的值可以是真(true)或假(false)。在条件为真时,执行语句1,否则(条件为假)执行语句2。
可以利用流程图来描述选择结构。
在流程图中用菱形框表示要执行的判定,其余步骤用矩形框表示,箭头表示执行的顺序。
例L3_1 火车托运行李,要根据行李的重量按不同标准收费。例如不超过50kg,按每公斤0.35元收费。若超过50kg,则其中50kg按每公斤0.35元收费,其余超过部分按每公斤0.50元收费。现输入托运行李重量,要求计算并输出托运费。
解:
讨论:设托运行李重量为weight,该问题要求根据weight是否超过50kg,按不同公式计算出托运费。设托运费为pay。weight和pay均为实型。
下面给出算法。 一级算法
1、读入weight的值。
2、根据weight的大小选择不同的公式计算pay。 3、输出pay。
其中第2步需求精。根据题意,可以写出计算pay的公式如下:
weight≤50 ?weight?0.35pay??
weight>50 50?0.35?(weight?50)?0.5? 14
二级求精
第2步 计算pay
2-1 如果weight≤50
假 真 2-2 则pay=weight×0.35 weight≤50 2-3 否则pay=50×0.35+(weight-50)×0.5
以上求精步骤要求首先判断
pay=weight×0.35 pay=50×0.35 weight是否小于等于50。如果小于
+(weight-50) ×0.5 等于50应执行算法步骤2-2,否则
应执行算法步骤2-3。即算法步骤2-2和2-3不是同时执行的,需根据情况选择其一执行。
L3_1图
PROGRAM L3_1; 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) END.
除了上面给出的IF语句形式外,PASCAL中还有另外一种IF语句形式。即 IF (条件)
THEN (语句)
假 真 在条件为真时,执行THEN后的语句。在条件为假时,条件 不执行THEN后的语句,在两种情况下的后继语句都是IF语句的下一个语句。
语句1
15