|
|
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy denXDiaBLoА вот и форич, из той же самой библиотеки с лямбдами И как, этой радостью можно пользоваться в любых коллекциях? Или только специальных из этой же библиотеки? Не поддеваю, а правда интересно.в любых коллекциях, совместимых со стандартом stl. Собственно, foreach и входит в состав stl. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:07:44 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
XDiaBLo А кто сказал: "В том же паскале есть чудесная операция div, которая возвращает остаток."? Это ведь тоже самое что %. Тьфу ты, ошибся. Хотел сказать, что функция div возвращает результат от деления нацело, т.е. без остатка. Это отдельная по логике операция и используется она отдельно от деления. А деление возвращает то что и должно-дробное число. С моей точки зрения, деление и деление нацело это разные действия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:08:25 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy denXDiaBLo А кто сказал: "В том же паскале есть чудесная операция div, которая возвращает остаток."? Это ведь тоже самое что %. Тьфу ты, ошибся. Хотел сказать, что функция div возвращает результат от деления нацело, т.е. без остатка. Это отдельная по логике операция и используется она отдельно от деления. А деление возвращает то что и должно-дробное число. С моей точки зрения, деление и деление нацело это разные действия. Так всё правильно. А производится деление дробное, или нацело, зависит от типов переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:16:00 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
egorychzloy den, С++ - это язык со статической типизацией переменных, это-то вы помните, я надеюсь? Тип переменной задаётся в момент её объявления в программе и не может быть изменён. Этот принцип лежит в основе языка, вне зависимости от того, нравится это вам ( или мне ) или нет, поэтому, когда мы пишем Код: plaintext Насколько я знаю, в паскале точно такая-же ситуация с делением, как и в С, поэтому отсылки к нему в данном вопросе неуместны. В С также есть оператор взятия остатка от деления, о чём вам уже XDiaBLo сказал. Если мы отделяем мух от котлет, то давайте не будем требовать от статически типизированного языка свойств языка с динамической типизацией. Нет уж. Паскаль как раз скажет (в момент компиляции) что результат 2/3-это дробное число и нефиг присваивать его целочисленной переменной. Так что ничего сверхъестественного я не прошу. И именно в паскале, я пишу оператор целочисленного деления, когда по логике должно быть целочисленное деление. Представьте, что вы решили просто поменять тип переменной на целый. с++ сожрет деление с ней и не подавится, а вы как дурак будете искать почему у вас результат совсем не такой, как был раньше. А паскаль выдал бы ошибку и вам не пришлось бы ковыряться с дебаггером или вспоминать детали реализации функций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:16:50 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
egorychzloy denXDiaBLoА вот и форич, из той же самой библиотеки с лямбдами И как, этой радостью можно пользоваться в любых коллекциях? Или только специальных из этой же библиотеки? Не поддеваю, а правда интересно.в любых коллекциях, совместимых со стандартом stl. Собственно, foreach и входит в состав stl. Точняк, а я даже и не подумал в STL глянуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:19:54 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy den Нет уж. Паскаль как раз скажет (в момент компиляции) что результат 2/3-это дробное число и нефиг присваивать его целочисленной переменной. Так что ничего сверхъестественного я не прошу. И именно в паскале, я пишу оператор целочисленного деления, когда по логике должно быть целочисленное деление. Представьте, что вы решили просто поменять тип переменной на целый. с++ сожрет деление с ней и не подавится, а вы как дурак будете искать почему у вас результат совсем не такой, как был раньше. А паскаль выдал бы ошибку и вам не пришлось бы ковыряться с дебаггером или вспоминать детали реализации функций Кардинальный недостаток С++. Из-за смены типа переменной, меняется поведение программы. Как странно. Пора этому раритету на свалку истории. Ведёт себя неадекватно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:21:59 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
XDiaBLo Кардинальный недостаток С++. Из-за смены типа переменной, меняется поведение программы. Как странно. Пора этому раритету на свалку истории. Ведёт себя неадекватно! Да, я считаю что это неадекватно, менять поведение в зависимости от типа переменной, при этом ничего не говоря. Как тут уже говорили, это статически типизированный язык, поэтому компилятор, заметив что тип изменился, мог бы и выдать ругательство типа "Эта переменная не соответствует типу возвращаемой переменной". Нет же, он спокойно сжирает это, меняя на ходу логику работы на целочисленные остатки и спокойно компилируется. Если бы не было примеров нормальной работы в данной ситуации, то это могло бы считаться нормальным, но примеров полно. Честно слово, добавить отдельный оператор целочисленного деления было бы несложно. Но решили воткнуть "все в одном", в итоге получаем смешение мух и котлет. Опять же, в низкоуровневых языках, типа си, я это понимаю. Но зачем было тянуть это в шарп? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:32:48 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy denПредставьте, что вы решили просто поменять тип переменной на целый. с++ сожрет деление с ней и не подавится, а вы как дурак будете искать почему у вас результат совсем не такой, как был раньше. А паскаль выдал бы ошибку и вам не пришлось бы ковыряться с дебаггером или вспоминать детали реализации функций Друг, такой проблемы реально не существует. Работая с предметной областью ты работаешь с определённым типом данных. Бухгалтерия - currency и decimal. Наука - float и double. Общесистемное программирование - всякие там integer, dword, qword указатели. И когда ты складываешь или делишь числа, надо понимать, в каком контексте ты работаешь и, соотв. уметь ДАТЬ СМЫСЛ полученному результату. В этом плане С++ близок к работе с РАЗМЕРНОСТЯМИ (в физике например). В противоположность - языки семейства Delphi-Pascal позволяют этот фундаментальный принцип нарушить и получить как в том детском стишке "Ответ: 2 землекопа и 2/3". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:40:51 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy den, а, вот вы о чём, понял вас. Неявное приведение типов - да, известное зло, тянется, понятное дело, из С, прямым наследником которого С++ сделан сознательно. Зачем тащить такое поведение в шарп, мне тоже, честно говоря, не очень понятно. Видимо, ради того, чтобы не отпугнуть переходящих на него плюсистов и сишников непривычным поведением простейшей арифметической операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:46:19 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
mayton Друг, такой проблемы реально не существует. Работая с предметной областью ты работаешь с определённым типом данных. Бухгалтерия - currency и decimal. Наука - float и double. Общесистемное программирование - всякие там integer, dword, qword указатели. И когда ты складываешь или делишь числа, надо понимать, в каком контексте ты работаешь и, соотв. уметь ДАТЬ СМЫСЛ полученному результату. В этом плане С++ близок к работе с РАЗМЕРНОСТЯМИ (в физике например). В противоположность - языки семейства Delphi-Pascal позволяют этот фундаментальный принцип нарушить и получить как в том детском стишке "Ответ: 2 землекопа и 2/3". Может и да, но все-таки у меня есть подозрение, что 2 и 2/3 землекопа заставят задуматься, не надо ли нам случайно 3х? А простейший пример-был товар в мешках, программист решил что может быть и полмешка и поставил дробные числа. Потом выяснилось, что мешки продают только целыми. Решил поменять на целые числа и получил гадость. Разве нереалистичный пример? Если можно, приведите мне пример когда деление нацело действительно оправдано как стандартная операция? Кольца целых чисел? Поля Галуа? Действительно интересно, где еще это может понадобиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:57:17 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
egorychzloy den, а, вот вы о чём, понял вас. Неявное приведение типов - да, известное зло, тянется, понятное дело, из С, прямым наследником которого С++ сделан сознательно. Зачем тащить такое поведение в шарп, мне тоже, честно говоря, не очень понятно. Видимо, ради того, чтобы не отпугнуть переходящих на него плюсистов и сишников непривычным поведением простейшей арифметической операции. Собственно, я намеренно не влезал в холивар чтобы не трогать с++-программистов, пока не упомянули шарп как наследника с++, а потом вытащили эту особенность(упомянутую изначально как несоответсвие моим вкусам) и стали обсуждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 16:01:34 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy denЕсли можно, приведите мне пример когда деление нацело действительно оправдано как стандартная операция?бинарный поиск, к примеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 16:09:56 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
egorychzloy denЕсли можно, приведите мне пример когда деление нацело действительно оправдано как стандартная операция?бинарный поиск, к примеру Это тот, который в массивах? Маловато для того чтобы стало трендом имхо. Хотелось вы примеров вычислений в целочисленных (но не двоичных) полях и т.д. и т.п. Желательно с какой-нибудь практической целью. Может, действительно проникнусь и начну кричать на форумах что 2/3=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 16:34:30 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy denХм, не смешите. Борланд проиграл не потому что дельфи был плохой продукт, а потому что их менеджеры- идиоты, все-таки не смогли выехать на спинах программистов, как делали больше десятилетия до этого. борланд проиграл за счет попыток внедрить как можно больше возможностей в стандарт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 17:09:30 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
XDiaBLo2) Хмм, не в курсе. это примерно функция, только без имени. т.е. компилятор автоматом доставляет рандом. иногда используется в яве, но очень неудобно (в яве) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 17:11:18 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy den(пропущен глупый текст) ЛОЛ! вы сперва ставите задачу, а потому удивляетесь, как вы ее поставили. си/сипп тут НИ ПРИ ЧЕМ. пишете много, а по делу ничего. краткая справка для (начинающих): 1) целое деление 2/3 == 0 2) остаток от целого деления 2%3 3) нецелое деление 2.0/3.0 или 2.0/3 или 2/3.0 или double(2)/3 и т.д. 4) остаток от нецелого деления float a; int b; int(a)%int(b) или a - round(a/b)*b ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 17:17:10 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy denXDiaBLoА вот и форич, из той же самой библиотеки с лямбдами И как, этой радостью можно пользоваться в любых коллекциях? Или только специальных из этой же библиотеки? Не поддеваю, а правда интересно. вам известна такая штука: template? вопрос неуместен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 17:17:41 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy denПаскаль как раз скажет (в момент компиляции) что результат 2/3-это дробное число и нефиг присваивать его целочисленной переменной. а нахрена такое надо ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 17:19:22 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy denДа, я считаю что это неадекватно, менять поведение в зависимости от типа переменной, при этом ничего не говоря. в мемориз! вас на башорг надо string/string - это double а тогда какой тип должен быть у операции: complex a, b; a/b = ??? это же double !!! а не комлекс zloy den(опять очень много глупого текста) кстати, если вы присвоите int i = 2/3.0; вы будете уведомлены о несоответсии типов. вы НЕ знаете си/сипп, но пытаетесь чего то говорить. пока кроме 2/3 == 0 ничего дельного не сказали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 17:23:39 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
zloy denМожет, действительно проникнусь и начну кричать на форумах что 2/3=0 а небо синее. а листья зеленые. и все равно будете не правы: не = а == программисту НАДО чтобы было целочисленное деление. (а иначе 2/3.0). к тому же бывает критично для скорости. я встречал программы, где замена double на int давала ускорение в 4,2 раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 17:26:47 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
eee-pcпрограммисту НАДО чтобы было целочисленное деление. (а иначе 2/3.0). к тому же бывает критично для скорости. я встречал программы, где замена double на int давала ускорение в 4,2 раза. Всё зависит от предметной области. Например оптимизация знаменитой игры Doom была проведена так. Все вещественные операции были заменены на нормированные целые. (Например угол измерялся на в радианах а в целых от -32768 до 32767. Операции деления и умножения работали с числами в формате INT32 c fixpoint). Благодаря этому игра довольно сносно бегала на 386DX с 33 Мгц частоты и не использовала FPU, который комплектовался motherboards в те времена опционально и за отдельные деньги. Ну и псевдо-3D графика также была отшлифована на "целочисленных" алгоритмах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 18:06:24 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
eee-pc У вас классический пример . Вам не кажется, что присваивать моим словам смысл, которого в них нет, нехорошо? Краткую справку могли не приводить, это я еще помню. Отличный пример как простые действия можно сделать неудобными. Пример на паскале: 1. 2 div 3 2. 2 mod 3 3. 2/3 4. a mod b Насчет второго и четвертого вариантов я не уверен точно(давно уже не писал на паскале), но вроде так. Понятно о чем я говорю, когда утверждаю что в с++ это сделано несколько неудобно? Какого черта вы мне бред про string/string приписываете? Уровень моего знания с++ вы определить не можете. Максимум- вымышленному персонажу, которого вы отождествляете со мной. Если что-то надо, то переопределяйте операторы как вам надо, или (имхо, лучше) используйте функции делающие нужное вам действие. Просто в таком распространенном случае могли бы и пойти навстречу разработчикам. Насчет борланда- или вы выкладываете развернутое объяснение, почему они прогорели из-за расширения языка, или не мелите чепухи(это как минимум очень второстепенная причина). Вернемся к дискуссии, как только вы перестанете приписывать мне бред собственного сочинения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 18:09:41 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
clihltНастя the best, Э-э-э... не всем прогам надо работать с БД. а похапэ - самый глобальный и самый надежный! работу по нему - навалом после одинэски конечно а десктоп пролжения можно на точконете, аксесе или делфи писать - смотря какие требоватия Яву и кресты все ненавидят и стараются избегать их использования кто делал эти рейтинги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 22:12:09 |
|
||
|
Все таки с++ теряет актуальность
|
|||
|---|---|---|---|
|
#18+
eee-pczloy denЭто говорит лишь о консервативности создателей с++ и людей программирующих на нем. В других языках полно возможностей, которых в с++ нет и не предвидится в делфи, например, полно возможностей. и где он сейчас. ?))) как я уже написал, судьба борланда постигнет яву и дотнет. а си/сипп останется. полно возможностей - не всегда хорошо, если эти возможности не работают. (или каждая версия возможностей не поддерживает предыдущую) делфи изначально был мертвяком 1) дороговизна 2) основан на паскале 3) глюк на глюке и глюком погоняет 4) Баттон1Клик-нутость всего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 22:20:36 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36157103&tid=1344233]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
143ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 405ms |

| 0 / 0 |
