Статус: Newbie
Группы: Registered
Зарегистрирован: 13.04.2012(UTC) Сообщений: 8 Откуда: Russia
Сказал(а) «Спасибо»: 1 раз
SMath Studio Desktop v.0.97 (сборка: 5154). MS Windows 7 x64
1. Перевод отрицательных С в К неверен.
2. Разность положительных и отрицательных С неверна.
3. В больших формулах единицы измерения С переводятся в К. При попытке прописать С получается: (К/С)*С
Пользователь 213052500 прикрепил следующие файлы:
Статус: 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)
| Причина: Не указана
С уважением, Михаил Каганский
1 пользователь поблагодарил mikekaganski за этот пост.
kasper оставлено 31.03.2014(UTC)
Статус: Newbie
Группы: Registered
Зарегистрирован: 13.04.2012(UTC) Сообщений: 8 Откуда: Russia
Сказал(а) «Спасибо»: 1 раз
Насчет пункта 3.
Думаю, будет понятно.
Пользователь 213052500 прикрепил следующие файлы:
Статус: Newbie
Группы: Registered
Зарегистрирован: 13.04.2012(UTC) Сообщений: 8 Откуда: Russia
Сказал(а) «Спасибо»: 1 раз
Статус: 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 градус выше нуля по Цельсию" - это как?
С уважением, Михаил Каганский
Статус: Newbie
Группы: Registered
Зарегистрирован: 13.04.2012(UTC) Сообщений: 8 Откуда: Russia
Сказал(а) «Спасибо»: 1 раз
Согласен с Вами. Будем исправлять книги.
Статус: Newbie
Группы: Registered
Зарегистрирован: 18.03.2014(UTC)
Сообщений: 5
Откуда: Саратов
я тоже заметил этот баг два дня назад, для примера можете просто 1°С+1°С= ... и получается интересный ответ.
Статус: Advanced Member
Группы: Registered
Зарегистрирован: 19.03.2012(UTC)
Сообщений: 112
Откуда: Khabarovsk, Russia
Сказал «Спасибо»: 130 раз Поблагодарили: 33 раз в 29 постах
Не знать - это нормально. Это здорово, если человек чего-то не понимает и пытается это узнать, спрашивая других. Но всегда странно видеть, как человек открывает страницу форума, где всего в шести сообщениях раскрывается вопрос, но не даёт себе труда просто прочитать эти сообщения, и отправляет бессмысленное повторение неправильных утверждений ("это - баг" ) и в точности разобранных примеров (1°С+1°С= ...). А вот интересно, что бы Вы ожидали от конструкции типа 1°С+1°F, и чем ответ должен отличаться для 1°F+1°С?
С уважением, Михаил Каганский
Статус: Newbie
Группы: Registered
Зарегистрирован: 18.03.2014(UTC)
Сообщений: 5
Откуда: Саратов
Это просто, что когда делаешь расчет в которой есть данные зависимые от температуры и потом сидишь и думаешь что не так как ответ не правильный и теряешь время для нахождения ошибки, а оказалось просто баг с температурой в програмке. А вот интересно, что бы Вы ожидали от конструкции типа 1°С+1°F, и чем ответ должен отличаться для 1°F+1°С? => но никак ни минус
Быстрый переход
Форум проекта SMath
SMath Studio
- Скачать SMath Studio
--- Архив
--- Ночные сборки
- Примеры использования
- Вопросы по использованию
- Предложения
- Ошибки
Математика
- Документы
- Алгоритмы
- Математические задачи
Общение
- О проекте
- Общение
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.