free Pascal的题目

programex;varn,x,i,s:integer;a:array[1..1000]ofinteger;proceduresetio;beginassign(inp... program ex;
var n,x,i,s:integer;
a:array[1..1000]of integer;

procedure setio;
begin
assign(input,'random.in');
reset(input);
assign(output,'random.out');
rewrite(output);
end;
procedure print;
begin
close(input);
close(output);
end;
begin
setio;
readln(n);
for i:=1 to 1000 do
a[i]:=0;
for i:=1 to n do
begin
read(x);
a[x]:=1;
end;
s:=0;
for i:=1 to 1000 do
s:=s+a[i];
writeln(s);
for i:=1 to 1000 do
if a[i]>0 then write(i,' ');
print;
end.
如上一个程序,本人初学,不知道这里的setio;print;rewrite;reset和procedure这几个词在程序中是什么意思?
(题目出处:NOIP2006明明想在学校里……完成去重和排序)这一题……
各位高手们帮下啊!!
展开
 我来答
zhonglingshan1
2010-03-29 · 超过19用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:56万
展开全部
首先,关于reset和rewrite。这两个是与文件输入输出有关的:
assign(input,'test.in');{定义输入文件}reset(input);{初始化输入文件}
assign(output,'test.out');{定义输出文件}rewrite(output);{初始化}
{之后的读入与输出就会在文件里进行,不会有一个黑框跳出来}
。。。。。。
close(input);close(output);{关闭/保存输入输出文件}

然后是procedure。这是自定义过程。后面接的setio与print是自定义过程的名称(与自定义函数有区别。建议你上网查找关于自定义函数、过程的资料,学到后面会很有用的)。
比如:
var a,b:longint;
procedure plus;
begin
read(a,b);
writeln(a+b);
end;{这里的end后面一定是分号}
begin
plus;
end.

上面这个与一开始学的:
var a,b:longint;
begin
read(a,b);
writeln(a+b);
end.
起到的效果和结果都是一样的。
百度网友30482a587
2010-03-29 · TA获得超过427个赞
知道答主
回答量:174
采纳率:0%
帮助的人:111万
展开全部
桶排序,还省去了重复,直接排序!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
05020723
2010-03-30 · 超过20用户采纳过TA的回答
知道答主
回答量:150
采纳率:0%
帮助的人:50.7万
展开全部
1楼是对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式