АВТ
Язык:

Дистанционный практикум по программированию

Задачи Online статус Турниры
Учебники Справка СДО
 
Здравствуйте, Гость! Войдите с паролем или зарегистрируйтесь.

Часто задаваемые вопросы (FAQ)

Вопрос:

Что представляет собой система, для чего она предназначена?

Ответ:
Смотрите здесь
Вопрос:

Как отправлять задачи в систему?

Ответ:
Ваша програма должна считывать входные данные со стандартного потока ввода и выводить результаты в стандартный поток вывода.
Не исключено, что в условиях некоторых задач, взятых с прошедших олимпиад, говорится о входных и выходных файлах. Тем не менее, ваша программа должна работать только со стандартными потоками!

Пример программы на Pascal для решения задачи №1 "A+B":
var i,j:integer;
begin
   ReadLn(i,j);
   WriteLn(i+j)
end.
Пример аналогичной программы на C++:
#include <iostream>
using namespace std;
int main(){
  int a,b;
  cin >> a >> b;
  cout << a+b;
  return 0;
}

Обратите внимание:
  • ваша программа не должна выводить ничего лишнего, типа подсказок "введите A и B:";
  • не используйте модуль crt в Pascal и conio.h в C++;
  • программа на C++ должна обязательно завершаться "return 0;"

Вопрос:

В процессе отладки входные данные часто удобнее считывать из файла. Как это делать?

Ответ:
На Pascal в начале программы достаточно написать строчку:
assign(input,'input.txt'); reset(input);
В результате при вводе данные будут читаться не с клавиатуры, а с файла 'input.txt'. При отправке решения строчку нужно закомментировать.
Аналогично, на C++ в начале функции main достаточно написать:
freopen("input.txt","r",stdin);
и подключить заголовочный файл stdio.h
Вопрос:

Что означает сообщение "Security Violation (Нарушение безопасности)"?

Ответ:
Проверяющая система отслеживает вызовы из вашей программы функций операционной системы, и в случае вызова запрещенной функции (работа с файлами, сокетами и т.п.) прерывает выполнение программы и выдаёт соответствующее сообщение.
В текущей версии системы иногда возможна выдача такого сообщения, когда программа аварийно завершается (и на самом деле должно быть "Runtime error (Ошибка выполнения)".

Вопрос:

Что означает сообщение "Presentation Error (Ошибка представления)"?

Ответ:
Это означает, что формат вывода вашей программы не соответствует указанному в условию задачи - например, программы выдала строку вместо числа или два числа вместо одного и т.п. Вообще, что считать неправильным ответом, а что - ошибкой представления, вопрос неоднозначный и для каждой задачи определяется автором её проверящей программы. Обратите внимание! Попадаются задачи, где проверяющая программа особо строго контролирует формат вывода и выдаёт ошибку представления даже за лишний пробел в конце вывода или за лишнюю пустую строку, поэтому желательно привыкать сразу писать код, не выводящий ничего лишнего.
Вопрос:

Что делать, если в программе большая глубина рекурсивных вызовов, и программа аварийно завершается из-за переполнения стека?

Ответ:
По умолчанию размер стека программы равен 1 мегабайт. Для его увеличения в Pascal нужно поставить, например, такую строчку:
{$M 16777216}
Тем самым размер стека будет равен 16 мегабайт.
Для Borland C++ размер стека уже настроен в системе и составляет 64 мегабайта.
Для Visual C++ можно вставить в программу директиву #pragma comment(linker, "/STACK:16777216") - в примере размер стека устанавливается равным 16 мегабайт.
Для Java размер стека уже установлен равным 64 мегабайта.
Вопрос:

Как правильно считывать входные данные, если неизвестно заранее их количество?

Ответ:
 PascalC++
Считывание целых чисел:
var
  x: integer;
...
while not seekeof do
begin
  read(x);
  ...
end;
int x;
while (cin>>x) {
  ...
}




Считывание символов
var 
  c: char;
...
while not eof do
begin
   read(с);
  ...
end;
char c;
while (cin.get(c))
{
   ...
}



Считывание строк
var line: string;
...
while not eof do
begin
   readln(line);
   ...
end;
char line[1000];
while (cin.getline(line,1000))
{
 ...
}



Вопрос:

Как на своем компьютере оценить, сколько времени и памяти занимает программа?

Ответ:
Воспользуйтесь соответствующей утилитой local_testing. При компиляции своих решений при этом используйте статическую линковку (например, в среде Borland C++ Builder зайдите в "Project - Options - Linker" и снимите галочку "Use dynamic RTL"). Либо можно воспользоваться программой Тестер. Или ещё один вариант - программа Run.

Вопрос:

Как писать и отправлять задачи на Java?

Ответ:
Смотрите здесь
Вопрос:

Как писать и отправлять задачи на Free Basic?

Ответ:
Смотрите здесь
Вопрос:

Как писать и отправлять задачи на Perl?

Ответ:
Смотрите здесь
Вопрос:

Как писать и отправлять задачи на Lua?

Ответ:
Смотрите здесь
Вопрос:

Как писать и отправлять задачи на Visual Basic.NET?

Ответ:
Смотрите здесь
Вопрос:

Как писать и отправлять задачи на Visual C#?

Ответ:
Смотрите здесь
Вопрос:

Как писать и отправлять задачи на Python?

Ответ:
Смотрите здесь
Вопрос:

Как писать и отправлять задачи на ассемблере?

Ответ:
Смотрите здесь
Вопрос:

Как писать и отправлять задачи на JScript?

Ответ:
Смотрите здесь
Вопрос:

Почему у меня недоступны подсказки к задачам или нет доступа к учебникам?

Ответ:
Доступ к подсказкам (например, просмотр теста, на котором решение получает "Неверный ответ") зависит от тем, к которым принадлежит задача. Например, для задач с турниров и олимпиад подсказки, как правило, выключены.
Доступ к большинству учебников доступен только студентам, имеющим учетную запись в домене кафедры АВТ ВоГУ. Чтобы подтвердить наличие учетной записи в домене, нужно сделать следующее:
1). Войти в проверяющую систему с текущим логином и паролем, щелкнуть по ссылке - своему имени, перейти в "Редактировать профиль" и поменять логин, чтобы он совпадал с именем входа в домен.
2). Заново войти в систему, введя при этом доменный пароль. Если возникает ошибка входа, перезапустить браузер.
Если у вас ещё нет учетной записи в домене, обращайтесь к Андрианову И.А. или Ржеуцкой С.Ю.
Вопрос:

Как отправлять задачи на SQL?

Ответ:
Язык SQL не является универсальным языком, он используется только для решения задач раздела Учебные курсы / Базы данных. При отправке SQL-запросов следует придерживаться следующих правил:
1. Точка с запятой в конце предложения не ставится
2. Всем вычисляемым полям необходимо явно давать имена длиной до 30 символов, например, так:
select min(price) as minpr from km_prices

Вопрос:

Как правильно оформить условие новой задачи?

Ответ:
Условие задачи оформляется по специальному HTML-шаблону.
Нигде в шаблоне не должно присутствовать название задачи!
HTML-шаблон условия задачи выглядит так:
<!-- Общее описание условия задачи -->
<p>Абзац1</p>
<p>Абзац2</p>
<img src="image001.gif"><br><!--ссылки на картинки должны быть относительными!-->
<p>Абзац3</p>

<!-- Необязательные секции -->
<h3 class="cond_sect">$description$</h3>
<p>Описание</p>
<h3 class="cond_sect">$task$</h3>
<p>Задание</p>
<h3 class="cond_sect">$comments$</h3>
<p>Комментарии</p>
<h3 class="cond_sect">$hint$</h3>
<p>Подсказка</p>
<h3 class="cond_sect">$solution$</h3>
<p>Решение</p>

<!-- Обязательные секции -->
<h3 class="cond_sect">$input$</h3>
<p>Описание входных данных1</p>
<p>Описание входных данных2</p>

<h3 class="cond_sect">$output$</h3>
<p>Описание выходных данных1</p>
<p>Описание выходных данных2</p>

<!-- Пример входных и выходных данных -->
<h3 class="cond_sect">$sample$</h3>
<table class="tbdata" width="500">
   <tr><th width="50%">$input$</th><th width="50%">$output$</th></tr>
   <tr><td valign="top"><pre>Пример 1. Вход:
3 3 2
7 7 1
8 1 1
2 0 1 0</pre>
</td><td valign="top"><pre>Пример 1. Выход:
1 2 1 3
2 1 2 1 2 1 2 1 2 1 ...</pre>
</td></tr></table>

У всех таблиц в условии задачи указывается класс tbdata. Рисунки должны быть в формате gif с прозрачным фоном.

Вставки исходного кода (поддерживается: cpp, delphi, sql, javascript, vbscript, asm, java) оформляются следующим образом:
<table><tr><td><div class="code_box"><pre><code class="cpp">
int main(void)
{
   return 0;
}
</code></pre></div></td></tr></table>


Если вы не нашли ответа на свой вопрос, пишите на avt@vstu.edu.ru или igand@mail.ru.
 
время генерации 0.016 сек.
© Copyright ВоГУ, АВТ, Носов Д.А.