|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.06.2017, 16:36 | #1 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
Обработка формул - вынос общего множителя за скобки
Есть код (писался давно, возможно не мною). Смысл его в обработке текстовой строки формулы. Функция упрощает формулу. выносит общие множители за скобки, потом объединяет одинаковые слагаемые в скобках
Все это относительно неплохо работает когда это сумма попарно перемноженых элементов Например выражание : "0,3*28,22+0,3*28,22+0,3*28,22" корректно обрабатывает в 0,3*(3*28,22) А вот если выражение чуть сложние (множителей больше) уже ничего не получается "0,17*15*0,57+0,17*5,5*0,62+0,17*3* 0,75" а должно бы получится 0,17*(15*0,57+5,5*0,62+3*0,75) Как исправить код чтобы работало вот с такими выражениями (когда перемножаемых чисел три, а не два ) ? Код:
|
08.06.2017, 09:43 | #2 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Железно в каждом слагаемом есть множитель которого можно вынести за скобки?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
08.06.2017, 10:10 | #3 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
Почти 99%.
более того как правило это слагаемое первый множитель. |
08.06.2017, 10:22 | #4 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Код:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. Последний раз редактировалось Aleksandr H.; 08.06.2017 в 10:24. |
08.06.2017, 11:15 | #5 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
здравствуйте. выглядит шикарно, но валится вот на таком стринге
"0,14*5,5*0,62+0,17*11*0,54+0,17*11 *0,54+0,14*7,5*0,67" а вот он же полностью Код:
|
08.06.2017, 11:27 | #6 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Значит надо посмотреть В чем валится, когда. Вам же сложно привести код что есть, что должно получиться, в чем именно "валка".
Вижу 0,14 потерялось
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. Последний раз редактировалось Aleksandr H.; 08.06.2017 в 11:31. |
08.06.2017, 11:39 | #7 |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
Код:
Результат EXAMPLE (0,14*5,5*0,62+0,17*11*0,54+0,17*11 *0,54+7,5*0,67) т.е почти тоже самое только без посл. 0,14 хотя должно было бы быть "0,14*(5,5*0,62+7,5*0,67)+0,17*(11* 0,54+11*0,54)" а в идеале даже "0,14*(5,5*0,62+7,5*0,67)+0,17*(2*1 1*0,54)" |
08.06.2017, 11:58 | #8 | ||
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Цитата:
Цитата:
Код:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
||
08.06.2017, 12:27 | #9 | |
Форумчанин
Регистрация: 12.11.2009
Сообщений: 258
|
Цитата:
все равно огромное спасибо за помощь - будем сражаться дальше |
|
08.06.2017, 14:31 | #10 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Цитата:
железно, что в выражении написанном пользователем может быть что угодно! проанализируйте, есть - выносите, нет - оставьте все как есть я так понимаю на входе - арифметическое выражение состоящее из чисел, пробелов, скобок и знаков арифметических действий на выходе нужно получить тождественное выражание, но записанное более компактно! удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проект Delphi, обработка формул и постоение графиков. | Wolfiron | Общие вопросы Delphi | 4 | 05.04.2014 11:16 |
написать программу.Определить, корректно ли расставлены в строке круглые и квадратные скобки. Скобки могут быть вложенными | цезарь | Общие вопросы по Java, Java SE, Kotlin | 3 | 22.06.2013 01:29 |
Составление рекуррентного множителя | Logannn | Помощь студентам | 0 | 28.12.2012 01:55 |
Обработка запрсов содержащих скобки для ADO.Query | sergey113 | Помощь студентам | 1 | 26.05.2011 12:37 |
нахождение наибольшего общего делителя и наименьшего общего кратного | made in russia | Помощь студентам | 2 | 21.12.2008 23:36 |