09 ноября 2010

Timus, интересные задачи

Вчера зарегистрировался тут...

Что это? Интересная система для поддержания себя "в форме". На сайте представлены задачи по программированию... можно прочесть, решить, отправить на проверку код на любом из пяти языков (pascal, Java, C, C++, C#) и практически мгновенно узнать, верно ли решено, или же обнаружена ошибка на каком-то из тестов.
Для чего мне это? В основном, ради забавы! Да и пошевелить мозгами никогда не бывает лишне, верно?! Я всегда любил такого рода задачи, они стимулируют думать более абстрактно, пытаться расковырять задачу со всех сторон. Конечно, много времени тратить не собираюсь, но вчера вечером затянуло - было интересно решить некоторые задачи...
Как этим пользоваться? Если вы программируете на Delphi и решили попробовать тоже отправить код на проверку, знайте - есть одна тонкость. Delphi и pascal - как бы разные вещи... Я вчера потратил несколько минут на всякие тесты, заливал код, смотрел как все работает. В итоге пришел к тому, что стоит делать так:
  • открыть Delphi, выбрать File->New->Other.
  • в диалоговом окне выбрать Console Application
  • написать требуемую программу, которая решает задачу :)
  • скопировать в проверялку исходный текст программы, начиная с var-секции (или с объявления локальной процедуры), без uses, program и т.д.
  • для чтения данных использовать read()/readln(), для записи - write()/writeln(), то есть ждать ввода с клавиатуры.
 у меня Delphi 7 и выглядит окно New Items при создании проекта так:
также, некоторые задачи имеют довольно большие входные данные, которые для проверки и отладки каждый раз забивать вручную довольно длительно. Тогда можно сделать так:
  • объявляем переменную для обращения к файлу так: var f: text;
  • ассоциируем переменную с файлом AssignFile(f, 'input.txt'); 
  • открываем файл на чтение Reset(f)
  • далее, во всех read() не забываем добавить первым параметром наш файл read(f, ...)
  • создаем файл input.txt, в который копируем тестовые входные значения
  • тестируем и отлаживаем!
  • перед отправкой не забываем удалить все, что касается внешнего файла...
Хотя, уверен, раз Вы решились взяться за олимпиадные задачи, выкрутас со временным файлом для тестов, для Вас уж точно не новость, верно? ;)
Откуда я это узнал? Первый раз увидел ссылку на ресурс с задачами в этом журнале, правда Aero решает скорее для спортивного интереса, для самого умения решать, я же - для отдыха!
Небось и рейтинг там есть? Да, соревновальческий фактор присутствует, как обычно. Меня можно найти тут. Присоединяйтесь!

В общем, новым убивателем времени поделился, поэтому удаляюсь до следующего сообщения!

Сообщения, схожие по тематике:

2 коммент.:

  1. Спасибо большое))) Сам зарегистрировался под своим ником.Почитал задачи - очень понравились. На выходных порешаю несколько штук :)

    ОтветитьУдалить