资源描述:
《NOIP初赛阅读程序解题方法.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、NOIP初赛阅读程序解题方法四会中学刘宗凡解题步骤做阅读程序题,首先要想方设法弄清楚程序的功能,每个题目总有一点“写作目的”。抓住了它,不仅答案变得容易了,而且对自己的结果也比较有信心。1、从总体上通读程序,大致把握程序的目的和算法。2、猜测变量的作用,跟踪主要变量值的变化(列表),找出规律。3、将程序分段,理清每一小段程序的作用和目的。4、看清输入,按照输出格式,写出结果。5、带着到的结果回到程序进行检查。几大方法a.直接模拟b.先模拟几次循环后找规律c.直接看程序了解算法功能d.了解程序本质后换一个方法解决e.有时不知
2、道算法可以通过观察猜出来一、基础题送分题,主要考查选手的程序设计基础知识和计算能力。细心Programex301;varu:array[0..3]ofinteger;i,a,b,x,y:integer;beginy:=10;fori:=0to3doread(u[i]);a:=(u[0]+u[1]+u[2]+u[3])div7;b:=u[0]div((u[1]-u[2])divu[3]);x:=(u[0]+a+2)-u[(u[3]+3)mod4];if(x>10)theny:=y+(b*100-u[3])div(u[u[0
3、]mod3]*5)elsey:=y+20+(b*100-u[3])div(u[u[0]mod3]*5);writeln(x,',',y);end.{*注:本例中,给定的输入数据可以避免分母为0或下标越界。}输入:9394输出:10,10关键语句b:=u[0]div((u[1]-u[2])divu[3]);y:=y+20+(b*100-u[3])div(u[u[0]mod3]*5);变量值:Y=10u[0]=9u[1]=3u[2]=9u[3]=4A=3b=-9x=10y=10注意事项1、负数整除、求模表达式(4mod(-3)
4、)与(-4mod3)的值为()A.-1,-1B.1,-1C.-1,1D.1,1(-14)mod(-3)=()模运算的规律:结果与被除数的符号相同。即被除数为正,模为正,否则为负。结果与除数的符号没有关系Bprograms401; varp,q:array[0..5]ofinteger; i,x,y:integer; begin y:=20; fori:=0to4doread(p); readln;
5、 q[0]:=(p[0]+p[1])+(p[2]+p[3]+p[4])div7; q[1]:=p[0]+p[1]div((p[2]+p[3])divp[4]); q[2]:=p[0]*p[1]divp[2]; q[3]:=q[0]*q[1]; q[4]:=q[1]+q[2]+q[3]; x:=(q[0]+q[4]+2)-p[(q[3]+3)mod4]; If(x>10)Then
6、 y:=y+(q[1]*100-q[3])div(p[p[4]mod3]*5) Else y:=y+20+(q[2]*100-q[3])div(p[p[4]mod3]*5); writeln(x,',',y); end.输入:66553输出:129,43Programex401;varu,v:array[0..3]ofinteger;i,x,y:integer;beginx:=10;y:=10;fori:=0to
7、3doread(u[i]);v[0]:=(u[0]+u[1]+u[2]+u[3])div7;v[1]:=u[0]div((u[1]-u[2])divu[3]);v[2]:=u[0]*u[1]divu[2]*u[3];v[3]:=v[0]*v[1];x:=(v[0]+v[1]+2)-u[(v[3]+3)mod4];if(x>10)theny:=y+(v[2]*100-v[3])div(u[u[0]mod3]*5)elsey:=y+20+(v[2]*100-v[3])div(u[v[0]mod3]*5);writeln(x,'
8、,',y);end.{*注:本例中,给定的输入数据可以避免分母为0或下标越界。}输入:9394输出:-13,57函数一:算术函数求绝对值-abs:是英文单词absolute(绝对)的缩写,abs(x)表示求x的绝对值指数函数-exp、自然对数函数-ln:exp是英文单词exponent(指数)的缩写,e