|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.01.2019, 21:22 | #1 |
Новичок
Джуниор
Регистрация: 15.01.2019
Сообщений: 1
|
Калькулятор, парсинг sin, cos, ln и т.д.
Реализовал калькулятор на основе делегатов, словарей, стеков, приоритетов операций. Считает он правильно сложные выражения со скобками. Но не знаю как посчитать к примеру вот такую строку sin(1)+3+cos(2). Вариант с тем, чтобы ввести 1 и нажать sin не предлагать. Такое сделал. Но хочется все-таки чтобы sin(1)+3+cos(2) он мог рассчитать. Возможно ли это и как?
Словари: Код:
Код:
Последний раз редактировалось lava172; 15.01.2019 в 21:24. |
23.02.2019, 13:22 | #2 |
Новичок
Джуниор
Регистрация: 23.02.2019
Сообщений: 1
|
Вы можете попробовать сделать с помощью регулярных выражений. Создайте шаблон, который будет находить в строке все cos или sin, а содержимое в последующих скобках помещать в группу. Затем можно содержимое из группы обработать и поместить обратно в строку.
В общем строка sin(1)+3+cos(2), превращается в строку 0,841470984807897+3+-0,416146836547142. Как видите сразу всплывают нюансы, например косинус 2 равен отрицательному числу, поэтому мы видим вместе +-. Так же надо продумать, если в скобках написано выражение, например cos(корень(30)*5), то сначала нужно обработать всё, что в скобках, а потом уже вычислять косинус. Код ниже сделан на скорую руку, поэтому он чисто в качестве отправной точки. Код:
|
25.02.2019, 14:32 | #3 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 822
|
Не давай организму поблажки, каждый день тренируй его в шашки..
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сдать нужно в понедельник. Не понимаю, как вычислить значение этого выражения: S=sin(x+cos(2x-sin(3x+cos(4x+sin(5x-cos(6x+...).. | n7camomile | Помощь студентам | 5 | 15.12.2013 22:44 |
Калькулятор. Cos и Sin | Ruz34 | Общие вопросы Delphi | 1 | 09.02.2013 18:13 |
Пусть задано значение X. Найти первое из чисел sin X, sin sin X, sin sin sin X, ... , меньшее по модулю 10-4. | hex_91 | Visual C++ | 1 | 28.04.2012 23:49 |
Паскаль Вычислить у - первое из чисел sin х, sin sin x, sin sin sin x, ..., меньшее по модулю 10-4 | Kikikiss | Помощь студентам | 2 | 25.03.2012 13:58 |