宜昌一中信息组吧 关注:3贴子:64
  • 0回复贴,共1

关于NOIP比赛中文件操作的说明

只看楼主收藏回复

关于NOIP比赛中文件操作的说明
 
一、    文件名
比赛中,选手的程序从输入文件中读入数据进行处理。处理结束后,按要求把结果保存到输出文件中。题面会明确规定输入文件的文件名、输出文件的文件名。评测时,输入文件放在和选手程序同一目录下,选手的程序也应将输出文件放于程序的同一目录下。
例1:NOI2003-题目game,要求输入文件名为game.in,输出文件名为game.out。正确的文件操作方法应为(Pascal):
program game;
uses SysUtils;
const
  InputFileName = 'game.in';
  OutputFileName = 'game.out';
……
begin
assign(input, InputFileName);
assign(output, OutputFileName);
reset(input); rewrite(output);
……
readln(s);
……
if valid(r) then writeln(r, '#');
   ……
close(input);
close(output);
end.
链接:game详细题面 样例程序:game.pas
例2:NOI2003-题目jerrygen,要求输入文件名为jerrygen.in,输出文件名为jerrygen.out。正确的文件操作方法应为(C++):
#include<stdio.h>
#include<stdlib.h>
#include<fstream.h>
#include<assert.h>
FILE *oup;
ifstream fin("jerrygen.in");
……
int main(){
       Init();      
       Search();
       oup=fopen("jerrygen.out","w");
assert(oup);
       fprintf(oup,"%0.0lf\n",max);
       fclose (oup);
       return 0;
}
 链接:jerrygen详细题面 样例程序:标程jerrygen.cpp
 
二、    文件格式
比赛中,每题输入文件的格式在题面中有详细的描述,选手应正确理解题意,正确读取输入数据。输出文件的格式,题面中也有详细的格式要求。题目中将提供输入文件、输出文件的样例,帮助选手理解文件格式。
选手程序只要输出文件的格式满足题目要求,并且输出的数据正确,就会得分。评测时,不会因为选手的输出文件末尾是否多出换行符、空格、制表符等数据无关、格式无关的字符,给选手的得分带来影响。
 
三、    评测说明
选手不必担心输入文件的文件名、文件所在位置,而在程序中进行不必要的处理。评测时将按照下述流程进行,
假设题目为game,输入文件名:game.in,输出文件名:game.out。程序源代码文件名game.pas,评测目录为:d:\evaluate\game\。测时点有10个,对应10个输入文件game1.in~game10.in。
1.       将选手源程序game.pas拷贝到评测目录中;
2.       在评测目录d:\evaluate\game\下执行编译命令fpc game.pas;
3.       如果编译成功,生成了game.exe,则进入下一步,否则该题是0分;
4.       拷贝测试数据文件gameX.in到评测目录下,并重命名为game.in。其中X是当前的测试点编号,初始为1;
5.       如果存在的输出文件game.out,将其删除;
6.       运行game.exe;
7.       调用评分程序评测该测试点的得分;
8.       如果X大于10,则退出该题评测,并计算该选手在题目game上的得分,否则当前测试点编号X加1,并跳到第四步,继续评测;



IP属地:上海1楼2008-08-12 22:00回复