- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
function naq(a:integer;n:integer;m:integer):string;
var astr:string;
begin
astr:=inttostr(a);
case m of
1: naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*1)+'*p^'+inttostr(n+1);
2: naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*2)+'*p^'+inttostr(n+1)+'+'+inttostr(a*1)+'*p^'+inttostr(n+2);
3: naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*3)+'*p^'+inttostr(n+1)+'+'+inttostr(a*3)+'*p^'+inttostr(n+2)+'-'+inttostr(a*1)+'*p^'+inttostr(n+3);
4: naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*4)+'*p^'+inttostr(n+1)+'+'+inttostr(a*6)+'*p^'+inttostr(n+2)+'-'+inttostr(a*4)+'*p^'+inttostr(n+3)+'+'+inttostr(a*1)+'*p^'+inttostr(n+4);
5: naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*5)+'*p^'+inttostr(n+1)+'+'+inttostr(a*10)+'*p^'+inttostr(n+2)+'-'+inttostr(a*10)+'*p^'+inttostr(n+3)+'+'+inttostr(a*5)+'*p^'+inttostr(n+4)+'-'+inttostr(a*1)+'*p^'+inttostr(n+5);
6: naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*6)+'*p^'+inttostr(n+1)+'+'+inttostr(a*15)+'*p^'+inttostr(n+2)+'-'+inttostr(a*20)+'*p^'+inttostr(n+3)+'+'+inttostr(a*15)+'*p^'+inttostr(n+4)+'-'+inttostr(a*6)+'*p^'+inttostr(n+5)+'+'+inttostr(a*1)+'*p^'+inttostr(n+6);
7: naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*7)+'*p^'+inttostr(n+1)+'+'+inttostr(a*21)+'*p^'+inttostr(n+2)+'-'+inttostr(a*35)+'*p^'+inttostr(n+3)+'+'+inttostr(a*35)+'*p^'+inttostr(n+4)+'-'+inttostr(a*21)+'*p^'+inttostr(n+5)+'+'+inttostr(a*7)+'*p^'+inttostr(n+6)+'-'+inttostr(a*1)+'*p^'+inttostr(n+7);
8: naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*8)+'*p^'+inttostr(n+1)+'+'+inttostr(a*28)+'*p^'+inttostr(n+2)+'-'+inttostr(a*56)+'*p^'+inttostr(n+3)+'+'+inttostr(a*70)+'*p^'+inttostr(n+4)+'-'+inttostr(a*56)+'*p^'+inttostr(n+5)+'+'+inttostr(a*28)+'*p^'+inttostr(n+6)+'-'+inttostr(a*8)+'*p^'+inttostr(n+7)+'+'+inttostr(a*1)+'*p^'+inttostr(n+8);
9: naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*9)+'*p^'+inttostr(n+1)+'+'+inttostr(a*36)+'*p^'+inttostr(n+2)+'-'+inttostr(a*84)+'*p^'+inttostr(n+3)+'+'+inttostr(a*126)+'*p^'+inttostr(n+4)+'-'+inttostr(a*126)+'*p^'+inttostr(n+5)+'+'+inttostr(a*84)+'*p^'+inttostr(n+6)+'-'+inttostr(a*36)+'*p^'+inttostr(n+7)+'+'+inttostr(a*9)+'*p^'+inttostr(n+8)+'+'+inttostr(a*1)+'*p^'+inttostr(n+9);
end;
end;
defecate-plusplus 29.11.2011 09:49 # 0
TarasB 29.11.2011 09:58 # 0
defecate-plusplus 29.11.2011 10:01 # 0
defecate-plusplus 29.11.2011 10:34 # 0
а если нужно использовать локаль пользователя? (скажем, разделитель .,)
TarasB 29.11.2011 11:53 # 0
А, ещё же есть format(s, [args]), по аналогии с сишкофункцией. Даже с проверками типа, только проверки все в период выполнения, а жаль.
defecate-plusplus 29.11.2011 12:05 # +1
// std::ostream & o
o << somestring << somenumber << somedate << someuserclass;
я даже не акцентирую, какого конкретно типа каждый из аргументов, может somenumber это пользовательский класс для комплексного числа
дельфишный format позволяет в качестве аргумента передать свой собственный класс, который сам знает как себя выводить? а в С++ можно не только это, но и есть возможность повлиять на вывод конкретного типа, используя фасет в локали.
guest 29.11.2011 12:08 # 0
1)Использование операции побитового сдвига выносит мозг.
2)Форматирование строк получается гораздо длиннее.
defecate-plusplus 29.11.2011 12:15 # 0
а потом на потоки С++
а потом опять на говнокод выше
а потом снова на потоки С++
delphi:
astr:=inttostr(a);
naq:=astr+'*p^'+inttostr(n)+'-'+inttostr(a*2)+'*p^'+inttostr(n+1)+'+'+ inttostr(a*1)+'*p^'+inttostr(n+2);
C++:
// std::ostringstream oss;
std::string const p = "*p^";
oss << a << p << n << '-' << (a*2) << p << (n+1) << '+' << a << p << (n+2);
guest 29.11.2011 12:18 # 0
defecate-plusplus 29.11.2011 12:22 # +1
а я программист который каждый день работает за денюшку на С++
поверь, формат удобней потоков только когда надо выводить числа/строки с конкретными размерами полей и заполнением/выравниванием, хотя потоки и это позволяют
обычно как раз надо вывести в поток что то переменной длины
строку лога или кусок xml
как замена сишному небезопасному printf есть boost::format, используется реально крайне редко
так что не аргумент
TarasB 29.11.2011 12:25 # 0
guest 29.11.2011 12:30 # 0
stream+var1+var2+lol;
guest 29.11.2011 12:33 # 0
bugmenot 29.11.2011 12:41 # +2
roman-kashitsyn 29.11.2011 12:48 # +1
defecate-plusplus 29.11.2011 13:23 # +2
мне надо вывести
log << "received " << bytes_count << " bytes from client " << socket.endpoint() << std::endl;
в понимаю, что дельфишном format это будет что то типа (внимание, псевдокод)
log := format('received %u bytes from client %s\n', bytes_count, socket.endpoint().ToString);
отлично
ой, неплохо было бы еще ошибку вывести
переписываем С++
log << "received " << bytes_count << " bytes from client " << socket.endpoint() << " with error " << ec << std::endl;
отлично
теперь дельфи
log := format('received %u bytes from client %s with error %s\n', bytes_count, socket.endpoint().ToString(), ec.ToString());
дельфепроблемы - приходится изменять код в 2 местах, а не в 1, error-prone
дельфепроблемы - каждый объект обязан иметь метод ToString
koodeer 29.11.2011 21:40 # −1
Крестопроблемы: каждый объект должен уметь выводить себя в поток. Так что, имхо, оверхед примерно одинаковый.
Зато объект с ToString можно и на компонент гуя вывести, а в крестах объект, умеющий себя выводить в поток, не сможет вывести себя на гуй.
defecate-plusplus 29.11.2011 21:53 # +1
std::string s = boost::lexical_cast<std::string>(myobjec t_which_can_into_stream_only);
насколько просто сделан lexical_cast и сколько строк кода заняла бы твоя собственная функция оставлю тебе в виде домашнего задания
lucidfoxGovno 30.11.2011 13:25 # 0
фу, бля, костыль...
defecate-plusplus 30.11.2011 13:47 # 0
принимать натощак
koodeer 30.11.2011 20:12 # 0
Ещё раз сравни оба подхода, и подумай, почему в современных платформах используется ToString: единообразие применения объектов где угодно. Без дополнительных телодвижений.
defecate-plusplus 30.11.2011 22:01 # 0
я тебе показал, что если объект выводит себя в поток, абсолютно никаких проблем показать его в гуй, использовав tostring(obj), причем показать его в нужной локали, а не в той, в которой умный школьник его задумал, когда писал метод ToString
но раз тебя метод ToString так отлично устраивает, я тебе рекомендую в дельфи вызвать метод ToString у переменных типа int, double и даже string
ой... нельзя чтоли? как же так
и да, оба подхода уже сравнены:
http://govnokod.ru/8664#comment122893
gegMOPO4 30.11.2011 22:58 # 0
guest 29.11.2011 12:10 # 0
4)Куча лишних вызовов функций.
defecate-plusplus 29.11.2011 12:11 # 0
guest 29.11.2011 12:14 # 0
stream.operator<<(stream, param1).operator<<(stream, param2).operator<<(stream, param3).operator<<(stream, param4)... .operator<<(stream, param100500);
defecate-plusplus 29.11.2011 12:17 # 0
а как ты думаешь насколько эффективно по памяти .operator <<().operator <<() для потока и operator +(), operator+(), operator+() для дельфишной строки?
TarasB 29.11.2011 12:26 # 0
Одинаково.
defecate-plusplus 29.11.2011 12:28 # 0
guest 29.11.2011 12:37 # 0
http://govnokod.ru/8664#comment122833
TarasB 29.11.2011 13:19 # 0
Когда пишешь s:=s1+s2+s3+...+sn, то всё пишется в один временный объект, общий для всех, квадратичного расхода памяти нету.
defecate-plusplus 29.11.2011 13:21 # 0
а что будет, если s1, s2, s3... - объекты моего типа mystring?
guest 29.11.2011 13:39 # 0
Лишнее копирование.
TarasB 29.11.2011 13:50 # 0
И даже не потому, что там коровьи строки, а потому, что функция сложения строк знает адрес приёмника.
roman-kashitsyn 29.11.2011 12:14 # +4
Вспоминается рассказ про то, как русские школьники запустили в американскую школу трёх свиней, на спинах у которых были нарисованы цифры 1, 2 и 4, после чего пиндосы два месяца искали свинью под номером 3...
guest 29.11.2011 12:17 # +1
Это для внушительности большего числа пунктов.
defecate-plusplus 29.11.2011 12:57 # 0
ну и позволяют легко и безопасно менять поведения вывода объектов, не изменяя сами объекты
TarasB 29.11.2011 13:21 # 0
У тебя какая-то нездоровая кукареку-активность проявилась в попытках найти говнокод в строках Дельфи. К чему это?
defecate-plusplus 29.11.2011 13:37 # 0
как раз к твоим нападкам о том, что С/С++ говно, а дельфи идеал
у нас в конторе есть дельфишный отдел, пишут на дельфи 7, собирают версии bat-файлами, сложное управление солюшеном из нескольких проектов, о каких бы то ни было переходах на распоследние версии RAD с перегрузкой операторов, шаблонами и контейнерами/паттернами речь никогда не зайдёт
трагичное зрелище
если бы не огромная куча UI приложений, написанных на VCL и куче компонент, которые надо постоянно дописывать, дельфишного отдела бы давно не было
bugmenot 29.11.2011 13:48 # +2
слоупоки и/или жлобы
> собирают версии bat-файлами
контора уровня ЖЭК, не могут нанять хотя бы одного, кто can into make?
defecate-plusplus 29.11.2011 13:52 # 0
расскажи в конторе какого уровня работаешь ты, покупают ли тебе каждый новый билд каждого ПО, которое ты используешь для работы?
bugmenot 29.11.2011 14:06 # 0
пушков, ты?
> покупают ли тебе каждый новый билд
покупают, хотя я не настаиваю на bleeding edge
defecate-plusplus 29.11.2011 14:29 # 0
ну расскажи, какой комплект софта тебе закупают и сколько он стоит, купили ли тебе уже последнюю RAD Studio, если купили, то почему ты не уверен, парсит ли дельфи разделитель дробной части? значит не дельфи... ой я запутался
какое сверхмощное IDE тебе купили для js?
roman-kashitsyn 29.11.2011 14:48 # 0
WebStorm?
defecate-plusplus 29.11.2011 14:56 # 0
бухгалтер его ЖЭКа на обеде, так что подождём
bugmenot 29.11.2011 17:28 # +2
guest 29.11.2011 17:32 # −2
с==3
defecate-plusplus 29.11.2011 18:01 # +1
когда ты приходишь в паспортный стол или налоговую, или покупать билет в ржд или метро, или еще овер 9000 мест, где стоят убогие компьютеры максимум пентиум4 с запущенными всевозможными АРМами синенькими - думаешь они все делаются на передовых языках передовыми средствами 2012 года?
я думал ты похвалишься "вы все неудачники, моя контора <ХХХ> делает охуенные проекты передовыми инструментами за много миллионов и я вас всех в рот ебал", а мы бы за тебя порадовались
guest 29.11.2011 18:40 # −3
bugmenot 29.11.2011 19:59 # 0
и судя по реакции попал в точку.
> я думал ты похвалишься
а хрен ли тут хвалиться? что не работаю на проебись-шаражку, где хорошие компы дронам не выдают, чтобы не спиздили?
> паспортный стол или налоговую, или покупать билет в ржд или метро
и у первой группы и у второй бабло есть
defecate-plusplus 29.11.2011 20:10 # 0
типичная позиция школьника-максималиста, который оценивает весь мир в бинарной логике
bugmenot 29.11.2011 20:32 # 0
Не заинтересован менеджмент в вашей производительности труда. Пока до дыр свои АРМ не протрете не будет апгрейда. Это совпром и ГУП, детка.
defecate-plusplus 29.11.2011 20:34 # 0
ищи его на гейдеве, это как раз профессиональный ресурс твоего уровня
bugmenot 29.11.2011 20:44 # 0
defecate-plusplus 29.11.2011 20:47 # 0
вопросы об апгрейде инструментария ставит начальник группы начальнику отдела, затем вопрос поднимается выше до департамента, а уже начальник департамента способен эти вопросы ставить перед коммерческим директором, которому лишь надо знать сколько в этом году дать бабла на ПО на весь департамент
ограничений никаких нет, нет желания начальника группы дельфистов, который не ставит вопрос самостоятельно и не отвечает на ежегодное письмо "а что нам надо продлить из лицензий на следующий год, а что купить", там молодых дерзких и успешных юношей, как ты, нет, они 10 лет пишут на дельфи 7 и у них всё работает, каждое ТЗ заказчика исполняется в срок - вот они и не хотят переходить на передовые ИДЕ с новыми багами и кучей новых проблем с развертыванием и сдачей заказчику
если для тебя эта вертикаль кажется слишком напыщенной, или к тебе сам коммерческий директор приходит спросить перед обедом "слушай давай твой джавоскрипт на паскале мы теперь будем писать вот в этом, я уже купил, уверен тебе понравится", то мне нечего тебе сказать - такие вопросы ставятся снизу, от исполнителей работы
и если тебе, как стажеру, уже всё купили и настроили, даже асичьку, это не значит, что так случилось по личному желанию директора
повзрослеешь - поймешь
bugmenot 29.11.2011 21:04 # 0
Еще остались в природе те, которые боятся слезть с шестой студии?
defecate-plusplus 29.11.2011 21:15 # 0
или ты сейчас тоже будешь заявлять "только 2010! no thinking required!"
предвосхищая твой вопрос - 2010 официально есть из коробки мсдн, но стоит только дома
и да, жду хотя бы намёка на твою нешарашку
или круг заказчиков
bugmenot 29.11.2011 21:38 # 0
defecate-plusplus 29.11.2011 22:02 # 0
к каким негативным последствиям это приведёт? самозабанишься?
просвети нас, глупых
я теряюсь в догадках
гуру паскаля и джавоскрипта, знающий персонажей гейдева не понаслышке, стремающийся раскрыть какие же секретные проекты он делает на верхнем этаже кремля, наверное что то очень серьезное
guest 29.11.2011 22:27 # 0
У ТЕБЯ БУДЕТ БАТХЕРТ ОТ КРЕСТОПРОБЛЕМ. только и всего. иди за вазилином
defecate-plusplus 29.11.2011 22:31 # 0
а то там полное уныние
bugmenot 29.11.2011 22:32 # 0
здесь поподробнее, пожалуйста. по скольку вас, клоунов, фасуют?
ты пушкова уже слабее напоминаешь, и это отнюдь не комплимент
defecate-plusplus 29.11.2011 22:40 # 0
ну напрягись
скажи хотя бы "делаем сайты на заказ, среди заказчиков владельцы заводов, газет, пароходов, я отвечаю за то то", ну или "делаем убийцу документооборота IBM на дельфе, нужны формочки, будильники каждые 3 часа и интенсивный обмен с субд"
я все пойму и прощу
defecate-plusplus 29.11.2011 23:18 # 0
ты видишь, для тебя даже давно раздел зарезервирован, гюльчатай анонимный
http://lurkmore.ru/Govnokod.ru#bugmenot
вот почему Тарасу не стыдно предстать каким есть - закончил институт, судя по всему аспирант, имеет академический интерес к разным языкам и мат аппарату, но на практике делает только программки для души
со знанием такого малораспространенного языка как ада я его могу даже кое-куда порекомендовать
разве это плохо? нет, он молодец
что молчишь?
какой вес я могу придавать твоим словам, если тебе сложно очертить свою профессиональную деятельность? ты же там замахивался на 10 миллионов строк дельфишного кода, небось устал пока писал, объем сравним с серьезным офисным пакетом - чего утаиваешь, намекни
bugmenot 29.11.2011 23:38 # 0
я ни хера в твой лепет не хочу вникать, поди в школу писать изложение
roman-kashitsyn 30.11.2011 08:49 # +2
gegMOPO4 30.11.2011 23:34 # +1
TarasB 30.11.2011 09:26 # 0
defecate-plusplus 30.11.2011 09:45 # −3
http://demotivation.me/images/20111130/vnmbdn6mkxos.jpg
bugmenot 30.11.2011 13:44 # 0
lucidfoxGovno 30.11.2011 13:22 # 0
и кого же?
TarasB 30.11.2011 14:08 # 0
lucidfoxGovno 30.11.2011 14:55 # −1
lucidfoxGovno 30.11.2011 15:07 # −1
bugmenot 29.11.2011 21:41 # 0
найдешь или вспомнишь слоупока, который на ней застрял - увидишь то самое, что происходит в уголке дельфи 7, но незамутненным климактерической неприязнью к паскалю
guest 29.11.2011 22:25 # 0
мы не боимся. мы не можем по техническим причинам. не тролль нас
roman-kashitsyn 29.11.2011 23:09 # 0
guest 29.11.2011 23:23 # 0
roman-kashitsyn 30.11.2011 08:46 # 0
gegMOPO4 30.11.2011 23:43 # 0
Кстати, та же история с Java 1.4 (и даже 1.4.x для конкретных x).
gegMOPO4 30.11.2011 23:00 # 0
ctm 30.11.2011 06:35 # 0
я сам только мельком смотрел, но все-равно заметно.
defecate-plusplus 30.11.2011 09:23 # −1
bugmenot 01.12.2011 00:07 # 0
у них либо денег нет на закупку лицензий на сектор, либо мозгов, чтобы смело мигрировать и таки выучить новые фичи типа параметризованных типов
ctm 01.12.2011 06:22 # 0
могли решить, что овчинка выделки не стоит. не получится жеж взять исходник, скомпилить и чтоб сразу заработало. уникоды, отличия в реализации VCL (видел, что Bitmap.Refresh стал другим - ранее не моргал, стал моргать и двойным буфером не лечится - надо менять), DecimalSeparator теперь по-другому, a{:char} in ['q','w','e'] тоже переписывать нужно...
наверно еще много чего изменилось - вот и не хотят тратить ресурсы.
bugmenot 01.12.2011 16:14 # 0
а вот с Char in Set нелогично получилось, это да
ctm 02.12.2011 06:27 # 0
арифметику указателей - приводить к инту? правда при переходе на 64 бит будут те же траблы. А есть интовый тип, размер которого совпадает с размером указателя?
bugmenot 02.12.2011 18:20 # 0
Вроде как. Хотя Bydlocodero вслед за крестоебами полностью просрали концепцию fundamental and generic types, теперь у них целый зверинец интринсик типов
roman-kashitsyn 29.11.2011 13:51 # 0
defecate-plusplus 29.11.2011 13:56 # 0
бат-файлами они собирают на своей выделенном для отдела машине в полуавтоматическом режиме, насколько я помню, у них есть собственная на дельфи писанная утилита, которая сливает с системы контроля версий сорцы требуемых версий, сама формирует bat, собирает солюшен и сдает в архив, рассылая письма
тестируются на своих машинах они конечно по F5 или что там в дельфи аналогичное
точнее они формируют bat и скармливают его своей утилите, во
roman-kashitsyn 29.11.2011 13:58 # 0
defecate-plusplus 29.11.2011 14:03 # 0
проверь, что у тебя MAKEOPTS="-j" если многоядерный проц
roman-kashitsyn 29.11.2011 14:08 # 0
Опции компиляции правильные, в три потока собирается. Сам c++ довольно долго компиляется, это факт (к примеру, 300 средних java-классов можно скомпилять примерно за 10 секунд). На какие жертвы только не пойдёшь ради быстрой работы приложений...
defecate-plusplus 29.11.2011 14:24 # 0
поэтому есть разные способы это самое время сократить
т.к. ты гентушник, то тебе явно только rebuild и приходится делать, это может напрягать, конечно
проанализируй, какие такие преимущества тебе даёт гента, что тебе приходится мириться с долгой пересборкой, не окажется ли любой другой x86_64 дистрибутив сопоставим по скорости, получаешь ли ты эти самые 5% прироста на своем достаточно стандартном процессоре, я даже не знаю что конкретно софт может использовать из камня core 2 (может какие то улучшения в плавающей точке?), если есть критичная разница в конкретных приложениях - может стоит из сорцов только эти приложения с USE флагами и собирать в бинарном дистрибутиве?
гента, как для меня, отличный дистрибутив чтобы поковыряться и разобраться в linux и отличный дистрибутив поддерживать N одинаковых машин в корректном состоянии, а ставить на ноут и жить с ним... там бинарных репозиториев еще не завели?
roman-kashitsyn 29.11.2011 14:34 # 0
Arch - это треш. Перед каждым обновлением нужна молитва, какие-то детские баги с bluetooth.
Fedora - это вообще феерический пипец. По дефолту на ней даже gcc не стоит, компилятор java поставить из репозитория - проблема, глюков очень много.
Подумываю вот попробовать OpenSuse... Но вряд ли что-то сравнится с gentoo...
defecate-plusplus 29.11.2011 14:36 # 0
http://linux.wikia.com/wiki/Category:Gentoo_based_distro
мне кто то хвалил отечественный calculate, например
defecate-plusplus 30.11.2011 09:41 # 0
попробуй перейти на другой компилятор
гцц так вообще никогда не был самым быстрым, ни по скорости компиляции, ни по оптимизации конечного бинарника
http://clang.llvm.org/features.html#performance
они вроде как обещают хорошее ускорение компиляции с++
roman-kashitsyn 30.11.2011 09:46 # 0
Для компиляции других приложений попробую clang, спасибо за наводку.
defecate-plusplus 30.11.2011 09:50 # 0
25 October 2010 Clang/LLVM able to compile a working Linux Kernel.[23]
но вообще стоит ожидать любого подвоха при компиляции ведра, да
кстати столман на днях приезжает в москву, погрызёт ногти и перед нами
roman-kashitsyn 30.11.2011 09:58 # 0
SELinux, Posix ACLs, IPSec, eCrypt, anything that uses the crypto API - None of these will compile
Module loading is totally broken.
defecate-plusplus 30.11.2011 10:02 # 0
палка о двух концах
еще одна бесплатная конкуренция g++ - это отлично
но выпускается из стен корпорации бабла - грустно
roman-kashitsyn 30.11.2011 10:10 # 0
gcc - это ж солянка, гнушники не хотят писать генератор нативного кода для каждого языка, а компилить всё языки в АСД и генерить бэкэндом машинный код. Универсальность всегда вредит производительности.
TarasB 30.11.2011 10:32 # 0
defecate-plusplus 30.11.2011 10:43 # 0
http://ru.wikipedia.org/wiki/Low_Level_Virtual_Machine
TarasB 30.11.2011 11:09 # 0
Так это хорошо.
eth0 29.11.2011 19:10 # 0
k-то зачем?
defecate-plusplus 29.11.2011 19:47 # 0
работает постоянно на 4700 GHz вместо 3400, без k такого не сделать, аве интелу
eth0 30.11.2011 12:26 # 0
Прослоупоучил. Никогда не занимался разгоном, по мне - совершенное безумие.
defecate-plusplus 30.11.2011 12:37 # 0
труды окупились - компиляция по сравнению с предыдущим компом (6-летний пень-4 в обёртке от жлобов HP) ускорилась в 10-20 раз
это превзошло все мои ожидания
eth0 30.11.2011 17:50 # 0
Интересно, насколько велика разница с неразогнанным процессором? В своё время я брал специально 2600, поскольку 2600к счёл пустой тратой денег.
defecate-plusplus 30.11.2011 18:40 # 0
в цене разница заметнее, т.к. кроме k надо хорошо доплатить за приличную мать (где интел тоже за чипсет просит $$), приличный тихий кулер, добавить на недохлый БП и память, а затем уже и хочется и рейд и тихий удобный корпус для этого всего, и клавиатуру с подсветочкой
но я не жалею - если жене не жалко на дребедень всякую, чего мне на себя жалеть для дела - на работе предложили взять новый системник с i5, я подумал и купил себе какой хотел
труды окупились оргазмом, когда самый здоровый проект на работе ребилдился вместо 20 минут полторы (это с опцией "собираем проекты последовательно"), когда можно линух поставить тут же на виртуалку, замапить на живую рабочую папку и компилять в 8 потоков ребилд за минуту/билд за мгновения, вместо ебли с копированием архива на выделенную одноядерную слабую машинку и туплением по 15-20 минут в интернете пока там соберётся
для дома (где задачи поиграть, интернеты и офис) - лучший выбор i5, конечно, игры всё равно в графику упираются
eth0 30.11.2011 21:55 # 0
В том вся беда, что теоретически.
Я брал себе для дома, для игр, ну и виртуалки гонять. Собирать ничего не пробовал, у меня даже никакого компилятора не стоит. Потому и интересно, какой процент добавит этот разгон. На момент, когда я апгрейдился, 2600 от 2600к отличался на две тысячи (ЕМНИП); соответственно, я уже и без того потратился на остальное барахло, что решил просто пропить эти две тысячи. Так и вышло.
Если исключительно под разгон, для целей, где важна производительность, плюс, контора платит - свой вопрос снимаю.
TarasB 29.11.2011 14:01 # 0
roman-kashitsyn 29.11.2011 14:02 # 0
defecate-plusplus 29.11.2011 14:09 # +1
процедурное программирование форевер
производительность? не, не слышал
работа с девайсом в синхронном режиме за 3 секунды, когда на С++ то же самое 100мс асинхронно - кого это ебёт
зато формочки клепаются быстро, а отсутствие контейнеров, шаблонов и т.д. из коробки - да это никому и не нужно, зато можно скачать какой нибудь очередной бессистемный компонент, коллективный разум поможет
но отдел выполняет свою работу, поэтому в чем то ты прав - у них всё хорошо
инструмент выполняет ту работу, для которой он предназначен
TarasB 29.11.2011 14:29 # +4
Схуяли дельфа сливает по производительности? Писать надо правильно.
> работа с девайсом в синхронном режиме за 3 секунды, когда на С++ то же самое 100мс асинхронно - кого это ебёт
Ну если в коде дельфи вставлена какая-нибудь херня типа sleep(3000), то может быть.
ctm 30.11.2011 06:27 # 0
Очень много delphi-программистов, которые только и умеют наклепать формочки, назначить какие-то проперти и эвенты, в которых написать код типа как в этом посте.
про 3 секунды и 100 мс - они просто не умеют его готовить.
SmackMyBitchUp 05.12.2011 23:06 # 0
Хотя, что уж там, чему учили, то и умеют, если учились
bugmenot 29.11.2011 14:12 # +1
комплирует шустро и днем
был багладовый make, потом msbuild приделали
roman-kashitsyn 29.11.2011 14:14 # 0
bugmenot 29.11.2011 14:19 # 0
roman-kashitsyn 29.11.2011 14:22 # 0
bugmenot 29.11.2011 17:36 # 0
Хех, я так собаку приучал не ссать на пол. М. б. перебрали юниоров?
SmackMyBitchUp 05.12.2011 23:07 # 0
юниоров-адептов-Малахова?
Lure Of Chaos 05.12.2011 23:31 # +1
koodeer 29.11.2011 21:44 # +2
Странная нападка. То же самое можно сказать про любой из давно существующих языков.
Если бы не огромное количество кода написанного на Fortran/Cobol/C/C++/Delphi(нужное дописать), и который нужно поддерживать, то их бы давно не было.
gegMOPO4 29.11.2011 14:22 # 0
guest 29.11.2011 12:12 # 0
Да: передаем в format параметром obj.ToString;
defecate-plusplus 29.11.2011 12:19 # 0
а что делать с локалью?
obj.ToString должен вывести что то одно?
или мне придется делать версию obj.ToString(somelocale) и каждый раз описывать что то?
guest 29.11.2011 12:20 # 0
Установи в конструкторе или в сетере.
defecate-plusplus 29.11.2011 12:22 # 0
а если у меня одновременно два потока, один с юзерской локалью, а другой - дефолтной?
defecate-plusplus 29.11.2011 12:23 # 0
дельфишный подход?
guest 29.11.2011 12:25 # 0
TarasB 29.11.2011 12:27 # 0
defecate-plusplus 29.11.2011 12:32 # +1
std::ostringstream defaultoss, useross;
useross.imbue(std::locale(""));
double somedouble = 100.500;
defaultoss << somedouble;
useross << somedouble;
бывает очень удобно, когда надо английский csv с ихними разделителями читать, перерабатывать и выводить как русский, чтобы в русском excel открылось
работа с локалями вообще очень удобна, задаешь для потока (а не для каждого объекта ёпта) и больше не беспокоишься
guest 29.11.2011 12:38 # 0
defecate-plusplus 29.11.2011 12:50 # +1
обычно сохраняют из экселя, так таблицы проще и портабельней передавать
строка таблицы выглядит как 100.500, 200.456, sometext
для русского экселя не выполняется, более того, если этот csv открыть в нем, то он всю строку засунет в первую ячейку
для русского экселя разделитель дробной части запятая, а разделитель ячеек - точка с запятой
доводилось писать утилиту (пакетная обработка данных для нейросетки), которая должна была принять на вход здоровый csv одного из двух форматов (русский/нерусский), серьезно перерабатывать его и выдавать csv под русский эксель
открывается файловый поток входного csv, избирается формат ячейки, формируются локали, в которых задается фасет numpunct с верным decimal_point, фасет, подавляющий пробел между группами тысяч (т.к. по науке зачем то в русской локали 100500 выводится как 100 500), затем одна локаль назначается на входной поток файла, а другая (под русский csv) на выходной
весь остальной движок не ебёт себе мозг что и как читать из файла
он просто делает >> из потока и << в поток
bugmenot 29.11.2011 12:58 # 0
тур-де-франс, достаточно было правым меню воспользоваться
defecate-plusplus 29.11.2011 13:01 # 0
над входным файлом?
в экселе 65к ограничение на количество строк в таблице, это была еще одна причина не использовать ручной вариант
речь о том, что в С++ все эти хитрожопые операции (которые дельфишников никогда не касаются, потому что сложно) делаются очень небольшим числом строк
TarasB 29.11.2011 13:22 # 0
defecate-plusplus 29.11.2011 13:26 # 0
затем строки разбивать на ячейки, используя переданный сверху delimiter
затем в каждой ячейке пытаться распарсить значение, в котором известен разделитель дробной части
в С++ это всё делает поток за тебя
достаточно сначала один раз сказать как ему делать, задав свою локаль, а потом вызывать
myfile >> mydoublevariable;
TarasB 29.11.2011 13:33 # 0
Сам, волшебным образом. Просто благодаря своей крестовости, а вовсе не библиотеке, которая и в Дельфи наверняка есть, а если и нет, то дописывается.
bugmenot 29.11.2011 13:35 # 0
bugmenot 29.11.2011 13:37 # 0
TarasB 29.11.2011 13:38 # 0
bugmenot 29.11.2011 13:42 # 0
:-P
defecate-plusplus 29.11.2011 13:44 # +1
но не суть
csv файл на 100500 строк (реально дохуя) в любом формате -> утилита, которая не только читает и пишет, но и перерабатывает (UI, настройка модели с построением графиков, обучение и тестирование нейросети) -> csv файл нужного формата для вывода аналитических результатов в excel
ты предлагаешь csv файл на 100500 строк -> еxcel, обрезка до 65к строк (уже олол), ручные действия по конвертации и сохранению -> утилита на переработку ....
выбран первый алгоритм действий, думаю понимаешь почему
и секретутки с макросами тут не причем
roman-kashitsyn 29.11.2011 12:43 # 0
Но вообще ни разу не приходилось такими вещами заниматься.
guest 29.11.2011 12:23 # 0
ToString(obj) и ToString(obj, utf)
guest 29.11.2011 12:25 # 0
defecate-plusplus 29.11.2011 12:34 # +1
действительно, среда не для школьников
потоки имелись в виду stream, а не thread
TarasB 29.11.2011 13:24 # 0
Я вот утверждать не могу, мне пользоваться не доводилось просто.
guest 29.11.2011 12:35 # 0
TarasB 29.11.2011 12:15 # 0
> дельфишный format позволяет в качестве аргумента передать свой собственный класс, который сам знает как себя выводить?
Нет. Хотя хрен знает, может и можно.
guest 29.11.2011 12:19 # 0
Знаю, нельзя. Но я не хрен.
gegMOPO4 29.11.2011 14:35 # 0
1. Специальный язык позволяет записать форматирование более компактно.
2. Весь вывод в одном месте, поэтому легче модифицируется.
3. Формат можно отделить от кода программы и хранить отдельно.
4. Поэтому легко локализируется.
Недостатки форматной строки:
1. Отсутствует статическая проверка.
2. Формат отделён от данных, поэтому проще внести ошибку при модификации.
3. Язык форматирования практически невозможно расширить.
4. До variadic templates в C++ плохо подходит для пользовательских типов.
Впрочем, с variadic templates и паровоз из << городить нет необходимости.
defecate-plusplus 29.11.2011 14:41 # −1
defecate-plusplus 29.11.2011 14:45 # −1
TarasB 29.11.2011 15:19 # 0
bugmenot 29.11.2011 17:07 # +1
guest 29.11.2011 18:48 # −5
guest 29.11.2011 19:18 # −5
koodeer 29.11.2011 22:00 # 0
> 1. Отсутствует статическая проверка.
> 3. Язык форматирования практически невозможно расширить.
Есть языки, в которых это довольно легко реализуется. С помощью макросов. В частности, Nemerle.
К тому же, то, что названо "язык форматирования" в .NET легко задаётся свой.
roman-kashitsyn 30.11.2011 09:07 # +1
Тут извечный спор Дильфины vs Крестоносцы, для них существует только два языка
gegMOPO4 30.11.2011 23:32 # 0
kipar 07.12.2011 14:54 # 0
defecate-plusplus 07.12.2011 15:05 # 0
и к чему это?
guest 29.11.2011 12:02 # −6
guest 29.11.2011 12:26 # −5
guest 29.11.2011 23:28 # −4
guest 29.11.2011 23:52 # −3