Аватар для anton9017
1 / 1 / 2
Регистрация: 23.06.2010
Сообщений: 95

Вычисление формул

28.07.2010, 11:31. Показов 4418. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка. В строке записана формула.
Подскажите, Самый простой способ вычисления формул.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.07.2010, 11:31
Ответы с готовыми решениями:

Доказательства формул и теорем
На самом деле эта теме косвенно относится к алгоритмам. В школе я успевал по математике, хорошо сдал ЕГЭ (это не так просто, чтобы не...

Расчет формул, синтаксический анализатор
Как написать синтаксический анализатор расчета сложных формул со скобками с нуля (не только с числами и знаками математических операций,...

Обратная Польская Нотация на большом наборе формул
Собственно проблема не в понимании алгоритма, а как лучше представить данные, когда нужно раскрутить формулу не только с бинарными...

27
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
13.10.2010, 09:53
Студворк — интернет-сервис помощи студентам
Где это вы видели такую запись "2 + -2"? Я знаю единственный подобный вариант - "2 + (-2)". А такое выражение без проблем можно отпарсить, я уже говорил, что если первое число в скобках отрицательно, то его можно сразу парсить как отрицательное.
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
13.10.2010, 10:07
В принципе любой математический пакет такую запись понимает. Например в Mathematica при вводе выражения "-(-2 + -2)*-(-3 + -2)" выводится ответ 20. Что аналогично "(-((-2) + (-2)))*(-((-3) + (-2)))".
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
13.10.2010, 10:15
Тем не менее так писать... Даже не знаю, как это сказать повежливей... Короче говоря, вряд-ли так кто-нибудь будет писать. Я бы уж точно не стал. Это менее читабельно, да и в школе учат записывать отрицательные числа, если они стоят не в начале выражения, в скобках.

Ну а на счёт вашего примера - зачем вы так утрируете? Эта запись аналогична "-(-2 + (-2)) * (-(-3 + (-2)))". Скобок конечно куча, но абсолютно все отрицательные числа всё же в скобки можно не брать. И так запишет, думаю, большинство.
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
13.10.2010, 10:20
Иногда лишние скобки только засоряют выражение. И, как видно, унарные плюс и минус имеют приоритет выше, чем бинарные.
Преобразование в постфиксную же запись становится только чуть более сложной, по крайней мере если использовать метод рекурсивного спуска, насчёт метода "сортировочной станции" сказать затрудняюсь.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
13.10.2010, 10:27
Вообще говоря идёт спор ни о чём, вопрос реализации - как сделать. Я предложил вариант. Если он не подойдёт ТСу, пусть сам думает, как парсить такое выражение, которое вы привели в 22 посте.

Добавлено через 48 секунд
Ну а реализация - думаю, лучше сначала пройтись по строке, и унарный минус заменить, скажем, на _
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
13.10.2010, 10:32
Это верно, тут всё зависит от принятых в начале договорённостей, как можно записать формулу для данного парсера, а как нельзя. Исполнение должно определяться задачей.
0
13.10.2010, 14:51

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
Тем не менее так писать... Даже не знаю, как это сказать повежливей... Короче говоря, вряд-ли так кто-нибудь будет писать.
У кто нам, программистам, запрещает написать -5 + ---9 ? :) Приоритеты для того и придумали.

0
13.10.2010, 15:28

Не по теме:

Vovan-VE,
Ну не знаю... Мне как-то даже глазу неприятно... Даже если так можно писать, я это делать категорически отказываюсь :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.10.2010, 15:28
Помогаю со студенческими работами здесь

Вычисление формул
Добрый день, помогите написать в Python формулы

Вычисление формул
Доброго времени суток. Я не разбираюсь в C#, но сдать эти задачи по учёбе нужно. Очень надеюсь на вашу помощь, решить хотя бы часть...

Вычисление формул
Помогите составить программу в Pascal для вычисления по формуле: y=(a/x)+(b/x2) y=((x+a)2-x2)/(x2)

Вычисление математических формул
Доброго времени суток, помогите дописать корректно код пожалуйста, необходимо вычислить по формуле которая указана в коде. Sub prog() ...

Вычисление математических формул
Ребят, привет. Помогите, пожалуйста, с такой вот задачкой (желательно блок-схему, но если это проблемно, то если можно код) Спасибо. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Опции темы

Новые блоги и статьи
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru