Инструкция по оформлению программ (версия 5.11.2012 19:30)

advertisement
Инструкция по оформлению задач
1. Ввод и вывод
Во всех задачах ввод осуществляется из файла "input.txt", а вывод в файл
"output.txt". Нельзя открывать никаких других файлов и использовать
стандартный ввод/вывод, это может привести к ошибке времени исполнения
или неверному ответу.
Способы подключения файлов:
Pascal:
assign(input, 'input.txt');
assign(output, 'output.txt');
reset(input);
rewrite(output);
<код программы>
close(input);
close(output);
C/C++:
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
Благодаря этим конструкциям, вы можете работать с файлами "input.txt" и
"output.txt" так же, как и с консольным вводом и выводом (без файловых
переменных, подробности см. в примерах).
При использовании ввода-вывода из файлов имена файлов должны быть
написаны строчными буквами и не содержать путей.
input.txt – правильно
output.txt – правильно
INPUT.TXT – неправильно!
c:\work\output.txt – неправильно!
В программе не должно быть подсказок для ввода и отладочной печати.
При вводе данных нельзя выводить подсказки на ввод.
write('Введите значение n:'); { неправильно! }
read(n);
read(n); { правильно }
При выводе результатов пояснительные сообщения также выводить нельзя,
кроме тех, которые явно указаны в формате выходных данных в условии
задачи.
writeln('Результат=',rez); { неправильно! }
writeln(rez); { правильно }
Ввод двух чисел a и b, находящихся в одной строке и разделенных
пробелом.
В языке Pascal:
var a,b:integer;
readln(a,b); { правильно }
read(a); { правильно }
readln(b);
readln(a); { неправильно! }
readln(b);
2. Примеры правильных программ
Задача
Написать программу, которая вычисляет сумму двух целых чисел.
В первой строке ввода содержатся два целых числа, разделенных пробелом.
В первой строке вывода вывести одно целое число – сумму чисел.
Программа на C
#include <stdio.h>
int main()
{ int a,b;
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
scanf("%d%d",&a,&b); /* Никаких подсказок на ввод! */
printf("%d\n",a+b); /* Только число, как указано в условии */
return 0; /* Обязательно вернуть 0! */
}
Программа на C++
#include <iostream> // По стандарту без .h!
#include <cstdio>
using namespace std;
int main()
{ int a,b;
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
cin>>a>>b;
cout<<(a+b)<<"\n";
return 0;
}
Программа на Pascal
var a,b:integer;
begin
assign(input, 'input.txt');
assign(output, 'output.txt');
reset(input);
rewrite(output);
read(a,b); { Никаких подсказок на ввод! }
writeln(a+b); { Только число, как указано в условии }
close(input);
close(output);
end.
Источник: http://ipc.susu.ac.ru/help.html
Download