А вместо скобок можно еще использовать SQL-приоритеты.
Смысл следующий: изначально все операции одинакового приоритета, но если если поставить допустим точку, то оператор левее как бы окружается скобками.
Например
1 + 2 . * 10 это (1+ 2) * 10
Чуть более сложно:
1 + 2 . * 3 + 4 . последовательно претерпевает такие шаги: (1 + 2) * 3 + 4 . => (1 + 2) * (3 + 4)
Если это выражение еще потом надо возвести в степень, то так:
1 + 2 . * 3 + 4 . . ^ 2
Надеюсь принцип уже поняли и скобки расставите сами.
Экономия символов налицо.
=A=L=X=
> Экономия символов налицо
Так Роннико не про экономию символов. Он что-то другое замыслил.
skalogryz вон, подозревает, что роннико хочет функциональным стилем описывать преобразования над аудиосигналом.
хочет функциональным стилем описывать преобразования над аудиосигналом.
и это тоже.
skalogryz
> вариант такой: напрячь пользователя написать каждое выражение в отдельной строчке
отдельные строчки громоздко.
но в целом да, можно еще вместо постфиксной сделать инфиксную нотацию но без приоритетов - парсить также легко а читать проще.
f1 = 77 - 2 f2 = 5 - х * 8 / 2 (будет посчитано как (5 - х) * 8 / 2, т.е. все операции выполняются последовательно) f3 = y * x r = f1 + f2 + f3
kipar
> парсить также легко а читать проще
Имхо, так лучше не делать, потому что выглядит неотличимо от приоритено-инфиксной записи, и люди непроизвольно будут путаться по школьной привычке.
Уж если избавляться от приоритетов - то просто все инфиксные операторы заменить явными двухоперандными функциями - никакой неоднозначности не будет
f1 = sub(77, 2)
f2 = div(mul(8, sub(5, x)), 2)
Я подозреваю, что в первопосте Роннико просто в одну кучу смешал парсинг и вычисление.
Но ведь впоглне можно сначала распарсить выражение в синтаксическое дерево операций (и тогда совсем не важно, инфиксная запись используется или какая-то из польских).
А уже операции в дереве может выполнять планировщик как выгоднее, хоть параллельно по событиям готовности операндов у каждой из операций.
Надо без парсинга.
ronniko
> Надо без парсинга.
Зачем?
Dmitry_Milk
> люди непроизвольно будут путаться по школьной привычке.
будут, но зато читается нормально. Можно еще костыль добавить - если после +- обнаруживается */, то писать варнинг (а подавлять его спецсимволом каким-нибудь).
ronniko
>Надо без парсинга.
Ассымблёр тоже нужно парсить, так то.
я нашёл !
парсить не надо.
надо сравнивать.
ключи !
Lock and key here ties me
From the freedom and sin.
77-2+8*(5-х)/2+у*x
key1=77-2
key2=8*(5-х)/2
key1=y*x
если в примере есть key2, то я сразу знаю ответ !
я нашёл в примере 8*(5-х)/2 значит нашёл key2, a key2= некоторому числу или функции.
key2= _*(_-x)/_ он найдется в 8*(5-х)/2
можно пойти дальше.
8*(5-х)/2 имеет подчерк.
потому любой пример типа 18*(7-х)/7 это разновидность key2
более того (8*(5-х)/2 )*0.0000001 =очень маленькому числу.
и 8*(5-х)/2 перестаёт играть важную роль.
достаточно знать вес и его преобразовать в ответ.
есть черная дыра. а это черная дыра для примеров !
ronniko
забористо пошло!
ты делаешь арифметику через ллм?
найди в строке токен, и получи результат?!
ronniko
> Мало
Это бросается в глаза. У меня, глядя на тонну созданных Вами тем, всплывает воспоминание из детства, когда мне в школе на уроке арифметики показали, как складывать в столбик, а придя домой я сам изобрел, что примерно по такой же технологии можно еще и вычитать. :D Я тоже был просто невероятно доволен своим открытием, бегал показывал всем.
Я тоже был просто невероятно доволен своим открытием
Это же хорошо.
А то во взрослой жизни так мало радостей и много рутины и проблем.
смотреть с 1й минуты и 1 секунды.
ronniko
> Это же хорошо.
> А то во взрослой жизни так мало радостей и много рутины и проблем.
Я ж уже ранее писал, вроде как. Если Вам сейчас 12-14 лет - могу за Вас только порадоваться, занимаетесь по-настоящему интересными вещами, а не употребляете наркотики и не посещаете собрания религиозных сект. Если Вам больше 20 лет и Вы тут с таким блеском в глазах про алгебру за 8 класс общеобразовательной средней школы рассказываете - вот тут уже вопросы начинаются.