Блог пользователя Edvard

Автор Edvard, 14 лет назад, По-русски
Все раунды в Топкодере для меня делятся на две категории: код работает сразу и не работает вообще. Если код вдруг сразу не работает, то начинается просто вынос мозга. Поделитесь как удобнее всего писать в ТС, какие плагины (Kawigi не очень) и самое главное как дебужить код в Топкодере (говорят даже можно как-то объединить арену и Visual Studio). Заранее всем благодарен особенно если напишите как всё хорошо настроить.
  • Проголосовать: нравится
  • +4
  • Проголосовать: не нравится

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А чем тебя не устраивает дебажный вывод ?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Это ужасно долго, неинформативно и неудобно. К тому же приходится менять код, потом это всё удалять, а лучше комментить вдруг чё-нить ещё не будет работать, короче это долгий и мучительный гемор.
    • 14 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится
      Незнаю... лично я и на acm и на topcoder контестах завожу шаблоны вида
      dbg(x) cerr << #x << " = " << x << endl
      аналогично для контейнеров и для массивов и получается более менее информативно а чтобы не коментить можно делать что то вроде
      #define DBG 1
      #define dbg(x) {if(DBG)...}
      но это конечно дело вкусса... вобще есть
      http://forums.topcoder.com/?module=Thread&threadID=597911&start=0
      вполне хороший плагин кажеться =) к нему есть подробная инструкция ещё я видел что кто-то сделал для него модификацию по вырезанию не используемого кода... но сейчас с ходу не найду
    • 14 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      Зато собственно поиск баги проходит быстрее, чем пошаговое исполнение
    • 14 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится
      Не знаю как на ACM, но нам рассказывали что на IOI, где стоит Linux,  периодически пошагового дебагера не было как такового. Как следствие на школьных сборах он тоже не всегда есть. Кроме того дебаг выводом позволяет посмотреть на весь ход программы сразу, а не держать его в голове.

      Как человек, который уже год почти не использует пошаговый дебаг могу сказать что к дебаг-выводу быстро привыкаешь и это становится удобно.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Согласен с тобой.Участвовал в украинских отборах на иои ,и там как и на самой иои дебагер отсутствовал (по крайней мере на паскале:)).Но скажу честно,что от этого скил только увеличивается-учишься "осторожно" писать код с самого начала,начинаешь въезжать в свой код на все 100%.На мой взгляд,это особенно полезно для участия в АСМ олимпиадах,где очень важно накодить быстро и без багов.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Ну я долго упирался против плагинов и использовал дебаг-вывод, но в итоге сдался, потому что это жесть - уйму времени надо потратить, в то время как в отладчике можно устроить тот же дебаг-вывод, только интерактивный, - не вводя никаких имён переменных, и не придумывая, как же так удобочитаемо вывести :)

      Поставил Kawigi Plugin - во-первых, с ним быстрей проверка семплов, во-вторых - он сохраняет на диск исходник программы вместе с генерилкой семплов, что позволяет мгновенно переключаться на отладку в студии. С этим плагином есть небольшие тонкости в настройке, если компилить будешь вижаковским компилятором, а если есть mingw - думаю, всё сразу должно заработать

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А чем тебя не устраивает Паскаль?

    Вполне себе язык - все просто и понятно. Неудобно длинные связки begin-end, if-then писать, векторов нет, стандартной сортировки (короче говоря, вообще стандартных библиотек, кроме модуля math, нет), ну а так все отлично. Я думаю, что при дебаге тоже самое: отладочный вывод - страшная вещь в том смысле, что времени жрет немерено.

    Короче, я понимаю, что не мне с зеленым рейтингом критиковать любителей отладочного вывода, но мне непонятны его преимущества, а недостатки очевидны.

    Кстати, этот холивар "вывод-дебаггер" можно, по-моему, сравнить с "FAR - среда". Кто-нибудь, объясните мне преимущества FARa. Только не надо, пожалуйста, про подсветку синтаксиса - в среде она тоже есть:)

    • 14 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
      Поверь, не зря народ переходит на С++ и JAVA;  по-моему все(или почти все) с паскаля начали и послали его в глубокую *опень после того как пописали годик на С++ и явке. Перейдешь-поймешь. Масса вещей, помимо тех которые ты назвал-вектора, мапа, сета и т.д. и т.п.не говоря про дефайны-в паскале начисто отсутствует. Не говоря про длинную арифметику явы. Паскаль-овно с точки зрения олимпиадного программирования(правда на дельфях можно написать нормальный ООП-код). На нем можно учится, но не писать.
      Что касается плюсов фара с точки зрения писать в нем-это прежде всего быстрота написания. Но касается это лишь программистов высокого уровня. По сравнению с явкой и вижаком фар очень быстро грузится; удобное переключения с input на код, возможность создавать файлы очень быстро не выходя из фара; писать в фаре можно на нескольких языках; наконец возможность копипастить шаблон. Но правда эти плюсы-как я уже сказал-существенны только для серьезных программистов. Лично я не могу без дебага и пишу поэтому в вижаке и еклипсе. Но для серьезных команд есть еще одно преимущество. Они используют дебаговый вывод о чем много было сказано и если у сокомандника задача упала-он садится в сторонку с кучей листов бумаги-со своим кодом и с тем что дебаговый вывод навыводил. А в это время два других члена команды пишут какое-нибудь другое палево:). Лично я пользуюсь фаром только для того чтобы копипастить шаблон и никто не заставит меня ближайший год переходить на фар. Раздражает отсутствие табуляции и дебаг
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Это был сарказм:) -жаль, что ты его не уловил. Уж год, как пишу попеременно на С++ и Java
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Что ты имеешь ввиду под отсутствием табуляций? Мне кажется фар удобнее тем, что он почти не требует ресурсов, хотя если открывать большой текстовый файл для редактирование, то он падает(может кто-то знает как справлятся с этой проблемой?) ну и просто в нём (по моему скромному мнению) быстрее работать с файлами, снова же чтобы переключится на другой проект не надо совершать лишние телодвижения мышкой и к тому же не возникает сильных проблем если мне нужно выводить дебаг просто в стандартный поток ошибок, либо в файл... конечно нужна привычка, но она как показывает опыт вырабатывается очень быстро...
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          В фаре падает (старый) колорер, если первая строка открываемого файла достаточно длинная (десятки килобайт), чтобы он не смог её расцветить. Обычно так бывает не более чем в файлах ответа. Можно временно отключить колорер при работе с такими файлами (Options -> Plugins Configuration) или открывать их по F3. Но это, конечно, неудобно.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        ага...стандартные библиотеки...А если бы была возможность кидать условия задачи в компилятор,и он сам бы печатал  правильный код,то вы бы её тоже юзали?Когда пишешь на паскале всё РУКАМИ,то ты развиваешься,ты знаешь все тонкости тех же структур данных,которые у вас там сходу реализованы.Мне кажется,что пример моих доводов расположился на вершине нашего с вами рейтинга.
        Конечно же,этот пример - один из немногих, но разве удовольствие от сабмита где ты написал мэп и всё остальное (в чём я не разбираюсь) сопоставимо с удовольствием от удачного сабмита своего "родного" кода?Да, вы напишите быстрее, и получите больше рейтинга...Но у кого будет больше мастерства? и не ради этого же мастерства мы все здесь собрались?
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

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

          Я с ним в этом полностью согласен. Если уверен в эффективности библиотек - зачем тратить и время и набирать код, который скорее всего сходу не заработает?

          Вот делать Вам больше нечего, чем изобретать велосипеды там, где нужна скорость реализации, а не раскидывание понтов в стиле : "Смотри, какое крутое дерево я написал."

          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Вы читали мой пост?оО
            Где МАСТЕРСТВО в ваших библиотеках?Ради чего Вы сидите здесь?Слава?Деньги?-нет конечно!Мы все здесь тренируемся!Чтобы повысить свои умения.
            Конечно же,если это финал ICPC или что-то в этом роде,то важен результат,ведь победителей не судят.Но если это еженедельный КФ?Это самообман просто.
            "Зачем ходить в тренажёрный зал,ведь там нужно напрягаться!!!"- вот на что это похоже.
        • 14 лет назад, # ^ |
            Проголосовать: нравится +8 Проголосовать: не нравится
          Как известно, лень - двигатель прогресса. В самом деле, большинство величайших изобретений начиная от колеса и заканчивая пультом от телевизора возникли потому, что человеку лень делать одни и те же рутинные вещи много раз.

          Если перейти ближе к нашей тематике, то есть задачи, а есть упражнения. Чтобы решить задачу, надо думать, чтобы решить упражнение его надо сделать. Так вот лично я не люблю делать упражнения вроде написания списка или быстрой сортировки, поэтому от паскаля я давно отказался. Мне интересно придумать алгоритм, а уж как его реализовать это дело десятое, чем проще и быстрее, тем лучше. И даже не потому, что багов совершаешь меньше , а потому что писать код не интересно, и надо побыстрей это противное занятие закончить и перейти к приятному - обдумыванию решения следующей задачи :)
          • 14 лет назад, # ^ |
              Проголосовать: нравится -10 Проголосовать: не нравится
            "А если бы была возможность кидать условия задачи в компилятор,и он сам бы печатал  правильный код,то вы бы её тоже юзали?"
            Список или сортировка- детский лепет,в написании которого я не вижу ничего страшного.2 минуты покодить,мозги размять,потренировать память.Это плохо?!На ВАЖНОЙ олимпиаде-да,но не на тренировке ,о которой мы сейчас говорим.Написание этих и других,более сложный вещей улучшает скорость набора кода,улучшает память,заставляет писать быстро,но при этом концентрироваться на тонкостях задачи,увеличивает СКИЛ. Это тренирует мозг,делая такие опасные для вас структуры данных и т.д. и т.п. детским лепетом,который быстро,без паники кодится от руки.
            Если не делать этого,потому что тренер сказал,что ты набажешь,то мб ты ещё не на том уровне,чтобы копи-пастить некоторые вещи,мб твои познания в этой сфере не идеальны?Кто проиграет от того,что ты юзнёшь библиотеку?

            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Возможно, я чего-то не понимаю, но по-моему концентрация на деталях конкретного алгоритма как раз не позволяет сконцентрироваться на тонкостях задачи, а наоборот, заставляет думать не о решении в общем а о конкретном алгоритме.
              P.S. Сортировка - детский лепет. Ты видел хоть кого-то, кто бы кодил сортировку на си руками? Даже не стандратную. Даже для разминки пальцев?
              • 14 лет назад, # ^ |
                  Проголосовать: нравится +1 Проголосовать: не нравится
                Ну я кодил. Когда нужно отсортировать, переставляя элементы сразу нескольких небольших массивов, мне быстрее написать пузырёк, чем заводить массив структур вместо нескольких массивов.
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Ладно, возможно я немного неверно высказался)
                  "Сортировку на си руками, когда юзать встроенный сорт ( читай - аналог копипастить ) было бы проще?"
                  Понятно, что если надо написать сортировку подсчётом, то ее, вероятнее всего, тоже на си будут писать руками.
              • 14 лет назад, # ^ |
                  Проголосовать: нравится -8 Проголосовать: не нравится
                Вот именно,что когда ты пишешь её руками,то со временем это для тебя становиться легко,и пишется машинально. А когда ты её вечно скатывал,и вдруг пришлось писать руками, например из за особенностей задачи,где нужны дополнительные параметры или ещё что-то в этом роде,то как раз там шансов набажить больше ,чем если бы ты её писал каждый раз руками.Это во-первых...
                Во-вторых,я вас не призываю писать всё руками,я лишь сказал,что на тренировках писать руками ПОЛЕЗНЕЕ ,чем тупо копи-пастить. Можете не слушать,можете минусовать,можете хоть с окна прыгать,мне плевать.Я вас не призывал,я высказался...
                • 14 лет назад, # ^ |
                  Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится
                  Не надо так нервничать, ладно?:) Мы все тут тоже просто высказываемся, и даже если это выглядит как критика, то в первую очередь цель - подискутировать, а не придавить/заминусовать/опустить/выкинуть из окна оппонента:)
        • 14 лет назад, # ^ |
            Проголосовать: нравится -10 Проголосовать: не нравится
          Алгоритм извлечения квадратного корня тоже руками пишешь?
          А ввод/вывод, наверное, через ассемблерные вставки.
          • 14 лет назад, # ^ |
              Проголосовать: нравится -19 Проголосовать: не нравится
            Мда...сколько бреда несут люди,чтобы оправдать свою лень.
            • 14 лет назад, # ^ |
              Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
              имхо, это спор, который никто не выиграет - всё равно каждый останется при своём мнении

              сеты, мапы, встроенные сортировки и другой библиотечный код - это просто рабочие инструменты в руках специалиста, а специалист - это человек, который умеет использовать эти инструменты

              для изучения особенностей структур данных на том же тимусе есть куча задач, тренирующих именно этот скилл; возьмём, хотя бы, задачу про дерево
              • 14 лет назад, # ^ |
                  Проголосовать: нравится +13 Проголосовать: не нравится

                Пара мыслей по всему прочитанному.

                Имхо, для человека, начинающего заниматься олимпиадным программированием, имеет смысл писать руками почти все алгоритмы. И сортировку в том числе. Почему? Чтобы понять принцип работы. Пример с сортировкой очень уместен. Квику полезно знать, чтобы в дальнейшем искать к-ую статистику за линию. Heapsort стоит писать, чтобы понять суть работы с кучей. Merge sort - принцип разделяй и властвуй. Потому что как ни крути, большинство задач - это варации на различные темы. Знаешь устройство структуры данных - научишься ее применять. Я долгое время писал heapsort руками. Это 3 минуты времени.

                В дальнейшем разумеется необходимо использовать возможности языка. Потому как те же упомянутые 3 минуты - это драгоценнейшее время.  Задачу сдать можно.

                Правда в моей практике не редко бывало, что переписывание стандартных вещей типа hash_set, sort или vector <vector <int> > ручной реализацией давало АС, вместо TL.

                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится

                  Абсолютно согласен.

                  Про vector <vector <int> > улыбнуло. :) На прошлом полуфинале например не прошло решение с vector < string >, но прошло с char mass[100][100].


                  А что, даже sort переписывали вручную или это просто как пример?

                  • 14 лет назад, # ^ |
                      Проголосовать: нравится 0 Проголосовать: не нравится
                    Конкретно с sort вспоминается почему то не очень удачный пример, но по-моему все же показательный ) Задача с Петрозаводских сборов. Не помню про что задача, но помню что идейное решение - посортировать 10^7 long long-ов в секунду. Заходила грамотно написанная поразрядная сортировка. Но так как в минуту контеста никто про это не подумал, то мы шаманили с вариациями сортировок. Так вот sort получал TL 2 (там сразу большой тест), а ручной heapsort доходил примерно до 20. Но задачу мы не сдали, т.к. у жюри были хорошие тесты  :)
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  именно этим хорош паскаль для новичка: в нём ничего нет и нужно всё делать самому :)

                  с другой стороны новичку припечёт сдать задачу - разберётся и с k-ой статистикой, и с кучей; спросит, почитает - узнает
              • 14 лет назад, # ^ |
                  Проголосовать: нравится -13 Проголосовать: не нравится
                а здесь что не нужно тренироваться?оО
                На КФ деньги платят?давно?Здесь так важен результат?
                Ну да ладно... Спорить с людьми,самолюбие которых было задето- пустая трата времени.
                Но ничего,время покажет.
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  тренироваться можно где угодно, хоть тут, хоть на TC, хоть на тимусе; главное - чтобы толк был

                  результат очень важен:
                  1. учишься оценивать свои силы и возможности
                  2. оцениваешь, правильно ли тренируешься (есть рост или нету)
                  3. общеизвестный факт, что рост умений состоит из фаз подъёма и фаз упадка; по результату можно определить фазу и подвести фазу подъёма к какому-нибудь важному соревнованию
                  4. комбинация успехов и неудач мотивирует на дальнейшее развитие
                  5. разрабатываешь "программу минимум" и "программу максимум" на контест не с потолка, а зная свой реальный уровень
                  6. становишься психологически более устойчивым

                  а вот опускаться до оскорблений (люди с задетым самолюбием) и затаивать скрытые обиды (время покажет) не стоит: как уже говорил maksay, цель спора - подискутировать, высказать "за" и "против", чтобы помочь определиться тем людям, которые колеблются в выборе
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Я тоже хочу принять участие в дискуссии, раз затеял эту ветку.

                  Раз ты желтый и был на сборах к IOI, значит, твоя методика имеет смысл и тебе удалось прокачать "скилл". Но когда уже написал стандартные вещи (типа сортировки) много раз, может стоит перейти на стандартные библиотеки? Ведь полезное повторение уже переходит в трату времени. Или ты не согласен?

                  Насчет codeforces. Все-таки большинство кодеров воспринимают cf как соревнование, а не тренировку. Для тренировок есть practice rooms и дорешка, а во время контеста нужно показать, насколько быстро и без ошибок ты умеешь кодить.

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

                  Вообще, из предыдущих высказываний мне больше всего нравятся "сеты, мапы, встроенные сортировки и другой библиотечный код - это просто рабочие инструменты в руках специалиста, а специалист - это человек, который умеет использовать эти инструменты" - и уж этому человеку можно верить, если он прошел в этом году на финал ACM ICPC.

                  Кроме того, согласен с этим мнением: "Мне интересно придумать алгоритм, а уж как его реализовать это дело десятое" Честно говоря, между реализацией и задачей на подумать я чаще выбираю реализацию, потому что думать сложнее, а потому лень, но собираюсь в будущем избавиться от этой привычки, потому что считаю, что умение придумывать алгоритмы приоритетно.
                  • 14 лет назад, # ^ |
                      Проголосовать: нравится -6 Проголосовать: не нравится
                    Дело не в рейте,и не в том где я был,и где нет. Я бы говорил то же самое ,будь я серым. Если кому-то показалось ,что я его оскорбил ,то извините.
                    Всё ,у меня вклада не хватит, чтобы со всеми вами тут спорить.И к тому же, это никчему не приведёт.
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          > А если бы была возможность кидать условия задачи в компилятор,и он сам бы печатал  правильный код,то вы бы её тоже юзали

          Разумеется. Огонь же ты палочками не разжигаешь. А еще с выходом этой программы бы вымерли сразу соревнования по программированию, а спустя время и программисты как класс.

           

          Я очень сильно сомневаюсь в том, что какие-то абстрактные скилы действительно растут от того, что ты кодячишь одни и теже алгоритмы кажрый раз заново. Я уверен на 100%, что все вышеперечисленные алгоритмы после 10-ого раза ты пишешь уже не думая, потому что ты их пишешь каждый раз заново. Так что единственный скил, который ты гипотетически можешь повышать - это скорость набора. Может если ты после IOI хочешь работать секретарем, то она тебе поможет. На соревнованиях она показала себя как не решающий фактор :о)

          Я тебе открою еще ужасный секрет - у очень многих из тех кто пишет топкодер и кодефорс и другие онлайн соревнования - О УЖАС - есть текстовые файлики с самыми популярными алгоритмами, которые не входят в стандартные библиотеке - КМП, потоки, еще всякая шняга с графами, НОД, 2-сат, которые они копипастят в решения. Потому что это нормально хотеть решать задачи, а не кодячить один и тот же код сотый раз.

          Ну и еще конечно манера спорить ваша заслуживает отдельного упоминания :о)

           

        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ага! Давайте каждый день изобретать велосипеды! Это же так весело!

      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Чума... Такой чума... Даже про табуляции в фаре не знает...
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Фар быстрее запустить, в фаре быстрее переключаться между файлами. Когда любое действие выполняется за нулевое время (в отличие от любой среды), пользоваться продуктом гораздо приятнее.

      Помимо скорости, и более удобного управления файлами с задачами, думаю сложно найти плюсы. Надо просто попользоваться и почуствовать разницу. Я пишу почти все в FAR и объективного объяснения я этому не вижу :о)

       

      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Как соотнести то, что написано тут http://mirror.codeforces.com/comments/754?locale=ru#comment-12039 "А желание людей всегда юзать дебаговый вывод и писать в каком-нибудь виме вместо студии - это не правильно. Я сам некоторое время готовился к полуфиналу тренируясь в фаре, и фар на полуфинале не заменяет студию ни в каком месте.", с фразой "Я пишу почти все в FAR" :o) ?
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Очень просто. Разнится в "всегда" и "почти все".
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Потому что на полуфинале мне не важно, как быстро работает интерфейс, мне важно как быстро я могу получить результат. И, так как отлаживать дебажным выводом менее эффективно чем пошаговым, я не вижу никакого смысла писать полуфинал не в студии.

          А теперь, когда мой последний полуфинал далеко позади, и писать можно не спеша, тип отладки не решает. Поэтому можно писать в том, в чем приятнее. А в FARе приятнее писать :о)

           

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Лично я пишу так:

Из плагинов юзаю только Кавиги.

250 - пишу сразу в арене. Если не получается - значит, весь раунд насмарку.. ибо, что это за фигня - закопаться с 250 :(

остальное все по ситуации. часто копирую сразу класс в Студию (у меня там для этого всего есть шаблон) и пишу в ней. Времени экономится море, а тратится - только на пару копирований и запусков тестов. Иногда, когда задача не заключается в стопицот строках кода, пишу прямо в Кавиги.

На самом деле, Кавиги - весьма удобная штука. Главное, правильно ее использовать.

P.S. пробовал ставить другие плагины, автоматически инклюдящие код в Студию.. оказалось, что это очень неудобно, потому что генерится куча лишнего кода, который очень сильно отвлекает. Никакого смысла, на мой взгляд, это не несет.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Попробуй открывать в студии сразу файл, который создает kawigi. Тогда после каждого сохранения, обновленный код будет появляться в kawigi
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      этот код сохранятся фиг знает куда, причем, он лежит среди сотен таких же кодов. Кавиги сохраняет все в одну папку.

      а экономия - два копирования. ты долго нажимаешь crtl-c / alt-tab / ctrl-v ?
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Зато там же лежит код проверки решения
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          согласен, это плюс. но среди сотен других кодов это сделать не так просто.
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Можно перед контестом их выносить в другую папку например
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              ну вот поэтому, вернемся к вопросу....
              ты долго нажимаешь crtl-c / alt-tab / ctrl-v ?

              =)
              • 14 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Он не захватит с собой проверяющий код. Вот и вернулись :)
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  просто я так привык.
                  как говорится, привычка - вторая натура
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится

                  Хорошо. 2 раза ctrl-c + alt-tab + ctrl-v.

                  Лично я так делаю. Кстати, а куда имено кавиги сохраняет код?

                  • 14 лет назад, # ^ |
                      Проголосовать: нравится 0 Проголосовать: не нравится
                    В настройках указано. У меня было в домашнюю директорию, в testproblems вроде
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Насчет того, что времени тратится мало.
    Ctrl+C - Ctrl+V нажать действительно пару раз ничего не стоит, но вот прогнать все тесты.
    Если ошибка на одном - надо исправлять и прогонять заново все сначала. И так несколько раз в какой-нить задаче на реализацию.

    Что касается лишнего кода, который генерит КодПроцессор. ИМХО, просто смешно, что он может отвлекать. Я какое-то время не юзал плагинов (был серым), перешел на Кавиги (стал зеленым), надоел Кавиги - поставил комплект moj (стал синим). А все почему? Потому что время экономится и очень прилично.

    Выше уже давали ссылку http://forums.topcoder.com/?module=Thread&threadID=597911&start=0 - lovro все там классно объясняет, че как делать и ставить.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится
      Извини, но мне кажется что плагины не влияют на рейтинг
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Скажу так. Когда я впервые начал юзать плагины года 2 назад (TZTester+FileEdit+CodeProcessor), то внезапно выиграл д2, и с тех пор, кажется, туда не возвращался. Так что в тот момент это и сильно повлияло на рейтинг.А главная ценность плагинов - наличие дебага ( холивар о нужности которого я устраивать не хочу) и экономия 10-20 секунд при тестинге на всех тестах локально а не в арене. Суммарно эти полторы минуты за контест могут позволить сдать задачу, которую иначе бы сдать не успел, так что ИМХО - смысл есть, и таки могут повлиять достаточно сильно.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Мне кажется, что плагины не очень влияют на рейтинг. Скорее влияет появление опыта + тренировки, т.к. ты начинаешь решать быстрее и больше. В частности на придумать задачу уходит значительно больше времени чем выйгрывается на плагинах.
14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
> говорят даже можно как-то объединить арену и Visual Studio

http://www.topcoder.com/contest/classes/ExampleBuilder/ExampleBuilder.html
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    P.S. пробовал ставить другие плагины, автоматически инклюдящие код в Студию.. оказалось, что это очень неудобно, потому что генерится куча лишнего кода, который очень сильно отвлекает. Никакого смысла, на мой взгляд, это не несет.

    пробовал я это... пробовал =)
    • 14 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
      Ну можно оставить только FileEdit тогда, он же ничего не генерит.

      Кстати, сгенеренный код можно изменить в настройках и оставить только шаблон главного метода, если тесты действительно не нужны.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

FileEdit + CodeProcessor + любой плагин для автовгона тестов (я юзаю TZTester) это must have в арене, так же как и Кавиги. Причин НЕ поставить плагины я просто не могу придумать.

То, что дебаговый вывод всегда лучше пошаговой отладки - это булшит. Утверждение многих людей, что они быстрее напишут дебаговый вывод, чем я отлажу пошагово - это тем более булшит.

Это два совершенно разных способа отлаживать. Дебаговая отладка просто дампит кучу данных. Пошаговая отладка позволяет вам пройти каждый шаг с вашей программой.

Есть тонна сценариев, где не работает одна, и где не работает другая. Если мне надо быстро проверить есть ли ошибка в строке, я нажму Ctrl+F10, F10 и наведу мышку на переменную, и никто никогда меня не убедит, что написать дебаговый вывод в этом сценарии быстрее и проще. Аналогично, чаще проще сделать conditional breakpoint и пройти потом пару шагов с кодякой, чтобы быстро понять правильно ли работает сценарий.

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

Для полуфинала скил должен быть очень высокий в обеих отладках. Мы на полуфинале писали в студии, и я всегда очень круто умел отлаживать встроенным отладчиком.

На финале в C++ будет эклипс, а значит если используется С++, то про отладку обычную можно забыть, поэтому в том чудесном слуаче, если вы прошли на финал, надо после полуфинала только уже начинать надрючиваться на дебаговый вывод.

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

 

Не рассмотренный мной вариант "не отлаживать вообше, а писать правильно" работает только для избранных ,в число которых мне не повезло попасть :о)

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Я кстати извиняюсь, что я тему про топкодер перевел на полуфиналы и финалы :о Это из-за надвигающегося сезона.

    В любом случае все вышесказанное на топкодер отлично распространяется - особенно в 250 часто бывает одну строку отдалить очень нужно .и там дебаговый вывод будет просто потерей времени.

     

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
KawigiEdit - всего один плагин. Использую чтобы сохранить шаблон для задачи в eclipse-овский проект.
14 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Я использую плагин для  Eclipse - EclipseCoder (Java)

Тут тебе и привычная среда Eclipse с отладчиком и т.п. + удобное чтение условия (мне не очень нравится читать тексты в самой Арене) + автоматическое создание JUnit для тестирования. В общем полная интеграция информации из Арены в Eclipse.

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Я тоже пользуюсь этим плагином. По-моему - лучший вариант для java. Из дополнительных плюсов:
    1) убирает лишние @Override-ы (на ТС java 1.5) - в ReTester у меня с этим были проблемы;
    2) в случае exception'а - не вываливает все в консоль, а грамотно в JUnit'e показывает, где на какой строке произошла ошибка
    3) все тесты записаны в отдельном файле (class_nameTest.java) - то есть в файле программы нет ничего лишнего;
    4) при наведении на название метода в тесте (в файле class_nameTest.java) проверяет на правильность именно этот тест;
    5) легче всего устанавливается;
    Из минусов:
    1) плохо работает с Eclipse Helios - для тестирование приходилось заходить в файл class_nameTest.java и запускать проект оттуда. Но с Galileo и Ganymede проблем не было;
    2) JUnit есть только для java - в случае с с++ просто в консоли пишется passed/failed
    В общем, кому интересно - вот инструкция по установке http://fornwall.net/eclipsecoder
14 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
http://www.topcoder.com/wiki/display/tc/How+to+install+The+Arena+plug-ins - plugin sozdaet file s samplami. mozhno debugit s visual c++