powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / У Cache своя математика?
25 сообщений из 36, страница 1 из 2
У Cache своя математика?
    #37054256
coder1cv8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
WTF() public
{
	// Изучаем математику  5 -й класс
	s price =  100 
	s quant =  1 
	s sum =  95 
	s disc =  100  - (sum *  100 ) / (price * quant)
	w "discount percent = "_disc
}
Даже не знаю что сказать...
В математике установлен определенный порядок выполнения математических действий при любой записи действий над числами. Для основных арифметических действий установлен следующий порядок: сначала выполняется возведение числа в степень, затем выполняется умножение и деление и в самую последнюю очередь выполняется сложение и вычитание.
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054305
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coder1cv8 , это не "математика"... Это простой приоритет операций. В Кащее его практически нет... Разве что унарные операции приоритетнее бинарных.
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054308
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
s disc = (100 - (sum * 100)) / (price * quant)
Вот и вся проблема...
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054309
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, и это описано в документации. Скорее всего особенность наследована с M систем.
Приоритетов операций нет (исключение, пожалуй, "." обращение к полю и методу объекта).
Сначала это удивляло, сейчас кажется не более страшным, чем ломать голову на приоритетами (а операций гораздо больше, чем +-*/, о которых написано в учебнике 5го класса)

>w 3>2+3
4
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054315
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или вовсе вот так

Код: plaintext
s disc = -sum * 100 + 100  / price / quant
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054320
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa, мне кажется, что лучше явно ставить скобки, меньше проблем будет при исправлении.
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054324
coder1cv8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы считаете это нормальным? )
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054340
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подозреваю, изменение приоритетов крайне плохо скажется на совместимости старых программ и новых версий каше.
Скобки - это нормально, явный приоритеты лучше неявных.
При неявных приоритетах все равно есть возможность ошибки, и эта вероятность не меньше.
О приоритетах в каше достаточно просто знать, дальше это не вызывает особых проблем.
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054414
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.мне кажется, что лучше явно ставить скобки, меньше проблем будет при исправлении.
Я бы написал

Код: plaintext
s disc = ( 100  - (sum *  100 )) / (price * quant)

Второй пример максимальная "иллюстация" возможного, не более того...
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054420
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coder1cv8Вы считаете это нормальным? )
Это объективная реальность данная нам в ощущении... (с) (1909) В. И. Ленин

Т.е. другого у нас просто нет.
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054439
coder1cv8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н. ,

Это вызывает проблемы когда о таких багах фичах узнаешь только по странным цифрам в данных (тьфу-тьфу, на этапе тестирования). Я хочу сказать, что даже при моем непродолжительном знакомстве с Cache, эта система постоянно подставляет "подножки" ну в совершенно неожиданных местах!
Здесь кто-то говорил о нетребовательности Cache к качеству кода, легкости "вхождения" и т.д., ха-ха, я бы с этим поспорил. После той же Java или даже (о боже!) 1С, отсутствие таких базовых механизмов вызывает, мягко говоря, легкое недоумение. Я уже не говорю о "дружелюбности" к разработчику, с такой IDE говорить об этом просто смешно!
При такой-то стоимости системы, могу еще много рассказать про ляпы и откровенные баги, подтвержденные саппортом, но не буду. Понятно что фанатов убедить в чем-то сложно, сам такой ) Прошу не воспринимать это слишком серьезно, просто накипело )
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054443
coder1cv8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaЯ бы написал

Код: plaintext
s disc = ( 100  - (sum *  100 )) / (price * quant)

Второй пример максимальная "иллюстация" возможного, не более того...
И я так написал, как написать вопросов нет )
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054467
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coder1cv8Прошу не воспринимать это слишком серьезно, просто накипело
Не стоит валить все в кучу... Уж кто, кто... А приоритеты тут точно ни при чем...
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054579
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coder1cv8 ,

Уже было .
coder1cv8Даже не знаю что сказать...Увидев поведение, которое не ожидалось, достаточно сделать поиск в документации по фразе Operator Precedence , чтобы понять в чём дело.
Цитата из документации You may be surprised to learn that ObjectScript\'s rules for operator precedence are different than those in other languages: there aren\'t any!
PS: Посмотрите ещё Re: Какой у вас результат ычисления вот этого: 36/-4/3 ? (в ветке есть несколько моих сообщений).
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054641
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему все пишут про отсутствие приоритетов ?

Если явно не указано скобками он считает справа налево.
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054663
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coder1cv8Это вызывает проблемы когда о таких багах фичах узнаешь только по странным цифрам в данных (тьфу-тьфу, на этапе тестирования). Я хочу сказать, что даже при моем непродолжительном знакомстве с Cache, эта система постоянно подставляет "подножки" ну в совершенно неожиданных местах!

Дык извините, если пишите на COS, а не на встроенном BASIC, то как бы RTFM.

Operator Precedence

Operator precedence in ObjectScript is strictly left-to-right; within an expression operations are performed in the order in which they appear. This is different from other languages in which certain operators have higher precedence than others. You can use explicit parentheses within an expression to force certain operations to be carried ahead of others.
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054744
Константин Цветков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Код: plaintext
s disc = (100 - (sum * 100)) / (price * quant)
Вот и вся проблема... Занесло совершенно случайно, но правильная запись:
Код: plaintext
s disc = 100 - ((sum  / (price * quant)) * 100 )
Вы не находите?
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054754
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЦветковВы не находите?
Нет...

Потому как даже автор уже написал

coder1cv8krvsaЯ бы написал

Код: plaintext
s disc = ( 100  - (sum *  100 )) / (price * quant)

Второй пример максимальная "иллюстация" возможного, не более того...
И я так написал, как написать вопросов нет )
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054764
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Цветков , хотя х/з чего именно хотел автор... Потому как полученый результат его не порадовал... А мне уже "мешает" кащейское м Ы шление...
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37054935
coder1cv8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Константин ЦветковЗанесло совершенно случайно, но правильная запись:
Код: plaintext
s disc = 100 - ((sum  / (price * quant)) * 100 )
Вы не находите?
Да, это опечатка. Сам подтвердил не посмотрев внимательно )
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37055410
Константин Цветков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Константин Цветков , хотя х/з чего именно хотел автор... Это важное свойство программиста — знать больше, чем (нужное подставить). Автор хотел посчитать процент скидки: 100 - процент от суммы на количество-цена. Так и написал. Но с учётом накопления округления более правильно:
Код: plaintext
disc = (1 - (sum / (price * quant))) * 100 
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37055462
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

Ну меня кащейское мЫшление приучило расставлять скобки независимо от приоритетов операций - на всех языках. Дабы не гадать. Да и читается легче.
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37055510
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ptn , я рад за тебя...
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37055690
andrew000999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача вроде такая
// Изучаем математику 5-й класс
s price = 100
s quant = 1
s sum = 95
s disc = 100 - (sum * 100) / (price * quant)
w "discount percent = "_disc
//


Граждане!!! иногда все таки полезно почитать документацию по языку

заявлениия об отсутствии приоритета - чушь
первый приоритет - скобки - сначала вычисляется то что в скобках


sum*100 = 95*100 =9500
price*quant= 100*1 =100


а в арифметических операциях (+-*/) приоритета действительно нет
то есть все в порядке следования

100-9500 =-9400
-9400/100=-94

это собственно и результат - какие обиды.

от себя добавлю что это скорее особенность языка чем недостаток
(очень иногда полезная особенность)
...
Рейтинг: 0 / 0
У Cache своя математика?
    #37055796
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrew000999от себя добавлю что это скорее особенность языка чем недостаток
(очень иногда полезная особенность)

Это однозначно и безусловно недостаток. Средний программист использует 5-15 языков или нотаций. Есть вещи общепринятые. Не убей, не укради, вначале возведи в степень, потом умножь/подели, а уже потом вычитай и складывай. Это - азбука. Норма.

В каше довольно много далекого от нормы поведения... Ничего не поделаешь. Мне это продолжает доставлять серьезные неудобства и после 10-летнего знакомства с каше. К плохому привыкать трудно ;)
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / У Cache своя математика?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]