Русскоязычный форум закрыт из-за отсутствия активности (доступен только для чтения).
Пожалуйста, пользуйтесь англоязычной его версией. Приносим извинения за неудобства
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Вход


Опции
К последнему сообщению К первому непрочитанному
Offline 213052500  
#1 Оставлено : 20 марта 2014 г. 11:14:38(UTC)
213052500

Статус: Newbie

Группы: Registered
Зарегистрирован: 13.04.2012(UTC)
Сообщений: 8
Откуда: Russia

Сказал(а) «Спасибо»: 1 раз
SMath Studio Desktop v.0.97 (сборка: 5154). MS Windows 7 x64

1. Перевод отрицательных С в К неверен.
2. Разность положительных и отрицательных С неверна.
3. В больших формулах единицы измерения С переводятся в К. При попытке прописать С получается: (К/С)*С
Пользователь 213052500 прикрепил следующие файлы:
Температурный баг.jpg

Wanna join the discussion?! Login to your Форум проекта SMath forum account. Новые регистрации запрещены.

Offline mikekaganski  
#2 Оставлено : 20 марта 2014 г. 12:54:24(UTC)
mikekaganski


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 19.03.2012(UTC)
Сообщений: 112
Мужчина
Российская Федерация
Откуда: Khabarovsk, Russia

Сказал «Спасибо»: 130 раз
Поблагодарили: 33 раз в 29 постах
Нет, это не баг, это особенность приоритета операций программы.
В ней приоритет унарного минуса (-X) равен приоритету бинарного (X-Y) и меньше приоритета умножения (в частности, назначение единицы измерения - это операция умножения). Т.е. -10°C = -(10°C) = -((10+273.15)*K) = -(283.15*K).
Для корректного задания отрицательных температур по Цельсию необходимо заключать всё числовое значение вместе с минусом в скобки, задавая явный порядок вычисления: (-10)°C.

Хотя этот приоритет и необычен (в большинстве программ это не так), однако никакими законами и нормативами этот порядок не оговорён, так что это - решение автора (хотя и приводящее к частым повторениям одного и того же на этом форуме, например http://ru.smath.info/for...ta-unarnogho-minusa.aspx).

Что касается пункта 3, нужен пример. Мне кажется, что Вы просто забыли апостроф перед градусами.

P.S. А насчёт последней строки Вашего скриншота - это правильно в принципе. Температура в градусах Цельсия - это вариант отображения абсолютного значения некой температуры. Разности температур НЕЛЬЗЯ представлять градусами Цельсия, а то, что у нас вся техническая литература (и в т.ч. нормативная) нафарширована температурными разностями, выраженными в градусах Цельсия - это неумение авторов строго мыслить и незнание основ метрологии. Дескать, всё равно размер градуса один, чего ж тут мудрить?
А ответьте на вопрос, чему должна равняться сумма 5°C+5°C? Все единицы перед расчётом приводятся к базовым, в данном случае - к Кельвинам. Я тут изобразил нагрев тела, имеющего температуру 5°C, на 5 градусов? Или сумму приращений температуры, например, за счёт конвективного и радиационного теплообменов? В первом случае это выражение должно читаться как (273,15+5)K + 5К, а во втором - как 5K + 5K! А с чего вдруг? И как программа это осознает?

Отредактировано пользователем 20 марта 2014 г. 13:28:46(UTC)  | Причина: Не указана

С уважением,
Михаил Каганский
thanks 1 пользователь поблагодарил mikekaganski за этот пост.
kasper оставлено 31.03.2014(UTC)
Offline 213052500  
#3 Оставлено : 20 марта 2014 г. 13:48:27(UTC)
213052500

Статус: Newbie

Группы: Registered
Зарегистрирован: 13.04.2012(UTC)
Сообщений: 8
Откуда: Russia

Сказал(а) «Спасибо»: 1 раз
Насчет пункта 3.

Думаю, будет понятно.
Пользователь 213052500 прикрепил следующие файлы:
Вопрос 3.jpg
Offline 213052500  
#4 Оставлено : 20 марта 2014 г. 14:03:41(UTC)
213052500

Статус: Newbie

Группы: Registered
Зарегистрирован: 13.04.2012(UTC)
Сообщений: 8
Откуда: Russia

Сказал(а) «Спасибо»: 1 раз
Черт подери, Вы правы!
Offline mikekaganski  
#5 Оставлено : 20 марта 2014 г. 14:08:03(UTC)
mikekaganski


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 19.03.2012(UTC)
Сообщений: 112
Мужчина
Российская Федерация
Откуда: Khabarovsk, Russia

Сказал «Спасибо»: 130 раз
Поблагодарили: 33 раз в 29 постах
А, понятно. А зачем? Вы хотите увидеть другое числовое значение? Или это просто желание оформить "как по книжке"? Правильно переводить не в C*кДж, а в K*кДж.

Здесь программа всё правильно делает. Перевод обычных единиц измерения - например, длин - это просто операция домножения на некий переводной коэффициент. Например, 1 дюйм = 25,4 мм.

А перевод между Цельсием и Кельвином - это операция домножения на 1 (поскольку размер величина единицы одинакова) и прибавления 273,15, т.е. это сложная операция. И опять-таки, градусы Цельсия - это не просто абстрактные градусы, а вполне конкретная степень нагретости. Каждый раз, когда Вы видите запись X°C, это означает "на X кельвинов больше, чем ноль по Цельсию". В таких единицах нельзя представлять Ваше произведение.

Не очень представляю физическую сущность этого примера (может быть, это именно просто пример?), но, скажем, кДж/(кг*К) - это количество энергии, требуемое для изменения температуры единицы массы на 1 К. А кДж/(кг*°C) - это невообразимый фарш, который можно попытаться выразить как "количество энергии, требуемое для изменения температуры единицы массы на 1 градус выше нуля по Цельсию" - это как?
С уважением,
Михаил Каганский
Offline 213052500  
#6 Оставлено : 20 марта 2014 г. 14:38:01(UTC)
213052500

Статус: Newbie

Группы: Registered
Зарегистрирован: 13.04.2012(UTC)
Сообщений: 8
Откуда: Russia

Сказал(а) «Спасибо»: 1 раз
Согласен с Вами. Будем исправлять книги.
Offline Санёк  
#7 Оставлено : 22 марта 2014 г. 0:36:49(UTC)
Санёк

Статус: Newbie

Группы: Registered
Зарегистрирован: 18.03.2014(UTC)
Сообщений: 5
Российская Федерация
Откуда: Саратов

я тоже заметил этот баг два дня назад,
для примера можете просто 1°С+1°С= ... и получается интересный ответ.
Offline mikekaganski  
#8 Оставлено : 22 марта 2014 г. 0:57:53(UTC)
mikekaganski


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 19.03.2012(UTC)
Сообщений: 112
Мужчина
Российская Федерация
Откуда: Khabarovsk, Russia

Сказал «Спасибо»: 130 раз
Поблагодарили: 33 раз в 29 постах
Не знать - это нормально. Это здорово, если человек чего-то не понимает и пытается это узнать, спрашивая других.

Но всегда странно видеть, как человек открывает страницу форума, где всего в шести сообщениях раскрывается вопрос, но не даёт себе труда просто прочитать эти сообщения, и отправляет бессмысленное повторение неправильных утверждений ("это - баг" ) и в точности разобранных примеров (1°С+1°С= ...).

А вот интересно, что бы Вы ожидали от конструкции типа 1°С+1°F, и чем ответ должен отличаться для 1°F+1°С?
С уважением,
Михаил Каганский
Offline Санёк  
#9 Оставлено : 22 марта 2014 г. 15:16:04(UTC)
Санёк

Статус: Newbie

Группы: Registered
Зарегистрирован: 18.03.2014(UTC)
Сообщений: 5
Российская Федерация
Откуда: Саратов

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

А вот интересно, что бы Вы ожидали от конструкции типа 1°С+1°F, и чем ответ должен отличаться для 1°F+1°С?
=> но никак ни минус
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.