Хелпикс

Главная

Контакты

Случайная статья





Особенности языков программирования и файловый ввод-вывод



Особенности языков программирования и файловый ввод-вывод

Поскольку часто именно файловый ввод-вывод является основной проблемой начинающих участников олимпиад, мы подготовили небольшую памятку, демонстрирующую реализацию ввода-вывода на различных языках программирования.

Программа на любом языке программирования должна завершаться с кодом возврата 0. В частности, программа на C всегда должна заканчиваться оператором return 0; Имена входных и выходных файлов должны быть написаны маленькими латинскими буквами. Не забывайте закрывать выходной файл (иначе во многих языках он остается пустым).

Ввод-вывод будем демонстрировать на примере следующей задачи: в файле sum.in записаны два целых числа по модулю не превышающих 32000, в файл sum.out нужно вывести их сумму.

Примечание для программирующих на QBasic, Borland Pascal, Borland C: Жюри не гарантирует, что любую задачу олимпиады можно решить с использованием этих языков программирования.

Pascal, Delphi

Примечание для программирующих на Delphi: Имена стандартных модулей пишутся точно так же, как в документации (имеется в виду сочетание больших и маленьких букв) и только так. Например: Math, SysUtils.

var a,b:longint;

begin

assign(input,'sum.in');

reset(input);

assign(output,'sum.out');

rewrite(output);

read(a,b);

writeln(a+b);

close(input);

close(output);

end.

Java

Программа должна находиться в единственном классе с именем Main (обязательно с большой буквы), метод main должен находиться внутри класса Main. Вложенные классы допускаются.

import java.io.*;public class Main { public static void main(String[] args) throws Exception {   StreamTokenizer in = new StreamTokenizer(     new BufferedInputStream(         new FileInputStream(new File("sum.in"))));   PrintStream out = new PrintStream(new File("sum.out"));             int a, b;   in.nextToken(); a = (int) in.nval;   in.nextToken(); b = (int) in.nval;   out.println(a + b); }}

C

#include <stdio.h>

 

int main(void){

long a, b;

FILE *fin, *fout;

fin = fopen("sum.in", "r");

fout = fopen("sum.out", "w");

fscanf(fin, "%ld%ld", &a, &b);

fprintf(fout, "%ld", a + b);

fclose(fin);

fclose(fout);

return 0;}

Примечание для программирующих на GNU C/C++: При выводе значений переменных типа long long под ОС Windows нужно использовать спецификатор %I64d, а при сдаче решений на проверку (для ОС Linux) - спецификатор %lld. "Универсальный" код, который работает правильно под обеими системами, может выглядеть так:

#ifdef WIN32

   printf("%I64d\n",ans);

#else

   printf("%lld\n",ans);

#endif

C++

#include <fstream>

 

using namespace std;

 

int main (){

long a, b;

ifstream fin ("sum.in");

ofstream fout ("sum.out");

fin >> a >> b;

fout << a + b << endl;

fin.close ();

fout.close ();

return 0;}

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.