Работа с тестирующей системой, расшифровка сообщений. "Задача A+B" на разных языках

Тестирующая система TestSys расположена по адресу: ts.lokos.net.

Для входа в систему следует использовать логин (обычно - 2 цифры) и пароль выданные преподавателем.

Задача "A+B" на разных языках программирования

Нужно ввести из входного файла два целых числа и вывести их сумму в выходной файл.

Pascal

const FN = 'aplusb'; { Название входного и выходного файла }
var a,b : longint; { Входные данные }
begin
  assign(Input,FN+'.in'); reset(input);
  assign(Output,FN+'.out'); rewrite(output);
  read(a,b); { Читаем исходные данные из входного файла }
  writeln(a+b); { Записываем результат в выходной файл }
end.

Delphi

{$APPTYPE CONSOLE}
const FN = 'aplusb'; { Название входного и выходного файла }
var a,b : Int64; { Входные данные }
begin
  reset(Input,FN+'.in');
  rewrite(Output,FN+'.out');
  read(a,b); { Читаем исходные данные из входного файла }
  writeln(a+b); { Записываем результат в выходной файл }
end.

C/C++

#include <stdio.h>
#define s "aplusb"

int main() {
  freopen(s".in","r",stdin); // Стандартный поток ввода из входного файла
  freopen(s".out","w",stdout); // Стандартный поток вывода в выходной файл
  long long a,b;
  scanf("%lld%lld",&a,&b);
  printf("%lld",a+b);
  return 0;
}

Сообщения тестирующей системы

Компиляторы

Примеры ошибок в решениях:

Presentation Error (PE)

Неправильное имя выходного файла:

{$APPTYPE CONSOLE}
var A,B : Int64;
begin
  Assign(Input,'aplusb.in'); Reset(Input);
  Assign(Output,'YA_NE_POMNU.out'); Rewrite(Output);
  Read(A,B);
  Write(A+B);  
end.

Программа выводит на экран вместо файла:

{$APPTYPE CONSOLE}
var A,B : Int64;
begin
  Assign(Input,'aplusb.in'); Reset(Input);
  { Assign(Output,'aplusb.out'); Rewrite(Output); }
  Read(A,B);
  Write(A+B);  
end.

Wrong Answer (WA)

Неверное решение:

{$APPTYPE CONSOLE}
var A,B : Int64;
begin
  Assign(Input,'aplusb.in'); Reset(Input);
  Assign(Output,'aplusb.out'); Rewrite(Output);
  Read(A,B);
  Write(A-B);  
end.

Точности/разрядности типов данных не хватает:

{$APPTYPE CONSOLE}
var A,B : Extended;
begin
  Assign(Input,'aplusb.in'); Reset(Input);
  Assign(Output,'aplusb.out'); Rewrite(Output);
  Read(A,B);
  Write((A+B):0:0);  
end.

Compile Error (CE)

{$APPTYPE CONSOLE}
var A,B : Int64;
begin
  ЯВНО НЕВЕРНАЯ СТРОКА!!!
  Assign(Input,'aplusb.in'); Reset(Input);
  Assign(Output,'aplusb.out'); Rewrite(Output);
  Read(A,B);
  Write(A+B);  
end.

Комментарий тестирующей системы:

Borland Delphi Version 15.0 
Copyright (c) 1983,2002 Borland Software Corporation 
a.dpr(4) Error: Illegal character in input file: 'Я' ($DF) 
a.dpr(4) Error: Illegal character in input file: 'А' ($C0) 
a.dpr(4) Error: Illegal character in input file: '!' ($21) 
a.dpr(9) 

Runtime Error (RE)

Программа завершилась с ненулевым кодом возврата, либо создала исключительную ситуацию (exception) и не обработала ее.

{$APPTYPE CONSOLE}
var A,B : Integer; { Integer переполняется на больших числах }
begin
  Assign(Input,'aplusb.in'); Reset(Input);
  Assign(Output,'aplusb.out'); Rewrite(Output);
  Read(A,B);
  Write(A+B);  
end.
{$APPTYPE CONSOLE}
var A,B : Int64; 
begin
  Assign(Input,'aplusb.in'); Reset(Input);
  Assign(Output,'aplusb.out'); Rewrite(Output);
  Read(A,B);
  Write(A div B); { Когда B равно 0, тут будет деление на ноль! }
end.

Для поиска RE в программе на Delphi используйте директивы:

{$O Off} { Выключаем оптимизацию }
{$R+} { Включаем проверку границ массивов }
{$Q+} { Включаем проверку переполнений }

Time Limit (TL)

Программа не завершилась за отведенный период времени.

Возможные причины:
{$APPTYPE CONSOLE}
var 
  A,B : Int64;
  I,K : Integer;  
begin  
  Assign(Input,'aplusb.in'); Reset(Input);
  Assign(Output,'aplusb.out'); Rewrite(Output);
  Read(A,B);
  { Цикл выполняется слишком долго!!! }
  for I:=Low(Integer) to High(Integer) do 
    K := I;           
  Write(A+B);  
end.

Memory Limit (ML)

Программа попыталась использовать больше памяти, чем разрешается.

{$APPTYPE CONSOLE}
var 
  A,B : Int64;
  T : array [1..100000000] of Integer; { Слишком большой массив!!! }
  I : Integer;
begin
  Assign(Input,'aplusb.in'); Reset(Input);
  Assign(Output,'aplusb.out'); Rewrite(Output);
  for I:=Low(T) to High(T) do T[I]:=2135;
  Read(A,B);
  Write(A+B);  
end.

Delphi XE2