|
1 / 1 / 2
Регистрация: 23.06.2010
Сообщений: 95
|
|
Вычисление формул28.07.2010, 11:31. Показов 4418. Ответов 27
Метки нет (Все метки)
0
|
|
| 28.07.2010, 11:31 | |
|
Ответы с готовыми решениями:
27
Расчет формул, синтаксический анализатор Обратная Польская Нотация на большом наборе формул |
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 13.10.2010, 09:53 | |
|
Где это вы видели такую запись "2 + -2"? Я знаю единственный подобный вариант - "2 + (-2)". А такое выражение без проблем можно отпарсить, я уже говорил, что если первое число в скобках отрицательно, то его можно сразу парсить как отрицательное.
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 13.10.2010, 10:15 | |
|
Тем не менее так писать... Даже не знаю, как это сказать повежливей... Короче говоря, вряд-ли так кто-нибудь будет писать. Я бы уж точно не стал. Это менее читабельно, да и в школе учат записывать отрицательные числа, если они стоят не в начале выражения, в скобках.
Ну а на счёт вашего примера - зачем вы так утрируете? Эта запись аналогична "-(-2 + (-2)) * (-(-3 + (-2)))". Скобок конечно куча, но абсолютно все отрицательные числа всё же в скобки можно не брать. И так запишет, думаю, большинство.
0
|
|
|
|
|
| 13.10.2010, 10:20 | |
|
Иногда лишние скобки только засоряют выражение. И, как видно, унарные плюс и минус имеют приоритет выше, чем бинарные.
Преобразование в постфиксную же запись становится только чуть более сложной, по крайней мере если использовать метод рекурсивного спуска, насчёт метода "сортировочной станции" сказать затрудняюсь.
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 13.10.2010, 10:27 | |
|
Вообще говоря идёт спор ни о чём, вопрос реализации - как сделать. Я предложил вариант. Если он не подойдёт ТСу, пусть сам думает, как парсить такое выражение, которое вы привели в 22 посте.
Добавлено через 48 секунд Ну а реализация - думаю, лучше сначала пройтись по строке, и унарный минус заменить, скажем, на _
0
|
|
| 13.10.2010, 14:51 | |
|
0
|
|
| 13.10.2010, 15:28 | |
|
Не по теме: Vovan-VE,
0
|
|
| 13.10.2010, 15:28 | |
|
Помогаю со студенческими работами здесь
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. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|