После сдачи задания в тестирующую систему необходимо убедиться в том, что задание получает статус «Принято на проверку». Если задание не проходит тесты, то необходимо просмотреть отчет о проверке. Как правило, в отчете содержится информация о причинах непрохождения программой тестов.
В большинстве случаев ошибки, связанные с тем, что программа не может быть сдана в тестирующую систему, имеют одну из следующих причин:
- Программа не является консольным приложением, либо используются какие-то нестандартные возможности компилятора, привязанные к конкретной операционной системе, например, использование функции ClrScr в Паскале.
- В программах на Паскале используется модуль crt.
- Программа выводит дополнительные сообщения, «улучшающие» интерфейс пользователя, например, «Введите два целых числа».
- Программа выводит дополнительные сообщения, не предусмотренные форматом выходных данных, например, «ответ».
- Программа содержит «задержку» после окончания работы, то есть ждет от пользователя нажатия на какую-либо клавишу, ввода строки или иных действий.
- Входные данные считываются не так как в условии задачи. Наиболее распространенная ошибка — в описании входных данных говорится, что в одной строке находится несколько чисел, а в программе каждое число считывается из отдельной строки.
- Программа должна вывести целое число, но из-за того, что в программе вместо целочисленного типа используется действительный тип данных (например, тип real в языке Паскаль), программа выводит ответ в виде действительного числа, запись которого содержит точку.
Ниже указаны особенности конкретных языков программирования и приведены примеры правильных программ на данных языках программирования.
Особенности использования языка Паскаль
В программах на языке Паскаль запрещается использовать модуль crt (даже подключение этого модуля делает невозможным проверку программы).
Одной из типичных ошибок ввода-вывода при использовании языка Паскаль является неправильное использование функции ReadLn, которая после считывания данных считывает конец строки (и пропускает все данные, находящиеся после считанных данных и до конца строки). Как правило это возникает в случае, когда программа получает на вход два или более чисел, записанных в одной строке через пробел. В этом случае нельзя читать данные при помощи ReadLn(a); ReadLn(b), так как такое использование функций ввода означает, что после первого числа должен быть конец строки, и следующее число записано в новой строке. Правильным чтением данных будет ReadLn(a, b) или Read(a); Read(b).
Особенности компилятора Free Pascal
Необходимо учитывать то, что компилятор Free Pascal по умолчанию работает в 16-битном режиме, в частности, размер переменной integer составляет 2 байта (16 бит) и может принимать значения от -32768 до 32767. Для хранения 32-битных целых чисел во Free Pascal следует использовать тип longint. Длина текстовой строки во Free Pascal ограничена 255 символами.
Данные параметры можно менять внутри программы при помощи директив компилятора, описанных в документации на язык Free Pascal.
В программах на Free Pascal нельзя использовать модуль crt и функции из этого модуля, например, ClrScr.
Особенности компилятора Pascal ABC.NET
В программах на PascalABC.NET нельзя использовать модуль crt и функции из этого модуля, например, ClrScr.
Особенности использования языка Бейсик