Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

подсчет стринг массива "280+4/2"

23K
29 ноября 2006 года
dmitri22
1 / / 29.11.2006
Добрый день,

Подскажите, как подсчитать стринг массив (например, "280+4/3"), т.е. чтобы результат был числом. Функция atol не подходит, т.к. не понимает знаки "+", "/".

Может есть другие функции? Или же все же самому прописывать, например, вытягивать отдельно числа и потом производить вычисление?

Заранее спасибо.
284
26 декабря 2006 года
michael_is_98
587 / / 25.02.2005
Конечно самому. Например, с использованием алгоритма Дейкстры. У меня есть подобный опыт
361
26 декабря 2006 года
Odissey_
661 / / 19.09.2006
Обычно это решается посредством обратной польской записи. Строка преобразуется из префиксной в постфиксную, на основе дерева, где "дуги" - операции, а "листья" - операнды. Вообщем алгоритм сложен только при преобразовании исходной строки в "польку", а далее вычислить по такой строке не представлется сложным занятием. Алгоритм здесь .
Погугли на тему "обратная польская запись", думаю наверняка есть какие нибудь готовые библиотеки парсинга, которые это уже умеют.
284
26 декабря 2006 года
michael_is_98
587 / / 25.02.2005
Задача вычисления усложняется когда вместо операндов-чисел используются операнды-переменные.
Тогда нужны интерфейсы для хранения кода, поиска, изменения значения переменных и т.д.
Плюс обработка и поиск ошибок.

Для такой простой задачи вполне подойдет алгоритм и код по ссылке
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог