信息学奥赛--程序的三种基本结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

结果类型 布尔型 布尔型 布尔型 布尔型
布尔表达式:由关系运算符 和逻辑运算符连接成的表达 式。结果是布尔类型: TRUE或FALSE
Xor:异或其实就是对应的位,
不同就取1,想同就取0
21 二进制码: 0001 0101
2 二进制码: 000ቤተ መጻሕፍቲ ባይዱ 0010
xor:
0001 0111 (23)
(二)、选择结构:if 语句

求s
输出面积s
改进:
输入三角形的三条边a,b,c,如果能构成三 角形则输出三角形的面积;如果不能构成三角形则输 出”No answer”.
p abc 2
s p( p a)( p b)( p c)
NO
输出:
‘No answer’
Readln(a,b,c) 读入边长
A,b,c能否 构成三角形?
readln(a); If a mod 2 =0 then writeln(‘yes’) ; if a mod 2 <>0 then writeln(‘no’); End.
方法二:
Var a:integer;
无“;”
Begin
readln(a);
If a mod 2 =0 then writeln(‘yes’) else writeln(‘no’);
如:a:=1;b:=2;
则表达式:a<=b的值是TRUE;a>b的值是FALSE;
a+1=b的值是TRUE;
Var f:boolean;
f:=a>b; Write(f); 输出:FALSE
2、逻辑运算 (布尔运算)
运算符 not and or xor
运算 逻辑非(取反) 逻辑与(并且) 逻辑或(或者) 逻辑异或
End.
例2、计算下列函数 ,输入x,输出y的值 (精确到小数点后两位小数)。
x2
y 1
x
(x 0) (x 0)
(x 0)
分析:根据输入的x值,先分成x<0与x>=0两 种情况,然后对于情况x>=0,再区分x=0,还 是x>0。
var x:real;
begin readln(x); if x<0 then writeln(x*x:0:2) else if x=0 then writeln(0) else writeln(sqrt(x):0:2);
程序的三种基本结构
一、顺序结构 二、选择结构 (if 、case) 三、循环结构(for、while、repeat)
一、顺序结构
例:输入三角形的三条边a,b,c,输出三角形的 面积。(a,b,c是正整数<100,满足三角形条件)
p abc 2
s p( p a)( p b)( p c)
var a,b,c:integer; p,s:real;
输入: 132 输出: X1=-1.00 X2=-2.00
输入: 121 输出: X=-1.00
var
a,b,c:integer;
d,x1,x2:real;
begin
readln(a,b,c);
d:=b*b-4*a*c;
if d<0 then writeln('no answer');
if d=0 then writeln('x=',-b/(2*a):0:2);
end.
IF语句的嵌套 在if语句中,如果then子句或else子句仍是一个if语 句, 则称为if语句的嵌套。
例3:已知方程:
ax2+bx+c=0
输入系数a,b,c,a<>0,输出方程的解(考虑各种情况)。保留两位 小数。
(1):如果无实数解输出:’no answer’; (2):相同的实数解:输出一个即可。 (3):两个不同的实数解:分别输出。 如:
有两种形式的IF语句:
(1) if <布尔表达式> then <语句>; (2) if <布尔表达式> then <语句1> else <语句2>;
IF语句是由一个布尔表达式和一个或两个供选择的操作序列 组成。运行时根据布尔表达式的求值结果,选取其中之一的操 作序列执行。
当布尔表达式的值为TRUE,则执行then后面的语句,值为 FALSE 时有两种情况:
如:a:=1;b:=2;c:=3;
1)、Not(a>b) 2)、(a<b)and (b<c) 3)、(a<b)and (b>c) 4)、(a<b)or (b<c) 5)、(a<b)or(b>c) 6)、(a<b)xor(b<c) 7)、(a<b)xor(b>c)
运算对象 布尔型 布尔型 布尔型 布尔型
YES
求p,s, 输出面积
var a,b,c:integer; p,s:real;
begin readln(a,b,c); if (a+b>c)and(a+c>b)and(b+c>a) then begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln(s:0:2); end else writeln(‘No answer’);
(1)什么也不做;(2)执行else后面的语句。
注意: 1、else前面的语句不能有分号;2:如果语句部分是复合语
句(多于一条语句),则必须用begin与end括起来。
例1:输入一个整数a,判断他的奇偶性。 (是偶数输出“yes”,奇数输出“no”)。
方法一: Var a:integer; Begin
程序从第一句开始,依次 顺序执行语句直到结束, 中间无分支和循环,这种 程序结构称为顺序结构
begin
readln(a,b,c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln(s:0:2);
end.
Readln(a,b,c) 读入边长
流 程
求p
end.
无“;”
二、选择结构
(一)关系运算、逻辑运算及布尔表达式
1.关系运算符(表示数值大小关系的运算符号)
运算符
运算
结果类型
=
等于
布尔型
<>
不等于
布尔型
<
小于
布尔型
>
大于
布尔型
<=
小于等于
布尔型
>=
大于等于
布尔型
数据类型:布尔型 (boolean)
一个布尔型数据用来存放逻辑值(布尔值)。布尔型的值 只有两个:false(错误)和true(正确),并且false的序号是0, true的序号是1。false 和true都是预定义常数标识符,分别表 示逻辑假和逻辑真。并且true>false。boolean是布尔型的标 识符。 如: var a,b:boolean;
相关文档
最新文档