求NOIP历年普及组提高组的试题及解题报告和测试数据

最好是打包下载,或者是发我邮箱里,追分,谢谢!!!yiwenbo2008@foxmail.com... 最好是打包下载,或者是发我邮箱里,追分,谢谢!!!
yiwenbo2008@foxmail.com
展开
 我来答
boximomo
2010-05-28 · TA获得超过115个赞
知道答主
回答量:254
采纳率:0%
帮助的人:111万
展开全部
第四章 循环结构序设计
4.1循环结构程序
4.1.1 循环结构
循环结构(又称重复结构)解决了某些语句要重复执行的多次而需重复书写等问题,使得我们可能只编写少量的语句,让计算机重复执行多次,从而完成大量类同的计算要求。在PASCAL中,实现循环程序设计的主要语句有for语句、while语句和repeat语句。
4.1.2 for 语句
1. for 语句的一般形式及语法图如下:
格式1: for <循环变量>:=<初值> to <终值> do <语句>;
格式2: for <循环变量>:=<初值> downto <终值> do <语句>;
注:当<初值>大于<终值>应用格式2 。<语句>可以是<复合语句>。

2. for 语句的PDL框图及N-S框图描述方法如下:

说明:循环变量的类型必须为有序类型(整型、字符型、布尔型、子界型、枚举型)。succ(x)和pred(x)分别表示求x的后序和前序。如:pred(5)=4 ,succ(5)=6 ,pred('B')='A' 。
for <循环变量>:=<初值> to <终值> do
<语句>
for <循环变量>:=<初值> downto <终值> do
<语句>

例4.1 编程序打印ASCII表。
思路:在计算机中,通常用七位二进制数为字符进行编码,即可为128(27)个字符编码。其中0-31为控制符,32-127为可打印字符。打印ASCII表可用chr(x)函数。
程序如下:
program rzy12;
开始
for i:= 1 to 127 do
write( i , chr(i) )
结束
var
i:byte;
begin
for i:=32 to 127 do
说明:执行分析
开始i:=32,不超过127,执行:
write(32,chr(32),' ');
自动执行i:=succ(i),即i为33
i为33不超过127,故继续执行
write(33,chr(33),' ');
自动执行i:=succ(i),即i为34
重复上述过程,直到i超过127
write( i , chr(i) , ' ' );
end .
程序运行结果:
32 33!34" 35# 36$ 37%
. . . . . .
(略)

例4.2 将26个英文字母由大到小打印(即从Z到A)
program rzy13;
var
开始
for ch:= 'Z' to 'A' do
write(ch );
结束
ch:char;
begin
for ch:='Z' downto 'A' do
write(ch);
思考:若要按由小到大打印(即从A至Z)
应如何修改程序?
end .
程序运行结果:
ZYXW . . . A
4.1.3 while 语句
1. while语句的一般形式及语法图如下:
格式: while <布尔表达式> do <语句> ;

说明:当<布尔表达式>结果为true时,执行<语句>。<语句>可以为复合语句。
2. while语句的PDL框图及N-S框图描述方法如下:

while <布尔表达式> do
<语句>

例4.3 从键盘输入n值,求从1到n之间的奇数和。
program rzy14;
开始
读入n值
赋初值s:=0;a:=1;
while a <=n do
s:=s+a;
a:=a+2;
打印结果
结束
var
a,n:integer;
s:longint;
begin
write('n=');
readln(n);
s:=0;a:=1;
while a<=n do
begin
s:=s+a;
a:=a+2;
end;
writeln('s=1+...+' , a-2 , '=' , s);
end .
运行结果:
n= 32766
s=1+...+32765=268402689
再运行结果:
n= 32768
s=1+...+-1=0

说明:s:=s+a和a:=a+2通常称为累加器,可实现自身增加某个值的作用。因a和n为integer型,故输入时最大只能接受32767,因此超过此值会出错。

4.1.4 repeat语句
1.repeat语句的一般形式及语法图如下:
repeat
<语句>
until <布尔表达式>
说明:repeat语句中的<语句>为复合语句时,构成复合语句的begin 和end可省。我们通常把for、while、repeat语句内的<语句>又称为<循环体语句>。repeat语句与while语句的区别是:repeat语句的<循环体语句>至少执行一次。若能预知<循环体语句>的执行次数,通常采用for语句实现,否则可用repeat语句或while语句来实现。

3. repeat语句的PDL框图及N-S框图描述方法如下:

<语句>;
until <布尔表达式>
百度网友d5774534c5
2019-06-01 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:28%
帮助的人:632万
展开全部
我邮箱是mrexcellent@163com,给你发过了,采纳吧求历届noip提高组试题及解题报告(还有测试数据)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在大胜关听周杰伦的蜻蜓
2010-06-09
知道答主
回答量:6
采纳率:0%
帮助的人:6.4万
展开全部
百度贴吧NOIP吧里有
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2010-05-31 · 超过23用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:0
展开全部
LS好扯淡,我有全部(没2009),但是发邮件太卡……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式