2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5  След.
 
 Re: О модерировании форумных дискуссий на научном уровне
Сообщение29.06.2015, 15:36 
Заслуженный участник
Аватара пользователя


23/07/05
17976
Москва
Magoga в сообщении #1031990 писал(а):
Someone в сообщении #1031774 писал(а):
Где именно? Дайте точную ссылку.


Чуть выше... post1025041.html#p1025041
Я не об этом спрашивал:
Someone в сообщении #1031774 писал(а):
Magoga в сообщении #1031752 писал(а):
Но несколько "крутых специалистов" на этом форуме настаивают на том, что каждый из этих объектов имеет скорость x, а модераторы их поддерживают...
Где именно? Дайте точную ссылку.


мат-ламер в сообщении #1031786 писал(а):
На данном форуме очень любят придираться по мелочам и показать, какие они умные. Программист конечно бы тут не оговорился, поскольку знает, что NULL и 0 вещи совершенно разные.
Видите ли, измерив температуру тела больного и обнаружив, что она находится в пределах нормы, мы обычно говорим, что "температуры нет", но с точки зрения физики это неправильно: температура есть, и мы её только что измерили. То же самое и с кинетической энергией: нулевая кинетическая энергия не означает, что её нет, поскольку мы её измерили или вычислили и обнаружили, что она имеет определённое значение.

Magoga в сообщении #1031990 писал(а):
Вряд ли тут есть смысл применять разделение на 0 и NULL. Кинетическая энергия, как и скорость, - относительная вещь, и можно сказать, что у отдельного тела её вообще нет.
Вы просто настаиваете на своём праве выражаться неправильно. Ну, если Вам доставляют удовольствие подобные дискуссии…

Определение кинетической энергии предполагает фиксацию системы отсчёта, и без системы отсчёта говорить о кинетической энергии нет смысла. Как только Вы произнесли слова "кинетическая энергия", автоматически предполагается, что Вы фиксировали систему отсчёта, даже если Вы об этом не упомянули.

Magoga в сообщении #1031990 писал(а):
Кстати, в случае существования лишь двух объектов, движущихся относительно друг друга, законы сохранения энергии и импульса не работают: в результате взаимодействия, скорость может упасть... Спасение для закона - лишь в том, что сохраняется их общая энергия относительно системы...
Бред.

Magoga в сообщении #1031990 писал(а):
Координатная сетка - чистая выдумка. Другие тела в реальности существуют, но каждое из них может быть добавлено в эту ситуацию... И возникает соображение: неужели, закон сохранения энергии, как и энтропия, имеет статистический характер?
Ещё один бред.

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение29.06.2015, 15:46 
Заслуженный участник
Аватара пользователя


30/01/06
72407
rockclimber в сообщении #1032102 писал(а):
Если я все правильно помню, то если частица находится в суперпозиции состояний, то это значит, что она как бы имеет все состояния сразу (или вообще без "как бы"), можно условно предложить, что никакого состояния у нее нет вообще и обозначить такое состояние null.

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

 Профиль  
                  
 
 Re: О модерировании форумных дискуссий на научном уровне
Сообщение29.06.2015, 17:09 


08/05/08
600
aa_dav в сообщении #1032110 писал(а):
NULL вернется в LEFT/RIGHT JOIN-ах в запросе в случае отсутствия записей для джойна.
Т.е. что то такое о чём он говорит есть, но выразился неуклюже, и получил порцию помидоров.

Неа
мат-ламер в сообщении #1031940 писал(а):
Не имею понятия. Зависит от языка. Я имел в виду язык SQL. Завадая запрос к базе, и получая ответ NULL, делаем вывод, что запрос ничего не нашёл. Если получаем ответ 0, то это значит, что получили единственный ответ и он равен нулю.


Неа. Можно приджойнить и пустую запись , тогда для каждого поля будет is null но из этого не следует, что ничего не нашли (разве что rowid проверять)
Это я о:
select * from dual a
left join (select null f from dual) b on b.f is null

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение29.06.2015, 17:26 


11/12/14
893
ET в сообщении #1032142 писал(а):
Неа


А я об обычном select * from a left join b...
Вопрос о том, как отличить почему появились NULL в b - вследствии отсутствия записей или потому что в колонках действительно NULL уже дело практики.

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 00:13 


01/12/14
255
arseniiv в сообщении #1031947 писал(а):
И есть как минимум ещё один язык, ассоциирующийся с таким (регистрозависимым, иначе их станет гора-аздо больше, что всё только ухудшит) написанием: C (и C++). И уже он показывает одну из проблем: не всякая переменная может хранить NULL (или даже вообще значение с семантикой «пустого значения» в каком-нибудь другом языке), и приведение типов, в том числе неявное, разумеется, не рассматривается.


Компиляторы спокойно принимают для указателей и символов в строке-массиве 0 вместо NULL. Например, можно написать:
Код:
char *p=0;
или
s[0]=0; // не путать с s[0]='0'
Вроде бы, NULL и заменяется компилятором на 0... Единственный смысл существования NULL - чтобы программисты не путали типы.

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 00:53 
Заслуженный участник


20/08/14
11775
Россия, Москва
Нет не единственный. Смысл в том чтобы не запоминать чему именно в каждом компиляторе и в каждой функции равен null (далеко не всегда он равен нулю, бывает равен -1, один из классических примеров - флаг EOF равный 255 или букве "я" в CP1251, до сих попадаются программы не могущие принять русский текст).
Плюс ещё ловля ошибок программиста на стадии компиляции, когда он попытается что-то сделать с null как с обычным числом. Хорошо если просто прочитает/запишет память по такому адресу, тут хоть ОС отловит ошибку защиты, а если по такому смещению в файл данных запишет - никто этому не помешает и не отловит.
Иногда неизвестно заранее какие диапазоны возможных значений не будут использоваться и соответственно чему будет удобно приравнять null (и другие ошибки). И чтобы не править потом весь текст программы работают сразу с символьными именами, а не числами.
А бывает что надо (или могут) использовать все возможные значения возвращаемой переменной и плюс к ней ещё и флаги ошибок нужны. Тогда возвращают сложное состояние, частью которого является нужная переменная, а частью - флаги ошибок. Иногда это всё собирают в одну переменную большей разрядности (например функция возвращает тип char или код ошибки, причём коды имеют значения >MaxChar, а функция на самом деле возвращает int, который потом обрезается до char преобразованием типов компилятором).
Короче много применений спецзначениям. И null тоже.
PS. А уж как там себя ведут какие-то отдельные компиляторы - к делу не относится. Да и "#define null -3" никто не отменял. :-)

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 01:55 
Заслуженный участник
Аватара пользователя


01/09/13
4656
Magoga в сообщении #1032292 писал(а):
Единственный смысл существования NULL - чтобы программисты не путали типы.

Вообще хрень какая-то... Рассмотрим, например, яваскрипт...

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 10:27 
Заслуженный участник


27/04/09
28128
Magoga в сообщении #1032292 писал(а):
Компиляторы спокойно принимают для указателей и символов в строке-массиве 0 вместо NULL.
Я зачем в скобочках добавлял, что неявные преобразования типов не катят?

Magoga в сообщении #1032292 писал(а):
Единственный смысл существования NULL - чтобы программисты не путали типы.
Это действительно не то чтобы неправда, а даже вообще непонятно что означает и как должно быть связано.

-- Вт июн 30, 2015 12:33:36 --

Magoga в сообщении #1032292 писал(а):
или
s[0]=0; // не путать с s[0]='0'
А вот тут 0 как раз приводится к типу char, а не типу указателя ни на char, на на что другое. a[i​] ≡ *(a + i), а не a + i.

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 10:57 
Заслуженный участник
Аватара пользователя


19/12/10
1546
Magoga в сообщении #1032292 писал(а):
Вроде бы, NULL и заменяется компилятором на 0

Если речь о С++, то NULL заменяется на 0 ещё препроцессором, а уже компилятор, при необходимости, заменяет ноль нулевым указателем, который не всегда представлен строкой нулевых битов.

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 12:32 
Заслуженный участник


27/04/09
28128
(Лучше сказать, что препроцессором NULL заменяется на всё-таки (void*) 0, а не простой ноль.)

-- Вт июн 30, 2015 14:38:50 --

(Хотя, конечно, смотря какие заголовки подсунуть.)

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 12:45 
Заслуженный участник
Аватара пользователя


19/12/10
1546
В С это так, а в С++:
Используется синтаксис C++
/* Define NULL pointer value */
#ifndef NULL
#ifdef __cplusplus
#define NULL    0
#else
#define NULL    ((void *)0)
#endif
#endif

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 12:51 
Заслуженный участник
Аватара пользователя


06/10/08
6422
arseniiv в сообщении #1032401 писал(а):
(Лучше сказать, что препроцессором NULL заменяется на всё-таки (void*) 0, а не простой ноль.)
Может и на простой.
Стандарт C99 писал(а):
6.3.2.3.3 An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant. If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to any object or function.
Стандарт C99 писал(а):
7.17.1 The following types and macros are defined in the standard header <stddef.h>. [...]
7.17.3 The macros are NULL, which expands to an implementation-defined null pointer constant; [...]


А в C++ только целые константы со значением 0 является null pointer constant, в C++11 еще и константы типа std::nullptr_t.

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 14:18 
Аватара пользователя


22/09/09

1907
C, C++ и многие другие более молодые языки содержат много расширений, усовершенствований и улучшений, которые предположительно облегчают решение практических задач на этих языках, но усложняют и даже затуманивают их описание. Поэтому лучше обратиться к основам - стандартному Паскалю, где строгая типизация данных, и вместо NULL для переменных ссылочных типов используется ключевое слово nil, означающее, что данная ссылка пустая, т.е. не ссылается ни на какую переменную. Нпр.,
Цитата:
Код:
<дерево> ::= ( <данные> <дерево> <дерево> ) | nil

То есть двоичное дерево либо является пустым, либо состоит из данных и двух поддеревьев (каждое из которых может быть пустым). (Википедия, двоичное дерево)
При строгой типизации данных непосредственное присвоение nil переменной нессылочного (нпр, целочисленного) типа запрещено. Однако обычно в компиляторы добавляют библиотечную функцию преобразования данных ссылочного типа, возращающую логический адрес ОЗУ (из пространства данных программы). В случае такого преобразования nil обычно соответствует нулевому, т.е. несуществующему адресу. Во многих компиляторах Паскаля (нпр., Pascal-8000 для IBM 360/370, MPW Pascal для классического Макинтоша и т.д.) было еще одно похожее удобство, сильно облегчающее отладку: опция, при влючении которой во все неинициализированные переменные записывались единицы (или другой код, лежащий вне разрядной сетки). Попытка присвоения такого значения неинициализированной переменной другой переменной вызывало ошибку времени выполнения. Похожий механизм это NaN в IEEE 754.

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 15:02 
Заслуженный участник
Аватара пользователя


30/01/06
72407
bin в сообщении #1032436 писал(а):
C, C++ и многие другие более молодые языки... Поэтому лучше обратиться к основам - стандартному Паскалю...

Паскаль появился в 1970 году.
Си - в 1972 году.
Более точно даже так: Паскаль разработан в 1968-1969, опубликован в 1970. Си разработан в 1969-1973, в 1973 использован на практике (на него переписано ядро Unix).
Стандарт Паскаля появился в 1974 (версия Вирта) и в 1982 (ISO). Книга K&R ("неформальный стандарт" Си) появилась в 1978.
Таким образом, грубо говоря, Си и Паскаль ровесники, а строго говоря, стандартный Паскаль моложе, чем Си.
Для примера, первые языки: Фортран - 1957, Алгол - 1958, Лисп - 1959, Кобол - 1961.
Примеры молодых языков: Hack, Swift - 2014, Ceylon - 2011, Rust - 2010, Go - 2009, F# - 2005, C#, D - 2000.

-- 30.06.2015 15:05:37 --

bin в сообщении #1032436 писал(а):
вместо NULL для переменных ссылочных типов используется ключевое слово nil

Слова null и nil близки по смыслу в английском языке, просто первое - прилагательное, а второе - существительное (используется и как предикат). При этом nil более разговорно, а null имеет и юридический смысл: "недействительный, не имеющий законной силы".

Скорее всего, для переменных ссылочных типов больше подходит как раз ключевое слово null, а вот ключевое слово nil пришло из языка Лисп, где использовалось как "нетипизированное" - для разных целей и разных типов, включая логическое значение "ложь".

 Профиль  
                  
 
 Re: Про NULL, etc (из http://dxdy.ru/topic96783.html)
Сообщение30.06.2015, 23:59 


01/12/14
255
Someone в сообщении #1032119 писал(а):
Где именно? Дайте точную ссылку.


Читайте там же:
Oleg Zubelevich в сообщении #1025041 писал(а):
так и есть, кинетическая энергия тела разная в разных СО

В той СО, где тело имеет кинетическую энергию, оно не покоится.


Someone в сообщении #1032116 писал(а):
То же самое и с кинетической энергией: нулевая кинетическая энергия не означает, что её нет, поскольку мы её измерили или вычислили и обнаружили, что она имеет определённое значение.


В принципе, с этим можно согласиться, но несогласные ссылаются не на различия между NULL и 0, а на существование другой СО, в которой тело не покоится.

Можно согласиться, а можно подумать, и продолжить обсуждение разницы между NULL и 0. Понятие "покоящиеся тела" можно рассматривать как категорию (класс), в которой скорость автоматически предопределена, поэтому свойств "скорость", "кинетическая энергия" и "импульс" нет. Никто же не спрашивает "какова скорость покоящегося тела"... А у конкретного тела эти свойства есть.

Someone в сообщении #1032116 писал(а):
Определение кинетической энергии предполагает фиксацию системы отсчёта, и без системы отсчёта говорить о кинетической энергии нет смысла. Как только Вы произнесли слова "кинетическая энергия", автоматически предполагается, что Вы фиксировали систему отсчёта, даже если Вы об этом не упомянули.

По сути, я говорю то же самое, но называю причины такого подхода. И это - аргумент против ссылок на существование других СО.

Someone в сообщении #1032116 писал(а):
Бред.


Someone в сообщении #1032116 писал(а):
Ещё один бред.


Голословно и неконкретно. То, что закон сохранения энергии в системе отсчёта выполняется, я и сама написала. С чём же Вы не согласны?

Вы не согласны с тем, что универсальных систем отсчёта в реальности не существует? Если согласны - предложите своё толкование, иначе, при отсутствии объяснений, понятия "кинетическая энергия", "импульс" и "скорость", а с ними - законы сохранения энергии и импульса, окажутся несуществующими в реальности.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Модератор: Модераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group