На форумі обговорюються лише питання, пов'язані з олімпіадою
Ви не зайшли.
Yevgeniy написав:
В умові сказано вивести результат не округлюючи. На форумі було сказано, що точності задавати не потрібно, просто вивести результат, а віповідний компільтор забезпечить необхідну точність.Отже
cout.setf(ios::scientific);
cout<<res;
Строчка "віповідний компільтор забезпечить необхідну точність" означає лише те, що не треба було використовувати довгої арифметики чи ще чогось. А результат треба ще й правильно вивести. Тим паче, в прикладі з умови був приклад ПРАВИЛЬНОГО виведення.
Поза форумом
Ramzes2 написав:
Yevgeniy написав:
В умові сказано вивести результат не округлюючи. На форумі було сказано, що точності задавати не потрібно, просто вивести результат, а віповідний компільтор забезпечить необхідну точність.Отже
cout.setf(ios::scientific);
cout<<res;Строчка "віповідний компільтор забезпечить необхідну точність" означає лише те, що не треба було використовувати довгої арифметики чи ще чогось. А результат треба ще й правильно вивести. Тим паче, в прикладі з умови був приклад ПРАВИЛЬНОГО виведення.
В том то и проблема, что вопросы относительно конкретных форм вывода и точности вывода игнорировались. В условии же не сказано, с какой точностью надо выводить ответ. Точность же по умолчанию не проходила. Это тут и обсуждается.
Поза форумом
reiten написав:
В том то и проблема, что вопросы относительно конкретных форм вывода и точности вывода игнорировались. В условии же не сказано, с какой точностью надо выводить ответ. Точность же по умолчанию не проходила. Это тут и обсуждается.
Не сказано з якою точністю виводити, то можна вивести з максимально можливою...
Відредаговано Ramzes2 (2006-11-01 21:04:27)
Поза форумом
Ramzes2 написав:
reiten написав:
В том то и проблема, что вопросы относительно конкретных форм вывода и точности вывода игнорировались. В условии же не сказано, с какой точностью надо выводить ответ. Точность же по умолчанию не проходила. Это тут и обсуждается.
Не сказано з якою точністю виводити, то виведи з максимальною!
А какая по-твоему максимальная? А где гарантия, что тестилке не надоест вдруг читать твой ответ? И т. д. Самодеятельность на олимпиадах тоже часто приводит к печальным последствиям. Поэтому я, как и многие другие, сделал то, и только то, что написано в условии, не придумывая ничего, что там не написано.
Поза форумом
reiten написав:
А какая по-твоему максимальная? А где гарантия, что тестилке не надоест вдруг читать твой ответ? И т. д. Самодеятельность на олимпиадах тоже часто приводит к печальным последствиям. Поэтому я, как и многие другие, сделал то, и только то, что написано в условии, не придумывая ничего, что там не написано.
Ну, тоді з такою точністю як в прикладі з умови.
Поза форумом
Ramzes2 написав:
reiten написав:
А какая по-твоему максимальная? А где гарантия, что тестилке не надоест вдруг читать твой ответ? И т. д. Самодеятельность на олимпиадах тоже часто приводит к печальным последствиям. Поэтому я, как и многие другие, сделал то, и только то, что написано в условии, не придумывая ничего, что там не написано.
Ну, тоді з такою точністю як в прикладі з умови.
Ага. Особенно с учетом того, что в условии число в ответе было неправильным.
Поза форумом
reiten написав:
Особенно с учетом того, что в условии число в ответе было неправильным.
А вот это действительно подлянка... В паскале с такой точностью вывести было невозможно... да и в хвосте числа что-то не так было... Но я уцепился за фразу "вывести с максимальной точностью", понял её как "не округляя" и в итоге угадал...
Поза форумом
FireTiger написав:
reiten написав:
Особенно с учетом того, что в условии число в ответе было неправильным.
А вот это действительно подлянка... В паскале с такой точностью вывести было невозможно... да и в хвосте числа что-то не так было... Но я уцепился за фразу "вывести с максимальной точностью", понял её как "не округляя" и в итоге угадал...
В том то и дело, что как выводить никакой реальной информации не было. На конкретные вопросы на эту тему Жури не отвечало. Вот только паскалевский вывод по умолчанию проходит, а в C/C++ из 3 стандартных форм вывода проходит только одна. В этом то и есть вся проблема...
Поза форумом
reiten написав:
В том то и дело, что как выводить никакой реальной информации не было. На конкретные вопросы на эту тему Жури не отвечало. Вот только паскалевский вывод по умолчанию проходит, а в C/C++ из 3 стандартных форм вывода проходит только одна. В этом то и есть вся проблема...
Не знаю... Но для олимпиад (ИМХО конечно...) лучше паскаль. Всё-таки он изначально создавался для обучения программированию, позволяет почти не задумываться над техническими подробностями и сосредоточиться на разработке алгоритма.
П.С. Всё вышенаписанное следует читать как слова человека, который НЕ ЗНАЕТ С/С++
Поза форумом
Паскаль был придуман Виртом как псевдоязык для описания алгоритмов.
А вообще в настоящее время паскаль убирают с олимпиад всех уровней, поэтому имхо учи С++
Поза форумом
FireTiger написав:
reiten написав:
В том то и дело, что как выводить никакой реальной информации не было. На конкретные вопросы на эту тему Жури не отвечало. Вот только паскалевский вывод по умолчанию проходит, а в C/C++ из 3 стандартных форм вывода проходит только одна. В этом то и есть вся проблема...
Не знаю... Но для олимпиад (ИМХО конечно...) лучше паскаль. Всё-таки он изначально создавался для обучения программированию, позволяет почти не задумываться над техническими подробностями и сосредоточиться на разработке алгоритма.
П.С. Всё вышенаписанное следует читать как слова человека, который НЕ ЗНАЕТ С/С++
Насчет лучше паскаль или хуже - ничего не скажу. На эту тему уже столько сказано, что не хочу переливать из пустого в порожнее. Проблема в том, что большенство тех, кто писал на С++ получили за правильные решения 13 балов. Аналогичный код с выводом по умолчанию на паскале набирает 20 балов. Тут проблема не в "хорошести" языков, а в том, что для получения полного бала в программе на C/C++ надо было сделать дополнительные манипуляции по установке точности, что в сущности противоречит формулировке "не округляя".
Поза форумом
Из справочника програмста Гереберта Шидта
В стандарте ANSI\ISO по умолчанию при выводе значений с плавающей точкой отображаются цифры с точностю до шестого знака.
Поза форумом
Батыев Андрей написав:
Паскаль был придуман Виртом как псевдоязык для описания алгоритмов.
А вообще в настоящее время паскаль убирают с олимпиад всех уровней, поэтому имхо учи С++
На межнаре "Pascal is provided but not suported"
т.е. ты можеш писать и на паскале, но тех помощи и гарантии решаемости задачи на паскале тебе не дадут.
Поза форумом
Dark_Dimius написав:
Из справочника програмста Гереберта Шидта
В стандарте ANSI\ISO по умолчанию при выводе значений с плавающей точкой отображаются цифры с точностю до шестого знака.
А где именно в этом справочнике? И в каком из них. Г. Шидт издал несколько справочников по С и С++.
Поза форумом
Уважаемые участники олимпиады!
Я на 3 дня отвлекся от дискуссии, был на олимпиаде по математикие и физике с учениками в Севастополе, думал, что вопрос исчерпан. Вижу - нет. Сожалею и хочу его исчерпать. Итак, еще раз. возможно, повторяясь в аргументах:
1. Ни о какой дискриминации языков речи нет- поверте (см.ниже).
2. Проверялке все равно, как представлено число (см. фрагмет проверялки выше), главное - точность.
3. Точность, требуемая при проверке, достижима средствами любого из принятых на олимпиаде языков, и не выходит за пределы, обусловленные стандартом ANSІ. Кстати, ответ на тест из условия получен FP 2.0.4
4. СОГЛАСЕН - " не округляя" - это не совсем "с максимальной точностью". Это единственный наш недочет.
Обязательно его исправим в будущих задачах. Однако ПРЯМЫХ вопросов на сей предмет НЕ БЫЛО (форум, чат, аська, письма - можно было спрашивать). На вопросы "как выводить в языке...." не отвечали - взялся писать на языке... пиши, но это не имеет отношения к условию задачи.
4. По поводу Pascal-C++ на олимпиадах.... вопрос действительно дискуссионный. Я, как человек, который 32 года занимается олимпиадами вообще и 20 лет олимпиадами по информатике в частности и при этом рассматривает олимпиаду как инструмент "НАУЧЕНИЯ", а не только как способ определения чемпиона, искренне убежден- зря паскаль вытесняют из олимпиадных стандартов. Это замечателный инструмент поддержки изучения "процедурного" программирования. Именно с использованием этой парадигмы построены все классические учебники по алгоритмике, так и только так можно научится программировать правильно. А уже потом есть смысл заниматься объектно - ориетнированными технологиями. Писать на С (С++) в "процедурном" стиле - глупость и дань моде (возможно- способ изучения синтаксиса, что слегка оправдывает), но именно так пишут (в большинстве своем) "сишные" олимпиадники. Решений задач в объектно-ориентированной технологии я практически не встречал за много лет, да и не к чему они для дешевых задач 1-го тура.
Поза форумом
reiten написав:
Dark_Dimius написав:
Из справочника програмста Гереберта Шидта
В стандарте ANSI\ISO по умолчанию при выводе значений с плавающей точкой отображаются цифры с точностю до шестого знака.А где именно в этом справочнике? И в каком из них. Г. Шидт издал несколько справочников по С и С++.
Спровачник программиста по С/С++ третие издание Гереберт Шилдт издательство Вильямс
(С/С++ programmer's reference third edition Herbert Shildt McGraw-Hill/Osborne)
в русском издательствеглава 15 (классы ввода-вывода библиотеки стандарта ANSI\ISO для языка С++) смотри член класса precision (у меня внизу страници 300 внизу)
Поза форумом
Dark_Dimius
Смотреть без толку. У меня "Полный справочник по С++", 4е издание:) Он пожалуй, чуть-чуть полнее. Но этой фразы там нету.
Кстати, твою цитацу ярко зеленым цветом цитать довольно трудно.
Поза форумом
Писать на С (С++) в "процедурном" стиле - глупость и дань моде
На Си писать в объектно-ориентированном стиле не получится. C++ же не заставляет, а позволяет писать объектно-ориентированно, в отличие, например, от Java. Как вы сами указали, на олимпиадах использование ООП в собственном коде себя обычно не окупает, тем не менее, решения на С++ почти всегда используют объекты STL, следовательно, выгода от ООП очевидна.
Поза форумом
Sharp
Коли уж началась дискуссия про ООП, что я тоже выскажу свое мнение.
ИМХО стиль не должен управлять программистом. Зачем привязываться только к процедурному программированию, или только к ООП? На лицо достаточно примеров, когда объекты используются там, где они только раздувают код, и наоборот, когда система, которую, как говориться, сам Бог велел сделать объектной, пишется с использованием процедурного программирования. Везде нужна гармония. На олимпиадах - в том числе. Что же до написания задач непосредственно в объектном стиле, но в большинстве случаев получится "те же яйца, только в тесте". Тем не менее есть достаточно исключений. Например, при написании задач на вычислительную геометрию, создание класса точка/вектор с перегруженными операторами сильно упрощает и сокращает основной код.
Поза форумом
Еще с ООП в Си++ сеществует проблема - даже в стандартных библиотеках существуют не до конца оптимизированые коды на пример Алгоритм генерации текста цепью Макарова написаный на с++ с использованием очереди из STL на 400Mгц Пентиума 2 c OS Windows }{P имея на входе Псалтырь из библии (42685 слов) работает 11.2 с.
с использованием списка вмасто очереди 1.5 с.
а на С без ООП 0.3 с.
ткчто для олимпиад иногда лутше все писать самим(прада есть такие части STL где ошыбок нет т.к. они ОЧЕНЬ часто используються (тот же sort из <algorithm>))
***Источник информации о алгоритме макарова - книга Практика Программирования(The Practiceof Programming) (автора Брайан Керниган и Роб Пайк. издательство Вильямс)***
Відредаговано Dark_Dimius (2006-11-05 16:47:57)
Поза форумом
Можно ли попросить судей хотябы после олимпиады выложыть средний бал который получили задачи на разных языках програмирования.
Чтото вроде
с - 80% тестов
с++ - 87% тестов
раs - 70
итд?
Поза форумом
Тю, а смысл? На паскале, скорее всего, больше новичков программирует. Вот и баллы будут разные. А процент не пройденных тестов именно изза особенностей языка будет мизерный.
Поза форумом
Dark_Dimius написав:
Еще с ООП в Си++ сеществует проблема - даже в стандартных библиотеках существуют не до конца оптимизированые коды на пример Алгоритм генерации текста цепью Макарова написаный на с++ с использованием очереди из STL на 400Mгц Пентиума 2 c OS Windows }{P имея на входе Псалтырь из библии (42685 слов) работает 11.2 с.
с использованием списка вмасто очереди 1.5 с.
а на С без ООП 0.3 с.
ткчто для олимпиад иногда лутше все писать самим(прада есть такие части STL где ошыбок нет т.к. они ОЧЕНЬ часто используються (тот же sort из <algorithm>))
***Источник информации о алгоритме макарова - книга Практика Программирования(The Practiceof Programming) (автора Брайан Керниган и Роб Пайк. издательство Вильямс)***
1. На каком компиляторе проводилось сравнение? Реализации СТЛ бывают разной удачности. Например в MS VC++ 6.0 код с использованием СТЛ(в основном контейнеров) действительно сильно тормозит. Такая же проблема в MS VC++6.0 с cin/cout. В других же компиляторах разница в быстродействии гораздо меньше. В наше время наиболее толковой и развитой, пожалуй, является реализация SGI STL.
2. Надо смотреть на код. Во-первых, ООП никогда само по себе не виновато в низкой производительности кода. Во-вторых, хороший код, написанный С/С++ и прилично оптимизированный под данную задачу, действительно часто выигрывает в быстродействии. Причин этому множество. Ведь те, кото писал stl::list не оптимизировали свой код списка под использование в алгоритме генерации текста цепью Макарова. Они не могут знать, что в этом алгоритме, к примеру не нужны обратные связи в списке, или что тут-то и тут-то можно сразу выделить столько-то памяти, а не 50 раз обращаться в системе за новым клочком. Конечно, в критичных к быстродействию приложениях СТЛ часто не лучший выход. Тем не менее СТЛ помогает быстро писать эффективные и, что важно, прозрачные программы. Даже проигрывая хорошо написанному и оптимизированному под конкретный случай коду, СТЛ часто помогает уменьшать асимптотику программ.
Кроме того он сильно выручает в условиях очень ограниченного времени, например на ТопКодере.
В общем мораль сей басни такова: надо владеть обоими подходами(и с СТЛ, и без него) и в каждом конкретном случае выбирать тот подход, который подходит под ситуацию.
Поза форумом
Ребят, ну какое ООП для олимпиадных задач? Олимпиадные задачи имеют свойство ООЧЕНЬ отличаться от реальной жизни. В жизни уже ООП - практически везьде, а на олимпиадных задачах (даже супер сложных, правда полностью безполезных в жизни) рулит чистый процедурный код (к сожалению).
На олимпиаде важна скорость. В жизни - стабильность и удобность, в первую очередь для самого программиста - это ООП. ООП занимает процессорное время, да - динамическая память на объекты, менеджмент памяти, но зато это удобно! Конечно, я не предлагаю микроскопом гвозди забивать, поэтому сам не использую ООП на олимпиадах - не то это, не то...
Насчет языков - нельзя говорить что паскаль - выбор новичков. Турбо Паскаль - да, это учебный язык. Но Делфи - по возможностям ООП и скорости ООП обгоняет MS VC++. ФриПаскаль - к сожалению тормозной язык - плюсы - кроссплатформенность - на нём игры пишут под приставки многие и бесплатность. Поэтому и убирают паскаль из межнара.. Да и давление микрософта есть...
2Жури: Вышла Turbo Delphi - бесплатная - может поменяете? Это так - к сведению, я то понимаю что не поменяете, уберете скорее.
______
p.s. Если вы используете STL - это не значит что у вас ООП проект
Поза форумом
Jura написав:
Ребят, ну какое ООП для олимпиадных задач? Олимпиадные задачи имеют свойство ООЧЕНЬ отличаться от реальной жизни. В жизни уже ООП - практически везьде, а на олимпиадных задачах (даже супер сложных, правда полностью безполезных в жизни) рулит чистый процедурный код (к сожалению).
На олимпиаде важна скорость. В жизни - стабильность и удобность, в первую очередь для самого программиста - это ООП. ООП занимает процессорное время, да - динамическая память на объекты, менеджмент памяти, но зато это удобно! Конечно, я не предлагаю микроскопом гвозди забивать, поэтому сам не использую ООП на олимпиадах - не то это, не то...
Насчет языков - нельзя говорить что паскаль - выбор новичков. Турбо Паскаль - да, это учебный язык. Но Делфи - по возможностям ООП и скорости ООП обгоняет MS VC++. ФриПаскаль - к сожалению тормозной язык - плюсы - кроссплатформенность - на нём игры пишут под приставки многие и бесплатность. Поэтому и убирают паскаль из межнара.. Да и давление микрософта есть...
2Жури: Вышла Turbo Delphi - бесплатная - может поменяете? Это так - к сведению, я то понимаю что не поменяете, уберете скорее.
______
p.s. Если вы используете STL - это не значит что у вас ООП проект
Во первых, ООП - создание в программе собственных объектов. Ничего общего с динамической памятью и задержками процессорного времени оно само по себе не имеет. Я уже приводил пример, когда мощ ООП позволяет присать более короткий и прозрачный код: вычислительная геометрия.
Про скорость ООП в делфи я ничео не скажу. Может сначала скажешь, что имеешь под этим ввиду? А вот возможности в области ООП у С++ все же больше, чем у делфи.
Давление микрософта на межнаре. Насмешил. На школьных межнарах отказались от использования OS WINDOWS. Какое тут давление микростофт?
Про турбо делфи. Она под какой ОС работает? А под какой тестирующая система:)? Вот-вот.
Поза форумом